背景
oracle 11g启用全自动内存管理,主要是和参数memory_max_target及memory_target有关;在之前文章测试了基于SPFILE如何启动全自动内存管理功能,本文测试基于PFILE如何启用全自动内存管理,到底涉及哪些操作,进而加深了解各种环境,提升应对技能。
本文测试环境为基于asm的ORACLE 11.2.0.3 rac,双节点,现在我们步入正题,开始测试。
结论
1,oracle rac可以采用pfile启动2,pfile可以基于原生的spfile生成
3,如果启动pfile仅含参数memory_target,而无memory_max_target,启动库后后者参数值=前面参数的值
4,如果启动PFILE仅含参数memory_max_target,而无memory_target,启动库后memory_target=0,可动态调整,只要其值不大于前者参数值
5,一定要注意如果基于SPFILE生成PFILE,如要要调整MEMORY相关参数,一定要确保memory相关的参数保持一致,否则可能会出你期望不到的结果
6,如果你打算RAC数据库或单实例数据库采用PFILE,确保各个节点PFILE文件在相同目录,可采用SCP把一个节点传递到其它RAC节点,便于运维
测试
1,采用ASM存储SPFILE
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/jingfa/spfilejingfa.ora
2,备份SPFILE,防止中途操作出现故障,便于恢复数据库,切记,一定要养成操作前备份的习惯,至关重要,且每一步操作,一实要记录下来,不可遗漏,否则可能会出大麻烦
--在节点1操作即可
SQL> create pfile='/home/oracle/spfilejingfa.ora_20150920bak' from spfile;
File created.
3,关于memory_max_target及memory_target如何配置,请参考我之前的文章
http://blog.itpub.net/9240380/viewspace-1804586/
4,在节点1基于ASM SPFILE生成另一个pfile,在这个基础上启用全自动内存管理
SQL> create pfile='/home/oracle/jingfa_memory.ora' from spfile;
File created.
5,在节点1基于第4步生成的PFILE文件添加如下参数
[oracle@jingfa1 ~]$ tail -5f /home/oracle/jingfa_memory.ora
#zxy added
memory_max_target=800m
memory_target=743m
sga_target=0
pga_aggregate_target=0
6,在节点1以第5步生成的PFILE重启节点1实例
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2232960 bytes
Variable Size 583011712 bytes
Database Buffers 247463936 bytes
Redo Buffers 2396160 bytes
Database mounted.
Database opened.
7,在节点1确认全自动内存管理配置正确
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 744M
shared_memory_address integer 0
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 800M
sga_target big integer 0
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0
8,在节点1把上述的PFILE以SCP付递到节点2相同的目录
[oracle@jingfa1 ~]$ scp jingfa_memory.ora oracle@jingfa2:/home/oracle
oracle@jingfa2's password:
jingfa_memory.ora 100% 1864 1.8KB/s 00:00
[oracle@jingfa1 ~]$
9,在节点2重启数据库实例
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2232960 bytes
Variable Size 583011712 bytes
Database Buffers 247463936 bytes
Redo Buffers 2396160 bytes
Database mounted.
Database opened.
10,在节点2确认全自动内存管理配置正确
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 744M
shared_memory_address integer 0
SQL> show parameter sga_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 800M
sga_target big integer 0
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0
11,在2个节点确认SPFILE及PFILE的信息,在使用PFILE情况下,2参数皆无值
SQL> show parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
SQL> show parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
12,如果在PFILE没有配置memory_max_target仅配置了memory_target,会如何呢?
13,在节点1调整pfile,移除memory_max_target,仅配置memory_target
[oracle@jingfa1 ~]$ tail -5f jingfa_memory.ora
#zxy added
#memory_max_target=800m
memory_target=743m
sga_target=0
pga_aggregate_target=0
14,重启节点1,发现memory_max_target虽然没有在PFILE中配置,仅大于memory_target,即仍旧保持和之前的SPFILE配置一样(因为我之前SPFILE是显式配置了MEMORY_MAX_TARGET参数)
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2232960 bytes
Variable Size 583011712 bytes
Database Buffers 247463936 bytes
Redo Buffers 2396160 bytes
Database mounted.
Database opened.
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 744M
shared_memory_address integer 0
SQL>
15,节点1产生上述问题原因很简单,因为我PFILE是基于SPFILE生成的,所以PFILE残留有memory_max_target,从PFILE移除此参数
[oracle@jingfa1 ~]$ more jingfa_memory.ora|grep -i --color memory
*.memory_max_target=838860800
*.memory_target=779091968
jingfa1.memory_target=780140544
jingfa2.memory_target=780140544
#memory_max_target=800m
memory_target=743m
移除节点1PFILE文件的memory_max_target参数
[oracle@jingfa1 ~]$ more jingfa_memory.ora|grep -i --color memory
#*.memory_max_target=838860800
*.memory_target=779091968
jingfa1.memory_target=780140544
jingfa2.memory_target=780140544
#memory_max_target=800m
memory_target=743m
16,重启节点1,可见若仅配置memory_target,不配置memory_max_target,则以PFILE启动数据库后,memory_max_target=memory_target
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 776646656 bytes
Fixed Size 2232392 bytes
Variable Size 524292024 bytes
Database Buffers 247463936 bytes
Redo Buffers 2658304 bytes
Database mounted.
Database opened.
SQL>
SQL>
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 744M
memory_target big integer 744M
shared_memory_address integer 0
17,还有一种情况,如果不配置memory_target,仅配置memory_max_target,又会如何呢
18,在节点1移除参数memory_target
[oracle@jingfa1 ~]$ more jingfa_memory.ora|grep -i --color memory
#*.memory_max_target=838860800
#*.memory_target=779091968
#jingfa1.memory_target=780140544
#jingfa2.memory_target=780140544
memory_max_target=800m
#memory_target=743m
19,重启节点1,可见仅配置参数memory_max_target,memory_target为0,可以在启动库后动态调整,只要不大于前者参数的值即可
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2232960 bytes
Variable Size 603983232 bytes
Database Buffers 226492416 bytes
Redo Buffers 2396160 bytes
Database mounted.
Database opened.
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 0
shared_memory_address integer 0
SQL> alter system set memory_target=700m sid='jingfa1';
System altered.
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 700M
shared_memory_address integer 0
SQL>
个人简介
8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问。
服务过的客户:
中国电信
中国移动
中国联通
中国电通
国家电网
四川达州商业银行
湖南老百姓大药房
山西省公安厅
中国邮政
北京302医院
河北廊坊新奥集团公司
项目经验:
中国电信3G项目AAA系统数据库部署及优化
中国联通4G数据库性能分析与优化
中国联通4G数据库性能分析与优化
中国联通CRM数据库性能优化
中国移动10086电商平台数据库部署及优化
湖南老百姓大药房ERR数据库sql优化项目
四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
北京高铁信号监控系统RAC数据库部署及优化
河南宇通客车数据库性能优化
中国电信电商平台核心采购模块表模型设计及优化
中国邮政储蓄系统数据库性能优化及sql优化
北京302医院数据库迁移实施
河北廊坊新奥data guard部署及优化
山西公安厅身份证审计数据库系统故障评估
国家电网上海灾备项目4 node rac+adg
贵州移动crm及客服数据库性能优化项目
贵州移动crm及客服务数据库sql审核项目
深圳穆迪软件有限公司数据库性能优化项目
贵州移动crm及客服数据库性能优化项目
贵州移动crm及客服务数据库sql审核项目
深圳穆迪软件有限公司数据库性能优化项目
联系方式:
手机:18201115468
qq : 305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900
itpub博客名称:wisdomone1 http://blog.itpub.net/9240380/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-1804611/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9240380/viewspace-1804611/