首先,恭喜你需要用到这个页面,这说明你遇到了和我一样的问题:
这就是DG他瞄的不干活了,怎么做都不好好干,其次你的app还在很欢快的跑着,并且不能说停就停。
我假设你遇到的并非任何硬件问题导致的结果,因为那样的话,你先参见DG建立及配置,做好所有该做的准备工作
下面看下整个步骤:
目录 |
把没救了的std shutdown掉
conn sysdba
shutdown immediate;
既然反正也没救了,你也可以选择粗暴点:
conn sysdba shutdown abort;
再把它startup nomount起来
startup nomount
把我们亲爱的pri做一次备份(PRI)
rman target / cmdfile $ORACLE_HOME/dbs/level0.rcv
$ORACLE_HOME/dbs/level0.rcv 的内容类似这样:
run { allocate channel 'dev1' type disk format '/opt/oracle/orabackup/d_%U_1'; allocate channel 'dev2' type disk format '/opt/oracle/orabackup/d_%U_2'; allocate channel 'dev3' type disk format '/opt/oracle/orabackup/d_%U_3'; backup incremental level 0 format '/opt/oracle/orabackup/L0/L0_%U_%T' database skip readonly; sql 'alter system archive log current'; backup filesperset 3 archivelog all delete input; release channel dev1; release channel dev2; release channel dev3; change archivelog all crosscheck; crosscheck backup; delete obsolete; }
在pri上创建一个standby版本 的 CONTROLFILE文件(PRI)
STANDBY CONTROLFILE ;
这里的路径随意,不过为了下面同步时轻松点,还是放在一个专用于备份文件的地方比较好,就像上面我的level0.rcv文件里指定的/opt/oracle/orabackup/这里需要注意保证的一点是:/opt/oracle/orabackup/ 这个路径在pri和std上同时存在,并且oracle用户访问起来没啥难度。
同步一些文件(文件都在pri上)
同步的意思就是,这个文件pri上在哪,std上也在哪。
- 备份文件;
- std.ctl;
- pri上最近的archive log(注意这个的同步路径例外,这些内容应该从PRI上的arch_dest1同步到STD上的arch_dest2);
- 可能还有temp临时表空间文件,是不是一定需要,我不确定;
edit by xxp: 似乎temp表空间是需要的,否则需要在备机上先把temp干掉恢复之后再重建。
下面这个命令做这个很方便,文件的安全属性也可以一起同步过去,前提是你两边都有ssh的key
rsync -av localpath root@std:/path
sample:
rsync -av /opt/oracle/orabackup/* root@10.100.20.20:/opt/oracle/orabackup rsync -av /opt/oracle/oradata/fifadb/arch/* root@10.100.20.20:/opt/oracle/oradata/fifadb/arch2 rsync -av /opt/oracle/oradata/fifadb/system/temp01.dbf root@10.129.8.92:/opt/oracle/oradata/fifadb/system/
恢复我们亲爱的std,(注意,这还是在PRI上去做的事)
rman target / connect auxiliary sys/sys@db_011_s duplicate target database for standby nofilenamecheck;
让std正常的工作在phi模式下,(这次回到STD上了)
SHUTDOWN IMMEDIATE; STARTUP NOMOUNT; MOUNT STANDBY ; RECOVER MANAGED STANDBY DISCONNECT SESSION;
顺利完成到这一步后,物理方式的DG就已重建完毕,如果不准备让备机工作在logic方式的话,我们的工作就完成了!
切换std的phi模式到logic模式
在std上执行:RECOVER MANAGED STANDBY CANCEL;
EXECUTE DBMS_LOGSTDBYbuild;
RECOVER LOGICAL STANDBY fifadb;
上面这步有时可能需要较长的时间。无论如何,命令敲下去后,注意跟踪看看alert_fifadb.log 的变化会有帮助的
接下来在STD上执行:SHUTDOWN IMMEDIATE; STARTUP MOUNT; OPEN RESETLOGS; START LOGICAL STANDBY APPLY IMMEDIATE;
做这一切的时候千万注意要开着一个窗口随时观察着std上的alert_fifadb.log 输出,可以看看每一步是不是都被正常执行了,这会非常有帮助的
tail -f alert_fifadb.log
观察logic standby apply进程的工作情况
set linesize 1000 SELECT * FROM V$LOGSTDBY_PROCESS;
如果有像这样的输出:
SID SERIAL# LOGSTDBY_ID SPID TYPE STATUS_CODE STATUS HIGH_SCN
---------- ---------- ----------- ------------ ------------------------------ ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------
150 10 -1 25257 COORDINATOR 16116 ORA-16116: no work available 379901659
144 3 0 25139 READER 16240 ORA-16240: Waiting for logfile (thread# 1, sequence# 1774) 379901659
125 43 1 25141 BUILDER 16116 ORA-16116: no work available 379901656
143 3 2 25143 PREPARER 16116 ORA-16116: no work available 379901655
145 8 3 25147 PREPARER 16116 ORA-16116: no work available 379901631
133 3 4 25149 ANALYZER 16117 ORA-16117: processing 379901656
134 3 5 25151 APPLIER 16116 ORA-16116: no work available
132 3 6 25153 APPLIER 16116 ORA-16116: no work available
128 3 7 25155 APPLIER 16116 ORA-16116: no work available
135 3 8 25157 APPLIER 16116 ORA-16116: no work available
130 3 9 25259 APPLIER 16116 ORA-16116: no work available
120 1 10 25261 APPLIER 16116 ORA-16116: no work available
123 1 11 25263 APPLIER 16116 ORA-16116: no work available
119 1 12 25265 APPLIER 16116 ORA-16116: no work available
117 1 13 25267 APPLIER 16116 ORA-16116: no work available
131 3 14 25269 APPLIER 16116 ORA-16116: no work available
16 rows selected.
那么你成功了
最后,祝你好运并一时半会用不上这个页面
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25618347/viewspace-713872/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25618347/viewspace-713872/