Oracle DataGuard switchover

2013/07/11

Tag.Data Guard,primary,standby,switchover

切换前primary site和standby site状态检查

  • Primary site.

    1. 确认primary site和standby site没有出现日志裂隙(log file gap)

       SQL> select status,gap_status from v$archive_dest_status where dest_id=2;
      
       STATUS    GAP_STATUS
      --------- ------------------------
      VALID NO GAP
    2. 确认primary可以转换成standby角色

       SQL> select switchover_status from v$database;
      
       SWITCHOVER_STATUS
      --------------------
      TO STANDBY

      --注意:

      switchover_status应为to standby/session active/not allowed

      a. to standby 表示可以转换

      b. session active 表示还有活动的session,通过v$session确认活动会话

      c. not allowed 表示不能转换

    3. 查看当前会话数

       SQL> select count(*) from v$session where username is not null;
      
         COUNT(*)
      ----------
      1
    4. 查看primary其他信息

       SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database;
      
       OPEN_MODE            PROTECTION_MODE      PROTECTION_LEVEL     SWITCHOVER_STATUS
      -------------------- -------------------- -------------------- --------------------
      READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY
  • Standby site.

    1. 查看standby site端switchover状态

       SQL> select switchover_status,database_role from v$database;
      
       SWITCHOVER_STATUS    DATABASE_ROLE
      -------------------- ----------------
      NOT ALLOWED PHYSICAL STANDBY
    2. 确认standby site没有日志应用延迟

       SQL> select delay_mins from v$archive_dest where dest_id=2;
      
       DELAY_MINS
      ----------
      0

      如果有延迟设置.在standby site禁用延迟

       alter database recover managed standby database nodelay;
    3. 查看standby其他信息

       SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database;
      
       OPEN_MODE            PROTECTION_MODE      PROTECTION_LEVEL     SWITCHOVER_STATUS
      -------------------- -------------------- -------------------- --------------------
      READ ONLY WITH APPLY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE NOT ALLOWED
  • 切换

    --注意:

    现将primary将为standby,再将standby升为priamry

    1. primary切到standby

       SQL> select database_role from v$database;
      
       DATABASE_ROLE
      ----------------
      PRIMARY SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
      -------------------- -------------------- -------------------- --------------------
      READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY SQL> alter database commit to switchover to physical standby; Database altered.

      ========================================

       SQL> shutdown immediate;
      ORA-01092: ORACLE instance terminated. Disconnection forced
      SQL> shutdown immediate;
      ORA-24324: service handle not initialized
      ORA-01041: internal error. hostdef extension doesn't exist
      SQL> select open_mode from v$database;
      ERROR:
      ORA-03114: not connected to ORACLE SQL> exit
      Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options

      ========================================

       [oracle@TENCENT64 /u]$ sqlplus / as sysdba
      
       SQL*Plus: Release 11.2.0.2.0 Production on Thu Jul 11 19:57:50 2013
      
       Copyright (c) 1982, 2010, Oracle.  All rights reserved.
      
       Connected to an idle instance.
      SQL>

      =========================================

       SQL> startup nomount;
      ORACLE instance started. Total System Global Area 1603411968 bytes
      Fixed Size 2226912 bytes
      Variable Size 503317792 bytes
      Database Buffers 1090519040 bytes
      Redo Buffers 7348224 bytes SQL> alter database mount standby database; Database altered. SQL> alter database recover managed standby database disconnect from session; Database altered. SQL> select database_role from v$database; DATABASE_ROLE
      ----------------
      PHYSICAL STANDBY SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
      -------------------- -------------------- -------------------- --------------------
      MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO PRIMARY

      观察alert日志可以发现primary已经成功切换成Physical Standby database

       Thu Jul 11 19:58:56 2013
      Successful mount of redo thread 1, with mount id 3458571643
      Physical Standby Database mounted.
    2. standby切到primary

       SQL> select database_role from v$database;
      
       DATABASE_ROLE
      ----------------
      PHYSICAL STANDBY SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
      -------------------- -------------------- -------------------- --------------------
      READ ONLY WITH APPLY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO PRIMARY SQL> alter database commit to switchover to primary; Database altered. SQL> shutdown immediate;
      ORA-01109: database not open Database dismounted.
      ORACLE instance shut down. SQL> startup;
      ORACLE instance started. Total System Global Area 1603411968 bytes
      Fixed Size 2226912 bytes
      Variable Size 486540576 bytes
      Database Buffers 1107296256 bytes
      Redo Buffers 7348224 bytes
      Database mounted.
      Database opened. SQL> select database_role from v$database; DATABASE_ROLE
      ----------------
      PRIMARY SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
      -------------------- -------------------- -------------------- --------------------
      READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE RESOLVABLE GAP SQL> / OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
      -------------------- -------------------- -------------------- --------------------
      READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY

      观察alert日志可以发现standby已经成功切换成Primary

       Standby became primary SCN: 1362898
      Switchover: Complete - Database mounted as primary
      Completed: alter database commit to switchover to primary

    最后,修改primary site和standby site的tnsnames.ora

--END--

最新文章

  1. Android okHttp网络请求之Json解析
  2. javaScript中其他类型的值转换为Boolean类型
  3. tshark 抓包分析
  4. ROS 不能再详细的安装教程
  5. C# ADO.NET编写简单的图书馆管理软件
  6. CSS3-animation,表格表单的格式化
  7. 【BZOJ1677】[Usaco2005 Jan]Sumsets 求和 递推
  8. HDU 1890 区间反转
  9. Redis 内存使用优化与存储
  10. [转]MAC下JDK版本的切换
  11. Invoke()方法的使用
  12. 软件设计模式 B卷
  13. HDU-2077-汉诺塔IV
  14. Chef 自动化运维:Chef 的安装
  15. CentOS7配置php7.0支持redis
  16. 玩转Web之html+CSS(一)---论坛首页表格的实现
  17. django捡破烂
  18. [20190402]Library Cache mutex.txt
  19. 如何用ESP8266实现网页配置(web)
  20. 【SVN】SVN初识

热门文章

  1. User_Authentication_Personalization Model
  2. HTML中body相关标签-02
  3. P3817 小A的糖果(洛谷月赛)
  4. 《数据结构》C++代码 堆(优先队列)
  5. iphone 8 plus 红色特别版,突然自动关机无法启动
  6. canda 常用命令
  7. 关于windows10设置环境变量的问题
  8. HDU 4107 Gangster(线段树 特殊懒惰标记)
  9. 股神小D [点分治 or LCT]
  10. [codeforces] 97B Superset || 平面分治