前言:

众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据;另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动不起来了,为failover,有可能会丢失数据,并且切换后原primary 数据库也不再是该data guard 配置的一部分了。

本文先简单的介绍在正常情况下运行的系统切换测试;

整个dataguard的搭建,请参考实战ORACLE DataGuard不停机的配置,只要按照该文档操作,保证没有问题;

环境信息:

hostname

db_name

db_unique_name

role

dg2

orcl

orcldg2

PRIMARY

dg1

orcl

orcldg1

STANDBY

切换步骤:

一、主库的操作

1、主数据库的状态检查

脚本:SQL> select switchover_status from v$database;

说明:如果该列值为"TO STANDBY"则表示primary 数据库支持转换为standby 角色,否则的话你就需要重新检查一下Data Guard 配置,比如看看LOG_ARCHIVE_DEST_n 之类参数值是否正确有效等等。

2、首先将primary 转换为standby 的角色

脚本:SQL> alter database commit to switchover to physical standby;

说明:PRIMARY进行转换完毕后,查看状态会变成RECOVERY NEEDED;

3、重启动到mount --原primary 数据库操作

SQL> shutdown immediate

ORA-01507: 未装载数据库

ORACLE 例程已经关闭。

SQL> startup mount

ORACLE 例程已经启动

二、备库切换成主库的操作

完成以上操作后,变可以进行以下备库的操作

1、检查备库的状态

脚本:脚本:SQL> select switchover_status from v$database;

2、确认没有问题后,可以进行切换转换standby 到primary 角色

脚本:SQL> alter database commit to switchover to primary;

3、完成转换,打开新的primary 数据库

SQL> alter database open;

4、查看当前系统的状态

脚本:select name,open_mode,database_role,protection_mode,SWITCHOVER_STATUS  From v$database;

三、原主库切换成备库

当前的备库是mount状态了,运行以下语句

1、执行日志的运用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

2、取消日志的运用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

3、打开数据库

SQL> ALTER DATABASE OPEN;

4、在open状态下执行日志的即时运用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

四、测试

1、在dg1上面插入一个表test,并插入数值1

2、在dg2上面检查

大功告成了,数据马上传送到dg2了;

oracle dataguard主从切换的更多相关文章

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

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

  2. 实战dataguard主从切换

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

  3. oracle DataGuard 主从 踩过坑的

    一.主机描述 dbprimary: 192.168.1.57 主机名称db1    dbstandby: 192.168.1.58 主机名成db2    SID: orcl 二.配置tns,配置好的文 ...

  4. oracle dataguard 角色切换

  5. Oracle DataGuard主库丢失归档日志后备库的RMAN增量恢复一例

    第一部分  问题描述和环境状态确认 ----1. 问题场景 Oracle DataGuard主库丢失archivelog,如何不重建备库完成同步? 在Oracle DataGuard主从同步过程中可能 ...

  6. Oracle DataGuard主备切换(switchover)

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

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

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

  8. Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库

    (一)DG故障转移后切换为备库的方法 在DG执行故障转移之后,主库与从库的关系就被破坏了.这个时候如果要恢复主从关系,可以使用下面的3种方法: 将失败的主库重新搭建为备库,该方法比较耗时: 使用数据库 ...

  9. Oracle Dataguard之failover

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

随机推荐

  1. c# 封装Dapper操作类

    using Dapper; using DapperExtensions; using System.Collections.Generic; using System.Configuration; ...

  2. [android] 手机卫士手势滑动切换屏幕

    定义手势识别器 获取手势识别器GestureDetector对象,通过new GestureDetector(context,listener),参数:上下文,监听器 匿名内部类实现简单手势监听器Si ...

  3. Java学习笔记之——常用转义符号

    \ 单独用会报错 \\   打印右斜杠 \n   换行 \t   Tab键 \"   双引号 \'   单引号

  4. Nginx 500错误总结

    Nginx 500错误总结 500(服务器内部错误) 服务器遇到错误,无法完成请求. 501(尚未实施) 服务器不具备完成请求的功能.例如,当服务器无法识别请求方法时,服务器可能会返回此代码. 502 ...

  5. Java集合之HashMap源码分析

    以下源码均为jdk1.7 HashMap概述 HashMap是基于哈希表的Map接口的非同步实现. 提供所有可选的映射操作, 并允许使用null值和null健. 此类不保证映射的顺序. 需要注意的是: ...

  6. ubuntu安装docker以及基本用法

    ubuntu安装docker以及基本用法 一.安装 安装前先更新apt-get源到最新版本 apt-get update 使用ubuntu自带的docker安装包安装docker apt-get in ...

  7. PDF格式的“在线阅读”和“下载”

    产生背景: 一个需求,用户可在线阅读PDF,也可下载到本地.听需求来源说人家的网站上的可以做,问我们能做吗,需要这个功能,就要来了网址,看看页面. 问题:上传PDF文件后,发现访问地址在浏览器上打开, ...

  8. 【读书笔记】iOS-iPad与iPhone

    在开发通用型应用的时候,你总是需要记住,iPad并不是一个大大的iPod touch,为iPad开发的应用的界面应该更好地利用iPad的大屏幕,而不应该是iPhone应用的复制品. 参考资料:< ...

  9. TurboLinux系统管理习题一

    TurboLinux系统管理习题一 1. 使用vi编辑文本只读时,强制存盘并退出的命令是?(单选题)A :w!        B :q!       C   :wq!        D   :e!答案 ...

  10. 用animate改变了某个样式之后再用css控制会无效

    我前几天写了个移动端运动,(这个运动的代码我贴在这了:http://www.cnblogs.com/weiman/p/6600380.html)然后发现了这个问题,具体如下: 未运动前是这样的,菜单栏 ...