理论知识:
Switchover 切换允许primary 和一个备库进行切换,并且这种切换没有数据丢失。

前提条件:

1) 主备库相关参数 fal_client、fal_server 、standby_file_management 、 db_file_name_convert 、
log_file_name_convert 都已经配置。 standby logfile 日志组已创建。
(验证主备库的配置信息,包括初始化参数,归档模式,standby redo logs 和online redo log。 )

2)在主库查询V$ARCHIVE_DEST_STATUS 视图,验证备库没有redo 传输错误 或者redo gap。
SQL> SELECT STATUS, GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP
只有这里状态是VALID 和NOGAP的情况下,才可以进行角色切换操作。

3) 确保主备库Temp 表空间一致。

4) 移除standby 上任何delay apply redo 的设置。

5) 如果是将RAC 主库切换到物理备库,RAC 主库只能保留一个节点,其他节点要关闭,在switchover 完成以后在启动关闭的节点即可。

6) 如果备库是real-time apply 的物理standby,并且是read only 模式,在切换之前,建议先将备库启动到mount状态,而不是open状态,这样可以实现最快速的角色切换,而不需要在切换之前清除用户的session连接。

7)如果有多个standby,在Role Transition 时如何选择 。 考虑位置,性能,数据库类型

主库参数检查:
SQL> show parameter fal_client
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_client string devdb1
SQL> show parameter fal_server
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_server string phydb
SQL> show parameter standby_file_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string MANUAL
SQL> show parameter db_file_name_convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string +DATA/phydb/, +DATA/devdb/
SQL> show parameter log_file_name_convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_file_name_convert string +DATA/phydb/, +DATA/devdb/
SQL> select group# from v$standby_log;
GROUP#
----------
4
5
6
7

备库参数检查:
SQL> show parameter fal_client
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_client string phydb
SQL> show parameter fal_server
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_server string devdb1
SQL> show parameter standby_file_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string AUTO
SQL> show parameter db_file_name_convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string +DATA/devdb/, +DATA/phydb/
SQL> show parameter log_file_name_convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_file_name_convert string +DATA/devdb/, +DATA/phydb/
SQL> select group# from v$standby_log;
GROUP#
----------
4
5
6
7

特别提醒: 作者环境为一个节点的rac+单节点dg 。 不同于两个节点的rac+dg,操作上有细微区别。如两个节点的rac,一个节点需shutdown,一个节点操作。

切换模式 :一个节点的rac主库切换备库,单节点备库切换成主库 。

1. 将主库切换成standby role:
SQL> alter database commit to switchover to physical standby with session shutdown;
Database altered.

2. 将原备库切换成主库 , 并 open 。
SQL> alter database commit to switchover to primary with session shutdown;
Database altered.

SQL> ALTER DATABASE OPEN;
Database altered.

3. 原主库并启动到open状态,启动 mgr 进程。
SQL> startup;
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2257880 bytes
Variable Size 603982888 bytes
Database Buffers 230686720 bytes
Redo Buffers 2355200 bytes
Database mounted.
Database opened.

SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.

4. 验证
SQL> SELECT DEST_ID, STATUS,APPLIED_SCN FROM V$ARCHIVE_DEST WHERE TARGET='STANDBY';
DEST_ID STATUS APPLIED_SCN
---------- --------- -----------
2 VALID 0

切换模式: 单节点主库切换成备库,一个节点rac备库切换成主库。

1. 确认主库,新主库切换成备库
SQL> select name,database_role,switchover_status from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- ---------------- --------------------
DEVDB PRIMARY TO STANDBY
SQL> alter database commit to switchover to physical standby with session shutdown;
Database altered.
2. 新备库切换成主库 , 并 open 。
SQL> alter database commit to switchover to primary with session shutdown;
Database altered.

SQL> alter database open;
Database altered.

3. 现备库open ,并启动 mgr 进程。
SQL> startup;
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2257880 bytes
Variable Size 603982888 bytes
Database Buffers 230686720 bytes
Redo Buffers 2355200 bytes
Database mounted.
Database opened.
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.

4. 主库执行检查
SQL> SELECT DEST_ID, STATUS,APPLIED_SCN FROM V$ARCHIVE_DEST WHERE TARGET='STANDBY';
DEST_ID STATUS APPLIED_SCN
---------- --------- -----------
2 VALID 1879072

