DataGuard切换的方法是什么

55次阅读
没有评论

共计 2618 个字符,预计需要花费 7 分钟才能阅读完成。

本篇内容介绍了“DataGuard 切换的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

环境: 
   db version:11.2.0.3 
  主库:两节点的 RAC 
    备库:两节点的 RAC 
        是异地灾备,网络质量不太好。 
步骤: 
1. 检查日志应用情况  
standby database(备库检查): 
SQL select thread#,SEQUENCE#,FIRST_TIME,next_time,applied from gv$archived_log order by sequence#; (确定日志都已经应用  ) 

2.  检查日志传输错误  
SQL SELECT STATUS, GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 2; STATUS  GAP_STATUS 
——— ———————— 
VALID  NO GAP 

3.  评估切换时间   –rac 环境下备库只有一个实例可以为 open 状态。 
 set linesize 200 
SQL column name format a22 
SQL column value format a16 
SQL column unit format a28 
SQL column time_computed format a25 
SQL  select * from v$dataguard_stats; 
NAME       VALUE UNIT     TIME_COMPUTED       DATUM_TIME 
———————- —————- —————————- ————————- —————————— 
transport lag       +00 01:47:32 day(2) to second(0) interval 10/29/2014 10:48:15       10/29/2014 10:47:58 
apply lag       +00 01:47:32 day(2) to second(0) interval 10/29/2014 10:48:15       10/29/2014 10:47:58 
apply finish time day(2) to second(3) interval 10/29/2014 10:48:15 
estimated startup time 20 second     10/29/2014 10:48:15 

4.  由于主备库都是 rac,此环境下主库和备库都只有一个实例存活  
 srvctl stop instance -d EM -i EM2 – 先停止主库  
srvctl stop instance -d EM_SH -i EMP2 – 停止备库  

NOTE: 如果主库两个实例都存活会报错如下: 

SQL alter database commit to switchover to physical standby with session shutdown; 
alter database commit to switchover to physical standby with session shutdown 

ERROR at line 1: 
ORA-01105: mount is incompatible with mounts by other instances 

5. 登录主库操作  
SQL SELECT SWITCHOVER_STATUS FROM V$DATABASE; —  确保状态为 SESSION_ACTIVE 或者 TO STANDBY(由于是异地可能在 shut 一个实例后,redo 应用会有延迟,如果网络质量不太好,可等一等  ) 

alter database commit to switchover to physical standby with session shutdown; – 执行切换 (最好把应用停掉  ) – 执行完此操作后,数据库会自动 shut 

 STARTUP MOUNT; —  启动原来主库到 mount 

6. 登录备库操作  
SELECT SWITCHOVER_STATUS FROM V$DATABASE; —  确保状态会 SESSION_ACTIVE 或者 TO PRIMARY. 

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN; – 执行角色切换  

ALTER DATABASE OPEN;– 打开新主库  

srvctl start instance -d databasename -i instance_name – 启动另外的节点  

7. 登录新的备库  
ALTER DATABASE OPEN; – 启动库  

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; – - 启动实时应用  

srvctl start instance -d databasename -i instance_name; – 启动其他实例  

8. 进行事务,发现并没有同步过来  
archive log list 发现 scn 都没有  

经过核查是因为主库并没有日志传输  
 alter system set log_archive_dest_state_2= enable sid= *  – 在新的主库执行,启动日志传输服务  
有可能查询数据的状态为: 

 SQL  SELECT SWITCHOVER_STATUS FROM V$DATABASE; 

SWITCHOVER_STATUS 
——————– 
FAILED DESTINATION 

查看备库的 scn 没有变化,可重启下备库。 

9. 检查是否同步  
SELECT MAX(SEQUENCE#),THREAD# FROM V$ARCHIVED_LOG 
WHERE RESETLOGS_CHANGE# = (SELECT MAX(RESETLOGS_CHANGE#) FROM V$ARCHIVED_LOG)  GROUP BY THREAD#;

“DataGuard 切换的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计2618字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)