【DG】DG之Switchover和Failover的区别

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【DG】DG之Switchover和Failover的区别 Dataguard中的role transition:switchover和fa...

【DG】DG之Switchover和Failover的区别












Dataguard中的role transition:switchover和failover以及将failover后的old primary flackback成physical standby库

  Dataguard中的role transition包括两种:switchover和failover,

  区别在于:switchover将一个physical standby database switchover成为primary database过程可以保证无数据丢失,在完成后其它的standby数据库和原来的primary库还可以成为这个dataguard的standby role的一部分.

  Failover当主库crash无法正常启动时,将一个standby库failover成primary role库,如果在primary库在出故障之前不是处于protection的话,将会有一些数据丢失,因为当前在写的 redo没有办法传到standby库。如果primary,standby库都打开了flashback的话,可以将原来的主库重新设为新primary role数据库的standby库。

  在进行role transition要检查:

  primary,standby是否处于archvielog模式。

  Standby库的tempory file要和primary匹配

  是rac的话:在standby RAC上只有一个实例mount,其它都要关闭

  COLUMN NAME FORMAT A18

  COLUMN VALUE FORMAT A16

  COLUMN TIME_COMPUTED FORMAT A24

  SELECT * FROM V$DATAGUARD_STATS;---可以从这张视图看到没有应用的日志应用上去要多长时间


  SQL> SELECT * FROM V$DATAGUARD_STATS; 
  NAME VALUE UNIT TIME_COMPUTED 
  ------------------ ---------------- ------------------------------ ------------------------ 
  apply finish time +00 00:38:57.2 day(2) to second(1) interval 26-SEP-2008 23:16:39 
  apply lag +00 09:48:00 day(2) to second(0) interval 26-SEP-2008 23:16:39 
  estimated startup 25 second 26-SEP-2008 23:16:39 
  time 
  standby has been o N 26-SEP-2008 23:16:39 
  pen 
  transport lag +00 00:00:00 day(2) to second(0) interval 26-SEP-2008 23:16:39 
  SQL> select NAME ,DB_UNIQUE_NAME ,open_mode,DATABASE_ROLE from v$database;

  一.Switchovers的过程:

  1. 检查主库目前的状态:

  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

  SWITCHOVER_STATUS

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

  TO STANDBY

  2.将主库置为standby role


  SQL> alter database commit to switchover to physical standby; 
  Database altered. 
  SQL> shutdown immediate; 
  ORA-01507: database not mounted 
  ORACLE instance shut down. 
  SQL> startup mount; 
  ORACLE instance started. 
  Total System Global Area 218103808 bytes 
  Fixed Size 1260984 bytes 
  Variable Size 117441096 bytes 
  Database Buffers 96468992 bytes 
  Redo Buffers 2932736 bytes 
  Database mounted.

  2. standby库转为primary


  SQL> select NAME ,DB_UNIQUE_NAME ,open_mode,DATABASE_ROLE from v$database; 
  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; 
  SWITCHOVER_STATUS 
  -------------------- 
  TO PRIMARY 
  SQL> alter database commit to switchover to primary; 
  Database altered. 
  SQL> alter database open; 
  Database altered. 
  SQL> select NAME ,DB_UNIQUE_NAME ,open_mode,DATABASE_ROLE from v$database; 
  NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE 
  ------------------ ------------------------------ ---------- ---------------- 
  MAINDB standb READ WRITE PRIMARY

  主库上:


  SQL> alter database recover managed standby database disconnect from session
  Database altered. 
  SQL> select NAME ,DB_UNIQUE_NAME ,open_mode,DATABASE_ROLE from v$database; 
  NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE 
  ------------------ ------------------------------ ---------- ---------------- 
  MAINDB maindb MOUNTED PHYSICAL STANDBY

  二.Failovers的过程:

  查询没有应用的日志:

  SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

  THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#

  Cp过来并register

  SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

  SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;

  SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

  SQL> ALTER DATABASE OPEN;

  一旦主数据故障无法使用,就可以迅速激活镜像备份:

  1、如果可能,归档主服务器当前重做日志,传送到镜像服务器;

  2、使用主服务器的归档日志文件做恢复:

  SQL>recover standby database;

  3、激活并打开数据库:


  SQL>alter database activate standby database; 
  SQL>alter database mount; 
  SQL>alter database open;

  三.将Failover之后的老的主库 flashback成新primary的standby库:

  1. 在新主库查出failover时的SCN:


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

  2. 在old primary库上:


  SQL> SHUTDOWN IMMEDIATE; 
  SQL> STARTUP MOUNT; 
  SQL> FLASHBACK DATABASE TO SCN172313; 
  SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY; 
  SQL> SHUTDOWN IMMEDIATE; 
  SQL> STARTUP MOUNT; 
  SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE 
  USING CURRENT LOGFILE DISCONNECT;






About Me

...............................................................................................................................

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客园地址:http://www.cnblogs.com/lhrbest

● 本文pdf版及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● QQ群:230161599     微信群:私聊

● 联系我请加QQ好友(646634621),注明添加缘由

● 于 2017-06-02 09:00 ~ 2017-06-30 22:00 在魔都完成

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

...............................................................................................................................

拿起手机使用微信客户端扫描下边的左边图片来关注小麦苗的微信公众号:xiaomaimiaolhr,扫描右边的二维码加入小麦苗的QQ群,学习最实用的数据库技术。


DBA笔试面试讲解
欢迎与我联系

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7月前
|
容器
dataguard offline
dataguard offline
45 2
|
SQL 网络协议 Oracle
【DG】主rac + 备rac dg 部署
【DG】主rac + 备rac dg 部署 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 主库...
2812 0
|
安全 数据库
【DG】DG的3种保护模式
【DG】DG的3种保护模式 DG提供了3种数据保护模式:最大保护(Maximum Protection)、最高性能(Maximum Performance)和最高可用(Maximum Availability),如下表所示: 表 3-32 DG三种模式的区别 数据库异地备份方案 在对数据库计划实施异地备份时,需要理解异地备份的目的。
1302 0
|
Oracle 关系型数据库 测试技术
|
SQL Oracle 关系型数据库
|
SQL 关系型数据库 Oracle