DG的重建

本文提供了一套详细的步骤来解决DG不工作的问题,包括关闭、启动数据库、备份与恢复控制文件等操作,确保主备数据库能顺利切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

这就是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上也在哪。

  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;
  MOUNT STANDBY ;
  RECOVER MANAGED STANDBY  DISCONNECT  SESSION;


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

切换std的phi模式到logic模式

在std上执行:
  RECOVER MANAGED STANDBY  CANCEL;
在pri上执行:
EXECUTE DBMS_LOGSTDBYbuild;
在std上执行:
  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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值