当前位置: 首页 > news >正文

Oracle Study之案例--通过IPCS查看共享内存之“怪现象”

 在Oracle 11gR2环境下,通过ipcs命令查看共享内存,竟然发现分配给Oracle的内存只有4096Bytes,而在Oracle 10g环境下从未发现这种问题!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[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

数据库版本:

1
2
3
4
5
6
7
8
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  - Production

Oraccle 11g的通过以下两个参数实现内存的自动个管理:

1
2
3
4
5
6
7
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

在Oracle 11g中用看Oracle的共享内存段---------IPCS

1、会不会是参数memory_max_target有关系呢?把它设为0,然后重启数据库。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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.

再看共享内存:

1
2
3
4
5
6
7
8
9
10
11
12
[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参数,将其恢复到系统默认值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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

查看系统共享内存:

1
2
3
4
5
6
7
8
9
10
11
12
[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!











本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1599787,如需转载请自行联系原作者

相关文章:

  • DVDROM驱动不能加载的问题
  • 【驱动】linux设备驱动·扫盲
  • 对Context的重新思考
  • 在RHEL5下构建LAMP网站服务平台之架设Discuz!论坛
  • 依赖倒置原则
  • .net Application的目录
  • React Router
  • 【干货分享】常用端口服务对照表
  • IO操作
  • 【Window OS】解决Win7远程桌面无法全屏的方法
  • Enterprise Library Step By Step系列(十五):配置应用程序块——设计篇
  • JAVA 线程池之Callable返回结果
  • 用户系列之五:用户SID查看之终结版
  • SQLite第二课 源码下载编译
  • 查看Linux服务器网卡流量小脚本shell和Python各一例
  • egg(89)--egg之redis的发布和订阅
  • Node项目之评分系统(二)- 数据库设计
  • Python进阶细节
  • React Transition Group -- Transition 组件
  • SegmentFault 2015 Top Rank
  • SpiderData 2019年2月25日 DApp数据排行榜
  • spring boot 整合mybatis 无法输出sql的问题
  • 初识 beanstalkd
  • 从零搭建Koa2 Server
  • 如何合理的规划jvm性能调优
  • 如何用vue打造一个移动端音乐播放器
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 问题之ssh中Host key verification failed的解决
  • 一份游戏开发学习路线
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 如何用纯 CSS 创作一个货车 loader
  • #微信小程序:微信小程序常见的配置传旨
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二十三)Flask之高频面试点
  • (二十四)Flask之flask-session组件
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (强烈推荐)移动端音视频从零到上手(上)
  • (算法二)滑动窗口
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)平衡树
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net framework4与其client profile版本的区别
  • .NET Micro Framework初体验
  • .NET Standard 的管理策略
  • .NET 回调、接口回调、 委托
  • .Net 中Partitioner static与dynamic的性能对比
  • .Net中的设计模式——Factory Method模式
  • @拔赤:Web前端开发十日谈
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [20170713] 无法访问SQL Server