一:环境信息1)主库(单实例)主机平台:aix6.1数据库版本:11.2.0.3(psu5)2)备库(部署了crs)主机平台:aix6.1数据库版本:11.2.0.3(psu5)二:方案背景由
一:环境信息
1)主库(单实例)
主机平台:aix6.1
数据库版本:11.2.0.3(psu5)
2)备库(部署了crs)
主机平台:aix6.1
数据库版本:11.2.0.3(psu5)
二:方案背景
由于业务量增加,数据库需要由单实例,改成两节点rac。为了减少停机时间,采用dg方式迁移。
三迁移方案:
1.检查数据库是否支持data guard(只有企业版才支持dg)
sql> select * from v$option where parameter = 'managed standby';parametervalue---------------------------------------------------------------- ----------------------------------------------------------------managed standbytrue2.修改主库为归档模式及force logging状态
1)
sql> alter database force logging;database altered.2)
sql> archive log list;
如果未开归档,开启归档模式
alter system set log_archive_dest_2='location=/archlog/egap';alter system set log_archive_format='egap_%t_%s_%r.arch' scope=spfile; --静态参数,重启后生效shutdown immediate;startup mount;alter database archivelog;alter database open;archive log list;3.创建备库pfile文件
在主库上创建pfile,修改,并添加dg备库所有参数,然后传至备库
sql> create pfile='/data01/pfileegap' from spfile;1)备库需要添加的参数
db_unique_name;log_archive_dest_1;fal_server;fal_client; standby_file_management=auto;db_file_name_convert;log_file_name_convert
2)根据pfile中涉及到路径需要提前在备库主机上建好(如果主备库路径不一致要修改)
如主库*.audit_file_dest='/apps/oracle/admin/egap/adump'
我们在备库需要建 mkdir -p /apps/oracle/admin/egap/adump
cd /apps/oracle/admin
chown -r oracle:oinstall egap
chmod -r 775 egap
改变前参数文件
*.__db_cache_size=27648851968*.__java_pool_size=67108864*.__large_pool_size=67108864*.__oracle_base='/apps/oracle'#oracle_base set from environment*.__pga_aggregate_target=10334765056*.__sga_target=30937186304*.__shared_io_pool_size=0*.__shared_pool_size=2952790016*.__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_name='egap'*.diagnostic_dest='/apps/oracle'*.log_archive_dest_1='location=/archlog/egap'*.log_archive_format='egap_%t_%s_%r.arch'*.open_cursors=300*.pga_aggregate_target=10307502080*.processes=150*.remote_login_passwordfile='exclusive'*.sga_target=30922506240*.undo_tablespace='undotbs1'改变后参数文件
*.__db_cache_size=27648851968*.__java_pool_size=67108864*.__large_pool_size=67108864*.__oracle_base='/apps/oracle'#oracle_base set from environment*.__pga_aggregate_target=10334765056*.__sga_target=30937186304*.__shared_io_pool_size=0*.__shared_pool_size=2952790016*.__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_name='egap'*.diagnostic_dest='/apps/oracle'*.log_archive_dest_1='location=/archlog/egapdb1'*.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'*.open_cursors=300*.pga_aggregate_target=10307502080*.processes=150*.remote_login_passwordfile='exclusive'*.sga_target=30922506240*.undo_tablespace='undotbs1'*.db_unique_name=egapdb*.fal_server=primary*.fal_client=standby1*.standby_file_management=auto*.db_file_name_convert='/data01/egap','/data01/egapdb'*.log_file_name_convert='/data01/egap','/data01/egapdb'*.log_archive_config='dg_config=(egap,egapdb)'###注意db_file_name_convert和log_file_name_convert参数指定的路径要存在
4)根据修改后的pfile创建备库spfile
export oracle_sid=egapdb1sqlplus / as sysdbacreate spfile from pfile;--使用新生成的spfile检查是否能够成功启动实例
4.生成备库的密码文件
scp主库密码文件到备库,并改名
如果主库没有密码文件,需要新建
orapwd file=/oracle/app/oracle/product/v11.2.0.3/db_1/dbs/orapwegap password=oracle entries=5 ignorecase=y--主库密码文件传到备库以后要重启备库
5.配置主备库监听及net服务
1)listener
--主库
一般建库后都会配置监听我们无需再配置
--备库(因为安装了cluster,所以用的是cluster的监听)
lsnrctl status 查看监听文件位置,并在监听文件中加入如下类容
listener_scan3=(description=(address_list=(address=(protocol=ipc)(key=listener_scan3))))# line added by agentlistener_scan2=(description=(address_list=(address=(protocol=ipc)(key=listener_scan2))))# line added by agent#listener=(description=(address_list=(address=(protocol=ipc)(key=listener))))# line added by agentlistener_scan1=(description=(address_list=(address=(protocol=ipc)(key=listener_scan1))))# line added by agentenable_global_dynamic_endpoint_listener_scan1=on# line added by agentenable_global_dynamic_endpoint_listener=on# line added by agentenable_global_dynamic_endpoint_listener_scan2=on# line added by agentenable_global_dynamic_endpoint_listener_scan3=on# line added by agent--注意集群安装完毕以后,上面部分内容在监听中已经存在sid_list_listener =(sid_list =(sid_desc =(sid_name = plsextproc)(oracle_home = /apps/oracle/product/11.2.0.3/db_1)(program = extproc))(sid_desc =(oracle_home = /apps/oracle/product/11.2.0.3/db_1)(sid_name = egapdb1)))listener =(description_list =(description =(address = (protocol = tcp)(host = 192.168.96.1)(port = 1521)(ip = first))))