Oracle Dg 重建,DG Failover之后原主库恢复成standby重建加入DG

一.原DG主备库需开启flashback database1.查看是否开启flashback主:

SQL> select flashback_on from v$database

LASHBACK_ON

- -----------------

NO

备:

SQL> select flashback_on from v$database;

LASHBACK_ON

------------------

NO

2.开启flashback(主,备)

SQL> shutdown immediate

SQL> Startup mount

SQL> Alter database flashback on

SQL> Alter database open

二.Failover DGhttps://www.cndba.cn/Expect-le/article/122

原备库成为主库,原主库脱离DG。成为两个单实例。

1.备库的failoverSQL> shutdown immediate

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area  709836800 byteshttps://www.cndba.cn/Expect-le/article/122

Fixed Size 2256632 bytes

Variable Size 486539528 bytes

Database Buffers 218103808 bytes

Redo Buffers 2936832 bytes

Database mounted.

SQL> alter system flush redo to 'zds_s';

System altered.

2.failover操作

这里省略了failover的操作步骤。

步骤:

alter system flush redo to

alter database recover managed standby database finish force;

alter database commit to switchover to primary with session shutdown;

alter database open;

https://www.cndba.cn/Expect-le/article/122

[root@dg-s opt]# python zx.py dgfo_st zds

TRUE|1

检查源备库:

SQL> select name,log_mode ,open_mode ,database_role ,protection_mode ,switchover_status from v$database;

NAME   LOG_MODE     OPEN_MODE     DATABASE_ROLE    PROTECTION_MODE   SWITCHOVER_STATUS

--------- ------------ -------------------- ---------------- -------------------- --------------------

ZDS   ARCHIVELOG   READ WRITE     PRIMARY      MAXIMUM PERFORMANCE  FAILED DESTINATION

SQL> select open_mode from v$database;

OPEN_MODE

--------------------

READ WRITE

https://www.cndba.cn/Expect-le/article/122

2.恢复原主库成备库。

---新主库查看scn

SQL> SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE;

TO_CHAR(STANDBY_BECAME_PRIMARY_SCN)

----------------------------------------

1269588

---旧主库

SQL> shutdown immediate

SQL> startup mount;

ORACLE instance started.

Total System Global Area  709836800 bytes

Fixed Size     2256632 bytes

Variable Size   486539528 bytes

Database Buffers   218103808 bytes

Redo Buffers     2936832 bytes

Database mounted.

---闪回到上面查出scn

SQL> flashback database to scn 1269588;

Flashback complete.

----切换到PHYSICAL STANDBYhttps://www.cndba.cn/Expect-le/article/122

SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

Database altered.

SQL> SHUTDOWN IMMEDIATE;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup;

ORACLE instance started.

Total System Global Area  709836800 bytes

Fixed Size     2256632 bytes

Variable Size   486539528 bytes

Database Buffers   218103808 bytes

Redo Buffers     2936832 bytes

Database mounted.

Database opened.

---启动MRP

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

Database altered.

SQL>

查看进程

SQL> select process,status from v$managed_standby;

PROCESS   STATUS

--------- ------------

ARCH   CONNECTED

ARCH   CONNECTED

ARCH   CONNECTED

ARCH   CLOSING

RFS   IDLE

RFS   IDLE

RFS   IDLE

MRP0   APPLYING_LOG

8 rows selected.

至此,原主库已经恢复成备库

三.检查新加入DG的状态

SQL> select name,log_mode ,open_mode ,database_role ,protection_mode ,switchover_status from v$database;

NAME   LOG_MODE     OPEN_MODE     DATABASE_ROLE    PROTECTION_MODE   SWITCHOVER_STATUS

--------- ------------ -------------------- ---------------- -------------------- --------------------

ZDS   ARCHIVELOG   READ WRITE     PRIMARY      MAXIMUM PERFORMANCE  TO STANDBY

SQL> select DEST_NAME,STATUS,PROCESS,ERROR,TRANSMIT_MODE from v$archive_dest WHERE TARGET='STANDBY';

DEST_NAME        STATUS  PROCESS    ERROR    TRANSMIT_MOD

------------------------------ --------- ---------- ------------------------------ ------------

LOG_ARCHIVE_DEST_2        VALID  LGWR    ASYNCHRONOUS

新主库:

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

48

SQL> alter system switch logfile;

System altered.

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

49

新备库:

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

48

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

49

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值