ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DG的重建

DG的重建

原创 Linux操作系统 作者:skuary 时间:2011-12-23 16:41:08 0 删除 编辑

首先,恭喜你需要用到这个页面,这说明你遇到了和我一样的问题:

这就是DG他瞄的不干活了,怎么做都不好好干,其次你的app还在很欢快的跑着,并且不能说停就停。

我假设你遇到的并非任何硬件问题导致的结果,因为那样的话,你先参见DG建立及配置,做好所有该做的准备工作

下面看下整个步骤:

目录

把没救了的std shutdown掉

 conn / as  sysdba
 shutdown immediate;

既然反正也没救了,你也可以选择粗暴点:

 conn / as  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)

 ALTER DATABASE CREATE STANDBY CONTROLFILE as '/opt/oracle/orabackup/std.ctl';

这里的路径随意,不过为了下面同步时轻松点,还是放在一个专用于备份文件的地方比较好,就像上面我的level0.rcv文件里指定的/opt/oracle/orabackup/这里需要注意保证的一点是:/opt/oracle/orabackup/ 这个路径在pri和std上同时存在,并且oracle用户访问起来没啥难度。

同步一些文件(文件都在pri上)

同步的意思就是,这个文件pri上在哪,std上也在哪。

  1. 备份文件;
  2. std.ctl;
  3. pri上最近的archive log(注意这个的同步路径例外,这些内容应该从PRI上的arch_dest1同步到STD上的arch_dest2);
  4. 可能还有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;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


顺利完成到这一步后,物理方式的DG就已重建完毕,如果不准备让备机工作在logic方式的话,我们的工作就完成了!

切换std的phi模式到logic模式

在std上执行:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
在pri上执行:
EXECUTE DBMS_LOGSTDBY.build;
在std上执行:
ALTER DATABASE RECOVER TO LOGICAL STANDBY fifadb;

上面这步有时可能需要较长的时间。无论如何,命令敲下去后,注意跟踪看看alert_fifadb.log 的变化会有帮助的

接下来在STD上执行:
SHUTDOWN IMMEDIATE;
 
STARTUP MOUNT;
 
ALTER DATABASE OPEN RESETLOGS;
 
ALTER DATABASE 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/,如需转载,请注明出处,否则将追究法律责任。

下一篇: DG建立及配置
请登录后发表评论 登录
全部评论

注册时间:2011-03-31

  • 博文量
    88
  • 访问量
    316849