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--

[Oracle] DataGuard switchover的更多相关文章

  1. 4.1 ORACLE DATAGUARD SWITCHOVER 步骤

    验证主库是否能执行角色转换到备库 原主库执行 SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS --------- ...

  2. Oracle Dataguard之switchover

    Oracle Dataguard的角色转换包含两类:Switchover和Failover.Switchover指主备之间角色转换,主库降为备库,备库升级为主库.而failover则是指主库出现问题时 ...

  3. Oracle DataGuard主备切换(switchover)

    Oracle DataGuard主备切换可以使用传统的手动命令切换,也可以使用dgmgr切换,本文记录手动切换. (一)将主库切换为物理备库 STEP1:查看主库状态 SQL> SELECT O ...

  4. Oracle Dataguard之failover

    Oracle Dataguard中,角色转换包含两类:Switchover和Failover.上文<Oracle Dataguard之switchover>中,我们已经谈过了switcho ...

  5. Oracle Dataguard之物理standby的基本配置

    尽管网上有很多Oracle Dataguard的配置教程,但不难发现,很多采用的是rman duplicate这种方法,尽管此种方法较为简便.但在某种程度上,却也误导了初学者,虽说也能配置成功,但只知 ...

  6. Oracle dataguard 正常切换和应急切换

    oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接 ...

  7. oracle dataguard主从切换

    前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...

  8. Oracle dataguard failover 实战

    Oracle dataguard  failover 实战 操作步骤 备库: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINIS ...

  9. Oracle Dataguard故障转移(failover)操作

    注意:故障转移会破坏DG的主从关系,使其变为互不相关的2个数据库,谨慎使用. (一)故障转移操作流程图 (二)故障转移操作流程 备注:以下操作步骤与上面流程图步骤一一对应 STEP1:刷新所有未发送到 ...

随机推荐

  1. 零基础学css

    选择器:标签选择器.id选择器.类选择器 ---------------------------------------------------------------------------- 标签 ...

  2. Android 拍照或相册选择照片进行显示缩放位图 Demo

    拍照后直接使用 BitmapFactory.decodeStream(...) 进行创建 Bitmap 并显示是有问题的. Bitmap 是个简单对象,它只存储实际像素数据,也就是说,即使原始照片已压 ...

  3. Android 导出traces.txt 遇到的坑

    我一直以为traces.txt 导出需要root .因为每当我 cd data ll 然后就会告诉我 Permission denied 后来我问同事,怎么导出traces.txt 文件.同事说很简单 ...

  4. 写一个quick sort

    #include <stdio.h> #include <stdlib.h> //int a[]={1000,10000,9,10,30,20,50,23,90,100,10} ...

  5. Linux忘记root密码的解决办法

    这里以centos6为例: 第一步:先将系统重新启动,在读秒的时候按下任意键就会出现如下图的菜单界面: 第二步:按下『e』就能够进入grub的编辑模式,如图: 第三步:将光标移动到kernel那一行, ...

  6. 《移动App性能评测与优化》读书笔记

    第一章:内存   内存的主要组成索引: Native Heap:Native代码分配的内存,虚拟机和Android框架本身也会分配 Dalvik Heap:Java代码分配的对象 Dalvik Oth ...

  7. Java基础-7数组

    一).什么是数组: 数组是一组具有相同类型和名称的变量集合,把一系列相同类型的数据保存在一起,这些变量称为数组的元素:每个元素都有一个编号,这个编号叫做下标,下标从 0 开始:元素的个数被称为数组的长 ...

  8. 每个套接字地址error

    套接字问题 1 netstat -aon|findstr 5037   2 根据pid,查询占用端口的应用,这里的pid为 8672,查询命令如图 3 杀死对应的PID,taskkill /pid 8 ...

  9. redhat 安装python3

    一.首先,官网下载python3的所需版本. wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz 想下载到那个文件夹下就先进入到 ...

  10. python multiprocessing.Pool 中map、map_async、apply、apply_async的区别

    multiprocessing是python的多进程库,multiprocessing.dummy则是多线程的版本,使用都一样. 其中都有pool池的概念,进程池/线程池有共同的方法,其中方法对比如下 ...