主备角色switch的更多相关文章

  1. Keepalived 无法自动转换主备角色,请关注 iptables 防火墙配置

    最近在研究服务器高可用集群 (HA)…… 搭建了主备两台Keepalived,配置什么的全是网上照抄的,被验证过无数遍的示例…… 然而Master和Backup无法自动切换.两边会同时绑定浮动IP(V ...

  2. GoldenGate 传统抽取进程随 DataGuard 主备快速切换的方案(ADG 模式)

    环境描述: 1.节点描述 节点 IP 节点描述 11.6.76.221 GG 抽取端 / DG 节点,数据库版本号为 Oracle-11.2.0.3,与 11.6.76.222 组成 DataGuar ...

  3. 24 mysql怎么保证主备一致

    Mysql主备的基本原理 在状态1中,客户端直接访问节点A,而节点B只是备库,只是将A的binlog全部同步过来并应用到本地,这样可以保持节点B和节点A的数据是相同的. 当需要切换的时候,就变成状态2 ...

  4. pgsql主备搭建及切换

    二.主从搭建 2.1测试目标 测试postgresql主从搭建安装过程 2.2环境准备 实例级别的复制 流复制主库可读写,但从库只允许查询不允许写人, 而逻辑复制的从库可读写 流复制实验环境 主机 主 ...

  5. OceanBase中主备Rootserver如何管理切换

    主RootServer会不断给备RootServer发送lease.被RootServer收到该lease后会保存到几个变量中: int ObCheckRunnable::renew_lease(co ...

  6. Oracle Dataguard HA (主备,灾备)方案部署调试

    包括: centos6.5 oracle11gR2 DataGuard安装 dataGuard 主备switchover角色切换 数据同步测试 <一,>DG数据库数据同步测试1,正常启动主 ...

  7. 搭建实时同步data guard的最高可用-切换主备

    搭建实时同步data guard的最高可用-切换主备 首先保证主库在归档模式下:错过N次了 准备二台机器(hostname gw hosts ech0)host-only [root@node1 ~] ...

  8. [terry笔记]11gR2_dataguard_主备库切换

    主备库切换  Switchover  一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GU ...

  9. Oracle 12C 物理Standby 主备切换switchover

    Oracle 12C 物理Standby 主备切换switchover Oracle 12C 物理Standby 主备切换switchover Table of Contents 1. 简述 2. 切 ...

随机推荐

  1. html5 cocos2d js Access-Control-Allow-Origin

    1.No 'Access-Control-Allow-Origin' header is present on the requested 近期在接html5的渠道,遇到了跨域的问题,使用 js 的 ...

  2. conda清华源 pip 清华源ubuntu 清华镜像 R代理以及包的安装

    vim     ~/.condarc channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/ - https:// ...

  3. linux查看磁盘挂载的三种方法

    第一种方法:使用df命令,例如: orientalson:/home # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda ...

  4. ios -- 延迟3秒触发performSelector

    [self performSelector:@selector(changeText:) withObject:@"Happy aha" afterDelay:3];

  5. LanguageImage尺寸

    iPhone Portrait iOS 8-Retina HD 5.5 (1242×2208) @3xiPhone Portrait iOS 8-Retina HD 4.7 (750×1334) @2 ...

  6. RedHat7 防火墙设置以及端口设置

    1.查看防火墙状态,root用户登录,执行命令systemctl status firewalld 2.开启防火墙:systemctl start firewalld 3.关闭防火墙:systemct ...

  7. Times[2017-01-25at JiNan]

    Times[问题描述 ]小 y 作为一名资深的 dotaer,对视野的控制有着深刻的研究.每个单位在一段特定的时间内会出现在小 y 的视野内,除此之外的时间都在小 y 看不到的地方.在小 y 看来,视 ...

  8. springcloud与docker微服务架构实战--笔记

    看了<微服务那些事>之后,Spring boot和Spring Cloud的关系理清楚了,Spring cloud各个模块的作用也了解了. 但是,Spring cloud 与Docker的 ...

  9. python知识点导图(搜集)

    第一章 基本环境 第二章 内置类型 第三章 表达式 第四章 函数 第五章 迭代器 第六章 模块 第七章 类 第八章 异常 第九章 装饰器 第十章 描述符 第十一章 元类 第十二章 标准库 Re模块 附 ...

  10. 九度OJ 1158:买房子 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1801 解决:1096 题目描述: 某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每 ...