如何基于pfile启动oracle11g全自动内存管理与memory_max_target及memory_target

背景

   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数据库性能分析与优化
中国联通CRM数据库性能优化
中国移动10086电商平台数据库部署及优化
湖南老百姓大药房ERR数据库sql优化项目
四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
北京高铁信号监控系统RAC数据库部署及优化
河南宇通客车数据库性能优化
中国电信电商平台核心采购模块表模型设计及优化
中国邮政储蓄系统数据库性能优化及sql优化
北京302医院数据库迁移实施
河北廊坊新奥data guard部署及优化
山西公安厅身份证审计数据库系统故障评估
国家电网上海灾备项目4 node rac+adg 
       贵州移动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/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值