Oracle 11g R2内存管理

基本知识点

基本的内存结构:SGA+PGA+UGA+Software code area(软件代码区)

     

了解SGA内存的组件与一些常用的功能

了解oracle 11G地自动内存管理功能

具体介绍

oracle数据库实例是由一些列的系统全局区域与后台进程组成。

一个客户端访问数据库的方式是客户端进程---->Program global are----->Database buffer cache,同时在Redo logbuffer重写一份

 

oracle 内存管理的方式:自动内存管理与手动内存管理,本文主要讲解自动内存管理(Automatic memory management  AMM)

1. Oracle 11G启动自动内存管理功能

对于oracle 11G,启用内存自动管理功能,就是保证memory_target参数不为0。对于通过DBCA创建数据库,使用默认方式安装,memory_target参数大小是总内存大小的40%

 

2. 了解SGA 重要组件

比较重要的SGA组件

²  数据库缓存

²  重做日志缓存

²  共享池

²  大池

²  JAVA池

²  流池

²  固定的SGA

 

数据库缓存池(Databasebuffer cache)也叫缓冲池,是内存区域存放从数据文件读取的一份备份。缓冲池是主内存地址通过缓冲管理器存放了临时缓存的当前的或最近使用的数据块。所有当前连接到数据库实例的用户共享这个缓冲池。

使用数据库缓冲池的目的是:

Ø  优化物理的I/O

Ø  保持频繁的访问缓冲区的数据库,减少到磁盘的块操作,从而加快访问速度

数据库缓存池中一些术语:

 

Buffer状态(Buffer state)

Unused:没有使用过的空间

Clean:以前使用过的空间,标记为clean后,可以再次使用,允许重写

Dirty:需要写入磁盘的数据

 

Buffermode

Current mode

Consistent Mode

 

LogicalI/O 也叫buffer I/O,就是直接从缓存中读取I/O

PhysicalI/O, 从物理磁盘读取的I/O

BufferWrite:DBWn进程周期的将胀数据写入磁盘,发生写入磁盘的条件就是

服务器进程为了读入一个新块到缓存中而找不到空闲缓存

 

 

Buffer Reads

 

Buffercache hit ration(缓存命中率):在缓存中读取到数据块与读到总的数据块(包括从缓存与磁盘中读取数据块)的比值

 

Buffers and full table scan

 

重做日志缓存:重做日志缓存就是SGA区域的一个存放改变数据库的重做实体(比如sql语句)的循环缓存。重建实体包括重建,重做的DML/DDL操作

 

共享池(SharedPool):共享池缓存各种类型的程序数据,比如说pl/sql语句,系统参数与数据字典信息

大池:它是一个可选的内存分配区域,它是一个辅助的缓存区域。

 

Java池:        他是一个内存区域存放所有关于jave代码的会话,也就是管理java连接的一个内存区域

Stream池:关于流连接分配的一个内存区域

FixedSGA: 内部保留的区域,它描述了数据库与实例状态的信息等等。

 

应用举例

1. 查看是否启用oracle内存自动管理功能

memory_target为非0,启用此内存自动管理功能

SQL>show parameter memory

 

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

hi_shared_memory_address             integer     0

memory_max_target                    big integer 1232M

memory_target                        big integer 1232M

shared_memory_address                integer     0

 

2. 修改memory_target大小

比如说我们增加了内存,oracle数据库并不会自动增加memory_target大小,所以需要手动修改。理解memory_target是一个会自动更新的参数,它可以不需要重启就能生效,而memory_max_target参数需要重启而生效。memory_max_target跟随memory_target 参数。

 

******************************************************************************

SQL> alter system set memory_target=1230M   #默认scope=both,所以没有写

 2  ;

 

System altered.

 

SQL> show parameter memory

 

NAME                                 TYPE       VALUE

----------------------------------------------- ------------------------------

hi_shared_memory_address             integer     0

memory_max_target                    big integer 1248M

memory_target                        big integer 1232M

shared_memory_address                integer     0

 

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

 

Total System Global Area 1286066176 bytes

Fixed Size                  2254864 bytes

Variable Size             754976752 bytes

Database Buffers          520093696 bytes

Redo Buffers                8740864 bytes

Database mounted.

Database opened.

SQL> show parameter memory;

 

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

hi_shared_memory_address             integer     0

memory_max_target                    big integer 1232M

memory_target                        big integer 1232M

shared_memory_address                integer     0

SQL>

*******************************************************************************

 

3. 查看SGA大小分配

在启动数据库与查看V$SGA视图,都可以查看数据库缓存区与重做日志缓存区分配的内存大小。

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

 

Total System Global Area 1286066176 bytes

Fixed Size                  2254864 bytes

Variable Size             805308400 bytes

Database Buffers          469762048 bytes

Redo Buffers                8740864 bytes

Database mounted.

Database opened.

SQL> select * from v$sga;

 

NAME                      VALUE

-------------------- ----------

Fixed Size              2254864

Variable Size         805308400

Database Buffers      469762048

Redo Buffers            8740864

 

SQL>

 

4. 查看V$SGASTAT与V$PGASTAT信息

***************************************************************************

SQL> select pool, sum(Bytes) asPool_Size from v$sgastat group by pool;

 

POOL          POOL_SIZE

------------ ----------

              531089424

java pool      16777216

shared pool   201326592

large pool     16777216

 

SQL> select * from v$pgastat;

 

NAME                                VALUE UNIT

---------------------------------------- ------------

aggregate PGA target parameter  520093696 bytes

aggregate PGA auto target       436313088 bytes

global memory bound             104017920 bytes

total PGA inuse                  35298304 bytes

total PGA allocated              53518336 bytes

maximum PGA allocated            54173696 bytes

total freeable PGA memory        12845056 bytes

process count                          28

max processes count                    28

PGA memory freed back to OS       9043968 bytes

total PGA used for auto workar          0 bytes

 

NAME                                VALUE UNIT

---------------------------------------- ------------

eas

 

maximum PGA used for auto work          0 bytes

areas

 

total PGA used for manual work          0 bytes

areas

 

maximum PGA used for manual wo          0 bytes

rkareas

 

 

NAME                                VALUE UNIT

---------------------------------------- ------------

over allocation count                   0

bytes processed                  12819456 bytes

extra bytes read/written                0 bytes

cache hit percentage                  100 percent

recompute count (total)               309

 

19 rows selected.

 

SQL>

*******************************************************************************

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值