09.27.06

重读SG系列之前言

Posted in SG心得--by David.Guo at 4:08 pm by David.Guo

最近荒废了很久没有看书了,看起来似乎是公司的事情很忙,实际上,只不过是我懒的借口,想当年,为了考过ocp,每天看书到12点,没有一天间断,如果那天间断了,自己都觉得内疚,那个时候,也是我oracle从不知道到了解的一个阶段吧,后来在公司积累了一些经验,但是还是十分的不够,现在人也懒了,基本上就没看啥书.

希望这次能坚持下来,把9i的sg好好的看一遍,我是考的8i,所以说实话,9i的sg还真的没有通读,所以这个系列,就是记录sg中已经有的内容,但是以前遗漏了,或者是以前没有理解的内容,希望对自己,对别人有所帮助吧.

重读SG系列之三 内存结构

Posted in SG心得--by David.Guo at 4:03 pm by David.Guo

oracle的内存结构,大家都知道,SGA+PGA,那么现在我们来看看oracle的SGA的组成.

SGA在instance启动的时候建立,是instance的基本组件,并且由shared pool,data buffer cache,redo log buffer以及其他部分组成,在9i开始,数据库支持动态内存管理,也就是说,在数据库中,可动态的调整shared pool,data buffer cache,以及large pool的大小,当然,其要求是所有sga的组件的总和不超过sga_max_size的限制.注意了,这里是不包括redo log buffer的,也就是说,你要修改redo log buffere的大小,就必须重启数据库,当然,我不知道这个是不是因为和redo log buffer的大小的调整非常少有关系,一般来说,通过调整redo log buffer来提高性能的情况确实也是十分少见的.

在oracle的内存结构中,还有一个关键的地方,sga分配的时候,是有一个最小粒度的,也就是说,每次最少要分配这个最小的粒度,那么,对于SGA小于128M的,这个数值是4M,其他的就都是16M了,也就是说,分配的时候,我们可以尽量是这两个数字的整数,那么理论上应该可以避免内存的浪费或者是碎片.

这里有个有趣的东西就出来了,一个oracle数据库,最小可以分配多少sga?12M,这个就是最小的了,不能比这个还小,理论依据是,首先,既然是讨论最小的sga,那么,他的最小的粒度是4M,而oracle最少要分配一个给fixed SGA,一个给data buffer cache ,一个给shared pool,也就是最少3个,那就是4M*3=12M了.

 

重读SG系列之二 文件类型

Posted in SG心得--by David.Guo at 3:39 pm by David.Guo

oracle数据库中,对oracle server的定义是oracle server由oracle database和oracle instance组成.并且oracle database是只报刊三种类型的文件,他们分别是data files,control files,redo logs.这也是oracle 数据库中,最关键的三种文件了,对于这三种文件的损坏,基本上都要求作恢复了,而且,可以看的出,这三种文件中,oracle对control file是默认作了镜像的,而对于redo logs也是推荐每个group中,应该包含多个文件在不同的磁盘甚至是控制器上.由此可见这三种文件地位的关键.

而且,虽然oracle数据库中,有很多其他非关键文件,例如archived  redo logs,parameter files以及password files,但是,oracle严格的说明,oracle数据库的物理结构,仅仅包含data files,control files以及redo logs

02.28.06

重读SG之一 connection VS sessions

Posted in SG心得--by David.Guo at 4:07 pm by David.Guo

在Oracle中,有两个不同的概念,一个是connection ,另外一个是sessions,这两个玩意很相近,那么他们到底有啥区别,在SG的 DBA fundamentals I的1-7上有明确的描述:
connection :指的是用户进程连接到oracle服务的一种通信的机制,是一种方法,通常有三种不同的模式:
1:在数据库主机上,可以通过内部的连接机制,直接连接到数据库,这种方式的情况下,是不会走监听的;
2:从客户端到服务器端的模式,这种方法比较常见,常用于C/S的结构中,需要有网络软件的支持,例如监听等等;
3:三层结构模式,这种方式现在比较流行,也就是加了中间件的模式,所有的客户端的连接先到中间件服务器,然后到数据库服务器;
sessions:指的是一个用户指定一种connection,连接到oracle服务器,通常在该connection被oracle服务器验证后开始,一直到用户退出或者异常终止结束.

« Previous entries ·