Oracle Study之案例--通过IPCS查看共享内存之“怪现象”
2015-01-06 16:49
309 查看
Oracle Study之案例--通过IPCS查看共享内存之“怪现象” 在Oracle 11gR2环境下,通过ipcs命令查看共享内存,竟然发现分配给Oracle的内存只有4096Bytes,而在Oracle 10g环境下从未发现这种问题!
![](http://www.linuxidc.com/upload/2014_02/14021810205766.jpg)
1、会不会是参数memory_max_target有关系呢?把它设为0,然后重启数据库。
2、尝试调整memory_max_target参数,将其恢复到系统默认值:
本文出自 “天涯客的blog” 博客,请务必保留此出处http://tiany.blog.51cto.com/513694/1599787
[root@rh6 ~]# ipcs -a ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 0 root 644 52 2 0x00000000 32769 root 644 16384 2 0x00000000 65538 root 644 268 2 0x00000000 98307 gdm 600 393216 2 dest 0x00000000 131076 gdm 600 393216 2 dest 0x00000000 163845 gdm 600 393216 2 dest 0x00000000 196614 gdm 600 393216 2 dest 0x00000000 229383 gdm 600 393216 2 dest 0x4b4218ec 557064 oracle 660 4096 0 ------ Semaphore Arrays -------- key semid owner perms nsems 0x00000000 0 root 600 1 0x00000000 98305 root 600 1 0x000000a7 327682 root 600 1 0xbe61d9cc 983043 oracle 660 154 ------ Message Queues -------- key msqid owner perms used-bytes messages数据库版本:
16:27:09 SYS@ test3 >select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production PL/SQL Release 11.2.0.1.0 - Production CORE 11.2.0.1.0 Production TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - ProductionOraccle 11g的通过以下两个参数实现内存的自动个管理:
16:27:19 SYS@ test3 >show parameter mem NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ hi_shared_memory_address integer 0 memory_max_target big integer 300M memory_target big integer 300M shared_memory_address integer 0
![](http://www.linuxidc.com/upload/2014_02/14021810205766.jpg)
1、会不会是参数memory_max_target有关系呢?把它设为0,然后重启数据库。
16:28:11 SYS@ test3 >alter system set memory_target=0 ; System altered. 16:36:44 SYS@ test3 >show parameter mem NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ hi_shared_memory_address integer 0 memory_max_target big integer 300M memory_target big integer 0 shared_memory_address integer 0 16:30:51 SYS@ test3 >startup force ; ORACLE instance started. Total System Global Area 313860096 bytes Fixed Size 1336232 bytes Variable Size 205524056 bytes Database Buffers 100663296 bytes Redo Buffers 6336512 bytes Database mounted. Database opened.再看共享内存:
[oracle@rh6 ~]$ ipcs -a ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 0 root 644 52 2 0x00000000 32769 root 644 16384 2 0x00000000 65538 root 644 268 2 0x4b4218ec 622600 oracle 660 4096 0 ------ Semaphore Arrays -------- key semid owner perms nsems 0xbe61d9cc 1114115 oracle 660 154 ------ Message Queues -------- key msqid owner perms used-bytes messages发现分配给Oracle的共享内存仍然很小,看来不是memory_target 参数的问题!
2、尝试调整memory_max_target参数,将其恢复到系统默认值:
16:39:49 SYS@ test3 >alter system set sga_max_size=300m scope=spfile; System altered. 16:40:06 SYS@ test3 >alter system reset memory_max_target scope=spfile sid='*'; System altered. 16:40:40 SYS@ test3 >startup force nomount; ORACLE instance started. Total System Global Area 313860096 bytes Fixed Size 1336232 bytes Variable Size 205524056 bytes Database Buffers 100663296 bytes Redo Buffers 6336512 bytes 16:40:52 SYS@ test3 >show parameter mem NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ hi_shared_memory_address integer 0 memory_max_target big integer 0 memory_target big integer 0 shared_memory_address integer 0 16:40:59 SYS@ test3 >show parameter sga NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 300M sga_target big integer 180M查看系统共享内存:
[oracle@rh6 ~]$ ipcs -a ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 0 root 644 52 2 0x00000000 32769 root 644 16384 2 0x00000000 65538 root 644 268 2 0x4b4218ec 884744 oracle 660 316669952 16 ------ Semaphore Arrays -------- key semid owner perms nsems 0xbe61d9cc 1638403 oracle 660 154 ------ Message Queues -------- key msqid owner perms used-bytes messages看来是设置了memory_max_target参数的原因,导致通过ipcs查看到分配给Oracle的内存为4096Bytes!
本文出自 “天涯客的blog” 博客,请务必保留此出处http://tiany.blog.51cto.com/513694/1599787
相关文章推荐
- Oracle Study之案例--通过IPCS查看共享内存之“怪现象”
- oracle 共享内存查看 ipcs命令详解
- Oracle Study之--IPCS管理共享内存
- Oracle数据库案例整理-Oracle系统运行时故障-内存过少导致分配共享内存失败
- 用 ipcs 管理oracle unix 共享内存
- ipcs命令查看管道,消息队列,共享内存
- 共享内存查看清除命令ipcs和ipcrm
- 查看 共享内存 的命令 ipcrm、ipcs
- 共享内存查看清除命令ipcs和ipcrm
- 查看共享信息的内存命令——ipcs
- free命令查看内存情况/ipcs命令查看共享内存使用情况
- 共享内存查看清除命令ipcs和ipcrm
- 将Oracle数据库操作模式改为共享服务器模式--调整ORACLE内存设置--修改Oracle最大连接数
- 进程间通过内存映射文件共享数据
- 应用开发框架之——通过内存映像文件共享一组对象
- 将Oracle数据库操作模式改为共享服务器模式--调整ORACLE内存设置--修改Oracle最大连接
- linux 下查看共享内存的使用以及删除共享内存
- 对话 UNIX: 通过共享内存进行进程间通信
- oracle的内存结构之--查看内存信息+保留池和循环池(摘自文平书)
- linux两个程序通过共享内存通信的一个简单例子