主库宕机后,从库切换为主库,重新搭建DG过程如下,
-
-
1、修改primary端初始化参数文件 (不用修改,目前就是这样的配置)
-
-
alter system set log_archive_config = 'DG_CONFIG=(zzdb,zzdb_dg)' scope=both;
-
alter system set log_archive_dest_1 = 'LOCATION=/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=zzdb_dg' scope=both;
-
alter system set log_archive_dest_2 = 'SERVICE=zzdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=zzdb' scope=both;
-
alter system set log_archive_dest_state_1 = enable;
-
alter system set log_archive_dest_state_2 = enable;
-
alter system set fal_server=zzdb scope=both;
-
alter system set fal_client=zzdb_dg scope=both;
-
alter system set standby_file_management=AUTO scope=both;
-
alter system set db_file_name_convert='/oracle/product/oradata/zzdb','/oracle/product/oradata/zzdb' scope=spfile;
-
alter system set log_file_name_convert='/oracle/product/oradata/zzdb','/oracle/product/oradata/zzdb' scope=spfile;
-
-
-
2、现primary端pfile参数文件和密码文件,并且拷贝到standby节点(原primary节点)段相应位置
-
-
SQL> create pfile from spfile;
-
cd $ORACLE_HOME/dbs
-
scp initzzdb.ora orapwzzdb ora11-node1:$ORACLE_HOME/dbs
-
cd $ORACLE_BASE
-
scp -r admin/ diag/ ora11-node1:$ORACLE_BASE
-
-
-
3、修改standby(原primary节点)的监听文件及初始化参数文件
-
-
--复制现primary节点的监听文件
-
-
--启动监听
-
[oracle@ora11-node1 dbs]$ lsnrctl start
-
-
-
--修改参数文件
-
[oracle@ora11-node1 ~]$ sqlplus / as sysdba
-
SQL> startup nomount;
-
SQL> create spfile from pfile='$ORACLE_HOME/dbs/initzzdb.ora';
-
SQL> shutdown abort;
-
SQL> startup nomount;
-
SQL>
-
alter system set db_unique_name=zzdb scope=spfile;
-
alter system set log_archive_config='DG_CONFIG=(zzdb,zzdb_dg)' scope=both;
-
alter system set log_archive_dest_1 = 'LOCATION=/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=zzdb' scope=spfile;
-
alter system set log_archive_dest_2 = 'SERVICE=zzdb_dg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=zzdb_dg' scope=spfile;
-
alter system set fal_server=zzdb_dg scope=spfile;
-
alter system set fal_client=zzdb scope=spfile;
-
-
SQL> shutdown abort;
-
SQL> startup nomount;
-
-
-
4、在primary端通过Rman创建备库,在 ora11-node2 上执行如下命令
-
-
#primary备份数据库
-
mkdir -p /oracle/db_backup
-
rman target / <<!
-
run {
-
CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
-
backup database format '/oracle/db_backup/%d_%s_%p_%t.%T';
-
}
-
!
-
-
# primary生成备库控制文件
-
rman target / <<!
-
run {
-
allocate channel c1 device type disk format '/oracle/db_backup/CON_%U';
-
backup current controlfile for standby;
-
}
-
!
-
-
# cp备份文件和控制文件到standby
-
cd /oracle/db_backup
-
scp * ora11-node1:/oracle/db_backup
-
-
#standby节点,恢复控制文件
-
rman target / <<!
-
run {
-
restore controlfile from '/oracle/db_backup/CON_0bqq71jt_1_1';
-
alter database mount;
-
}
-
!
-
-
#standby节点,通过rman进行恢复
-
rman target / <<!
-
CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
-
restore database;
-
!
-
-
#至此已经恢复完成
-
-
-
5、在 standby 端 查看standby日志
-
SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
-
-
若没有添加:
-
-
SQL> alter database add standby logfile
-
group 4 ('/oracle/product/oradata/zzdb/zzdb_dgredo04.log') size 50m,
-
group 5 ('/oracle/product/oradata/zzdb/zzdb_dgredo05.log') size 50m,
-
group 6 ('/oracle/product/oradata/zzdb/zzdb_dgredo06.log') size 50m,
-
group 7 ('/oracle/product/oradata/zzdb/zzdb_dgredo07.log') size 50m;
-
-
-
6、在standby端开启实时日志应用
-
-
SQL> alter database recover managed standby database using current logfile disconnect from session;
-
-
recover managed standby database disconnect from session;
-
-
startup;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22661144/viewspace-1969263/
,如需转载,请注明出处,否则将追究法律责任。