设为首页 加入收藏

TOP

Oracle内存管理(之五)(四)
2015-07-24 10:53:33 来源: 作者: 【 】 浏览:4
Tags:Oracle 内存 管理 之五
libocrutl11.so

00007f7f3d400000 4K rwx-- /u01/app/oracle/product/11.2.0/db_1/lib/libocrutl11.so

00007f7f3d401000 652K r-x-- /u01/app/oracle/product/11.2.0/db_1/lib/libocrb11.so

00007f7f3d4a4000 1020K ----- /u01/app/oracle/product/11.2.0/db_1/lib/libocrb11.so

00007f7f3d5a3000 8K rwx-- /u01/app/oracle/product/11.2.0/db_1/lib/libocrb11.so

00007f7f3d5a5000 4K rwx-- [ anon ]

00007f7f3d5a6000 668K r-x-- /u01/app/oracle/product/11.2.0/db_1/lib/libocr11.so

00007f7f3df1c000 1020K ----- /u01/app/oracle/product/11.2.0/db_1/lib/libhasgen11.so

00007f7f3e01b000 136K rwx-- /u01/app/oracle/product/11.2.0/db_1/lib/libhasgen11.so

00007f7f3e03d000 28K rwx-- [ anon ]

00007f7f3e044000 136K r-x-- /u01/app/oracle/product/11.2.0/db_1/lib/libdbcfg11.so

00007f7f3e066000 1020K ----- /u01/app/oracle/product/11.2.0/db_1/lib/libdbcfg11.so

00007f7f3e609000 264K rwx-- /u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so

00007f7f3e64b000 144K rwx-- [ anon ]

00007f7f3e66f000 864K r-x-- /u01/app/oracle/product/11.2.0/db_1/lib/libskgxp11.so

00007f7f3e9ab000 40K rwx-- /u01/app/oracle/product/11.2.0/db_1/lib/libcell11.so

00007f7f3e9b5000 8K rwx-- [ anon ]

00007f7f3eab8000 4K rwx-- /u01/app/oracle/product/11.2.0/db_1/lib/libodmd11.so

00007f7f3eab9000 4K rwx-- [ anon ]

00007fffba5e0000 132K rwx-- [ stack ]

00007fffba7a6000 4K r-x-- [ anon ]

ffffffffff600000 4K r-x-- [ anon ]

total 656228K

为了避免多个共享内存段,可以修改shmmax内核参数,使SGA存在于一个共享内存段中。通过修改/proc/sys/kernel/shmmax参数可以达到此目的。

以下是一个环境中的设置:

[root@danaly root]# echo 1610612736 >/proc/sys/kernel/shmmax

[root@danaly root]# more /proc/sys/kernel/shmmax

1610612736

这里修改为1.5G。对于shmmax 文件的修改,系统重新启动后会复位。可以通过修改/etc/sysctl.conf 文件使更改永久化。在该文件内添加以下一行,这个更改在系统重新启动后生效:

kernel.shmmax =1610612736

修改shmmax之后,需要重起数据库使更改生效。

通常,如果没有修改shmmax参数,Oracle在启动过程中就会在告警日志文件中记录如下警告:

Starting ORACLE instance (normal)

Thu Nov 17 09:27:29 2005

WARNING: EINVAL creating segment of size 0x0000000033400000

fix shm parameters in /etc/system or equivalent

这是一个WARNING的?示,说明是建议修正,但并非强制的内容。在Solaris平台上,有时候也会看到类似的警报:

Sun Apr 30 05:35:20 2006

Starting ORACLE instance (normal)

Sun Apr 30 05:35:20 2006

WARNING: Not enough physical memory forSHM_SHARE_MMU segment of size 0x000000006d400000

[flag=0x4000]

这通常是因为SGA设置过大,超过了物理内存而导致的,这种情况通过修正参数即可解决。有时候这类警告也可能是因为数据库异常关闭,后台进程未正常退出,共享 内 存 未 及 时 释放引起的,对于这种情况,可以通过ipcs命令找到共享内存段id(shared memory id),然后通过ipcrm命令可以强制释放该共享内存段,完成这些特殊处理后,数据库通常就可以正常启动了。

1.4.4 9i SGA管理?

从Oracle9i开始,Oracle 推出了动态SGA调整,也就是说,允许我们不重新启动数据库而使得SGA的修改生效

在Oracle9i中,我们可以设置参数SGA_MAX_SIZE,该参数用以控制各缓冲池使用的内存总和,本质上是在进程中预先分配一段虚拟地址备用而不分配物理内存,目的是防止和进程私有地址段的冲突:

11:00:10 sys@felix SQL>show parameter sga_max

NAME TYPE VALUE

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

sga_max_size big integer 400M

11:00:15 sys@felix SQL>

11:08:02 sys@felix SQL>select tname from tab where tname like'%ADVICE%';

?

TNAME

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

WRH$_STREAMS_POOL_ADVICE

WRH$_SHARED_POOL_ADVICE

WRH$_SGA_TARGET_ADVICE

WRH$_PGA_TARGET_ADVICE

WRH$_MTTR_TARGET_ADVICE

WRH$_MEMORY_TARGET_ADVICE

WRH$_JAVA_POOL_ADVICE

WRH$_DB_CACHE_ADVICE_BL

WRH$_DB_CACHE_ADVICE

V_$STREAMS_POOL_ADVICE

V_$SHARED_POOL_ADVICE

V_$SG

首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇(8)mysql中的视图 下一篇Oracle内存管理(之四)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)