oracle 中带双下划线的参数如(*.__shared_pool_size=)

来源:互联网 发布:淘宝市场调查问卷 编辑:程序博客网 时间:2024/05/22 13:50

 平台:AIX6.1,数据库版本:11.2.0.3(psu5)
在一次单机转RAC过程中,在修改原有参数文件,启动rac库时遇到了如下问题,由此问题引出了本篇的标题所要讲的问题。

1.备份原单实例库参数文件
create pfile='/data01/initegap.ora' from spfile;(在单实例数据库上执行)
pfile文件如下:
--注意:发现参数文件中有两处配置了pga和sga参数,开始以为带双下划线的参数同不带双下划线一样,所以在rac的参数文件中就
只保留了带双下划线部分,也正是这个改动,导致了后面数据库无法启动

2.根据原库参数文件修改后生成rac参数文件
--修改后的rac的参数文件如下
--所有参数值都未作修改,只是添加了rac所需的参数

 

egap.__db_cache_size=27648851968egap.__java_pool_size=67108864egap.__large_pool_size=67108864egap.__oracle_base='/apps/oracle'#ORACLE_BASE set from environmentegap.__pga_aggregate_target=10334765056egap.__sga_target=30937186304egap.__shared_io_pool_size=0egap.__shared_pool_size=2952790016egap.__streams_pool_size=0*.audit_file_dest='/apps/oracle/admin/egap/adump'*.audit_trail='db'*.compatible='11.2.0.0.0'*.control_files='/data01/egap/control01.ctl','/data01/egap/control02.ctl'*.db_block_size=8192*.db_domain=''*.db_file_name_convert='/data01/egapdb','/data01/egap'*.db_name='egap'*.diagnostic_dest='/apps/oracle'*.fal_client='primary'*.fal_server='standby1','standby2'*.log_archive_config='DG_CONFIG=(egap,egapdb)'*.log_archive_dest_1='location=/archlog/egap'*.log_archive_dest_2='SERVICE=standby1 LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=egapdb'*.log_archive_format='egap_%t_%s_%r.arch'*.log_file_name_convert='/data01/egapdb','/data01/egap'*.open_cursors=300*.pga_aggregate_target=10307502080*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.sga_target=30922506240*.standby_file_management='AUTO'*.undo_tablespace='UNDOTBS1'

2.根据原库参数文件修改后生成rac参数文件
--修改后的rac的参数文件如下
--所有参数值都未作修改,只是添加了rac所需的参数

 

egapdb2.__db_cache_size=27648851968egapdb1.__db_cache_size=27648851968egapdb2.__java_pool_size=67108864egapdb1.__java_pool_size=67108864egapdb2.__large_pool_size=67108864egapdb1.__large_pool_size=67108864*.__oracle_base='/apps/oracle'#ORACLE_BASE set from environmentegapdb2.__pga_aggregate_target=10334765056egapdb1.__pga_aggregate_target=10334765056egapdb2.__sga_target=30937186304egapdb1.__sga_target=30937186304egapdb2.__shared_io_pool_size=0egapdb1.__shared_io_pool_size=0egapdb2.__shared_pool_size=2952790016egapdb1.__shared_pool_size=2952790016egapdb2.__streams_pool_size=0egapdb1.__streams_pool_size=0*.audit_file_dest='/apps/oracle/admin/egapdb/adump'*.audit_trail='db'*.compatible='11.2.0.0.0'*.control_files='/data01/egapdb/control01.ctl','/data01/egapdb/control02.ctl'*.db_block_size=8192*.db_domain=''*.DB_FILE_NAME_CONVERT='/data01/egap','/data01/egapdb'*.db_name='egap'*.DB_UNIQUE_NAME='egapdb'*.diagnostic_dest='/apps/oracle'egapdb1.FAL_CLIENT='standby1'egapdb2.FAL_CLIENT='standby2'*.FAL_SERVER='primary'*.cluster_database=TRUE*.cluster_database_instances=2egapdb1.instance_name='egapdb1'egapdb2.instance_name='egapdb2'egapdb1.instance_number=1egapdb2.instance_number=2egapdb1.thread=1egapdb2.thread=2*.undo_management='AUTO'egapdb1.undo_tablespace='UNDOTBS1'egapdb2.undo_tablespace='UNDOTBS2'egapdb1.local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.96.3)(PORT=1521))))'egapdb2.local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.96.4)(PORT=1521))))'*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(egap,egapdb)'egapdb1.log_archive_dest_1='location=/archlog/egapdb1'egapdb2.log_archive_dest_1='location=/archlog/egapdb2'*.log_archive_dest_2='SERVICE=primary LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=egap'*.log_archive_format='egapdb_%t_%s_%r.arch'*.LOG_FILE_NAME_CONVERT='/data01/egap','/data01/egapdb'*.open_cursors=300*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.STANDBY_FILE_MANAGEMENT='AUTO'

3.用新的pfile启动数据库(然后进行添加redo,undo,实例等操作)
SQL> startup pfile='/data01/pfile';
ORA-00371: not enough shared pool memory, should be atleast 395251753 bytes
--用修改后的rac参数文件启动时报如下错误,修改时我对参数值进行改动,只是添加了rac所需要的一些参数,按理说是不应该会报参数值过小这类错误的,因为原来的单实例库用的就是同样的参数。

 

4.问题发生的原因
后来发现是因为我在修改原参数文件时,去掉了*.pga_aggregate_target=和*.sga_target=
只保留了如下参数
egapdb2.__pga_aggregate_target=10334765056
egapdb1.__pga_aggregate_target=10334765056
egapdb2.__sga_target=30937186304
egapdb1.__sga_target=30937186304
--后来在参数文件中加上*.pga_aggregate_target=和*.sga_target=参数以后能够正常启动
 5.带双下划线的参数的意义

    这里我们来说一下参数文件中带双下划线的参数的意义(带单下划线的参数为隐含参数),带双下划线的参数在自动内存管理中才会出现(asmm)。如果使用了spfile的话,asmm会在实例shutdown之前将当前实际的内存组件大小(oracle认为最优的,实际上可能不是最优的)保存到spfile中,你用strings命令可以在spfile文件中查看到带双下划线的参数(asmm所涉及到的参数)。这些在spfile保存的组件大小会在下次启动时被沿用,已达到将已实践得出的“最佳值”记住的目的,这样下次就不用逐渐调整了。

 

 

0 0
原创粉丝点击