Oracle Dataguard failover 操作步骤

在11g里面,Oracle认为最理想的情况是,虽然Oracle数据库不能打开,但是可以启动到 mount状态。
Mount状态之所以重要,就在于如果可以到这个阶段,控制文件control_file就可以读取 归档日志和在线日志的位置信息。这也就意味着最大可能性的进行数据恢复,避免数据损失。

在11g中,推出了日志手工flush的功能,来弥补日志数据没有传递的问题。

10g版本下没有办法自动flush redo。但是可以从Primary目录中,将日志拷贝到Standby端,手工去加载。

1 主库续传日志到备库

如果主库可以到mount状态,在11G里可以通过下面的命令,将未传送到standby端的日志传送过去:

alter system flush redo to 'standby_db_unique_name';

2 备库查询归档缺失

既然是failover,主库已经处于down状态。查看备库的状态:

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

 NAME  OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
 ----- -------------------- ---------------- --------------------
 ORCL  READ ONLY            PHYSICAL STANDBY NOT ALLOWED

查看是否存在未传送的归档:

select thread#, low_sequence#, high_sequence# from v$archive_gap;
no rows selected

如果没有查到结果,说明归档在standby 端没有缺失。那么数据上基本不会有丢失,即使丢失,也只有 redo buffer 中未来得及刷出的部分可能会丢失。

如果 有未传送至备库的归档 , 将其复制到standby 后进行注册

alter database register physical logfile '/arch/oradata/dg01/1_109900.arc';

3 备库取消数据复制

将备库切换为主库.此时,我们不能通过cancel来取消数据同步,而是通过finish。 这个操作,实际上是关闭了MRP进程。可以通过alert日志来确认。

alter database recover managed standby database cancel;
alter database recover managed standby database finish;
# 终止进程后,查看备库的状态,如果是to_primary 说明可以进行切换
select name,open_mode,database_role,switchover_status from v$database;

4 备库切换为主库

# 切换
alter database commit to switchover to primary [with session shutdown];
# 查看切换后状态
select open_mode,database_role,switchover_status from v$database;

OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ WRITE           PRIMARY          FAILED DESTINATION

5 查看新主库角色切换时的scn

通过查询这个时间点儿的SCN,确定主备之间数据一致的点。

 

SELECT to_char(STANDBY_BECAME_PRIMARY_SCN) from V$DATABASE;

6 原主库切换为备库

将原主库启动,并闪回到上一步查询的scn点.

FLASHBACK DATABASE TO SCN &standby_became_primary_scn;
#将原主库转换成物理备库,并启动日志应用进程
ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

7 启动备库数据同步

alter database recover managed standby database using current logfile disconnect from session;
posted @ 2019-04-01 21:25  halberd.lee  阅读(1137)  评论(0编辑  收藏  举报