阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 物理standby的角色转换

457次阅读
没有评论

共计 3047 个字符,预计需要花费 8 分钟才能阅读完成。

一. Oracle DataGuard 简介

Oracle DataGuard;简称 DG。是由一个 Primary Database(主库)和一个或者多个 Standby Database(备库)组成。对 Oracle 来说;本身不能提高性能。通过数据冗余来保护数据。由 Primary Database 对外提供服务;用户操作在 Primary Database 上操作;其操作的数据库 Redo Log 或者 Archive log 通过网络传输到 Standby Database。Standby Database 在重做这些日志。从而实现 Primary Database 和 Standby Database 数据同步。

架构图如下:

Oracle 物理 standby 的角色转换

 

 

Oracle DataGuard 中的 Standby 库有两种:物理 Standby 和逻辑 Standby。

  • 逻辑 Standby 接收后将其转换成 SQL 语句,在 Standby 数据库上执行 SQL 语句实现同步,这种方式叫 SQL Apply。
  • 物理 Standby 接收完 Primary 数据库生成的 REDO 数据后,以介质恢复的方式实现同步,这种方式也叫 Redo Apply。

本例采用物理 Standby 架构;在 Oracle DataGuard 有两种角色:Primary 和 Standby

二、Oracle DataGuard 角色以及角色转换

2.1、Oracle DataGuard 两种角色

  • Primary 角色:对应的数据库为主库。对外可提供读写操作;以及一些维护数据库操作也是在主库上。
  • Standby 角色:对应的数据库为备库。对外只提供读操作。用于数据库的展示以及数据库备份。

2.2、角色转换

数据库对外提供高可用性;主库发生故障;备库可以提升为主库对外提供服务;不影响业务正常运行。这是需要做一个操作就是角色转换。

角色转换也有两种不同的操作类型:switchover 和 failover。前者是无损切换,不会丢失数据。后者有可能丢失数据。并且切换后原 Primary 数据库不再是该 DataGuard 一部分。其也有可能对外提供服务;在其他数据库称为“脑裂”。

2.2.1、switchover

是主数据库与其中一个 standby 数据库的转换,switchover 能确保没有数据丢失,这是在有计划的系统维护时的典型做法。

使用场景

  • 有计划的灾备切换演练,如测试灾备站点的可用性,客户端连接等,确保主库发生重大意外时,可以切换至备库正常运转。
  • 主库长时间的维护升级, 如 OS 升级,DB 滚动升级,更换存储,更换 OS 硬件设备等。
  • 切换有风险,一般不做切换。

2.2.2、failover

在主数据库不活动的时候,Failover 可将 Standby 数据库转换为主数据库角色,Failover 可能会导致数据出现丢失的情况。Failover 只在主数据发生失败的情况下才使用。

三、准备工作

  • 检查个数据库的初始化参数文件,主要确认各待转换角色的数据库,对不同角色的相关的初始化参数都进行正确的配置。
  • 检查即将成为 Primary 数据库的物理 Standby 服务器是否为归档模式
  • 检查物理 Standby 数据库的临时文件是否存在,并匹配 Primary 数据库的临时文件
  • 选择一个最合适的物理 Standby 转换为 Primary。如考察数据库的 IO/CPU/ 内存。确保转换后能提供服务。

四、操作步骤

3.1、执行 switchover

从原 Primary 数据库端开始操作;到新 Primary 数据库端的操作结束

3.1.1、primary 节点

查询 V$DATABASE 视图的 SWITCHOVER_STATUS 列。

  • 检查是否支持 switchover 操作
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
------------------------------------------------------------
TO STANDBY
  • 结果为 TO STANDBY;则表示 Primary 数据库支持转换为 Standby 角色。
  • 结果为 SESSIONS ACTIVE;说明当前有会话在连接 Primary 数据库。这种情况代表不能进行转换;需要关闭 oracle 所有的客户端连接。即需要提前通知开发人员终止客户端连接。也可以使用命令强制终止
ps -ef | grep oracleorcl | awk '{system("kill -9 "$2)}'
  • 启动 switchover

将 primary 数据库转换为 standby 角色

alter database commit to switchover to physical standby;
-- 可用来处理前一步有用户在连接的情况 
alter database commit to switchover to physical standby with session shutdown;

执行了该命令。原 primary 数据库将会转为 standby 数据库。

重启原 primary 数据库到 mount 状态

shutdown immediate;
startup mount;

3.1.2、standby 节点

查询 V$DATABASE 视图的 SWITCHOVER_STATUS 列。

  • 检查是否支持 switchover 操作
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
------------------------------------------------------------
TO PRIMARY
  • 结果为 TO PRIMARY;则表示 standby 数据库支持转换为 primary 角色。
  • 结果为 SESSIONS ACTIVE;说明当前有会话在连接原 standby 数据库
  • 结果为 SWITCHOVER PENDING;说明当前 standby 数据库没有启动 redo 应用。执行
alter database recover managed standby database using current logfile disconnect from session;
  • switchover
alter database commit to switchover to primary;

重启数据库

新备库在启动 redo 应用即可

alter database recover managed standby database using current logfile disconnect from session;

3.2、执行 failover

failover 操作;一般表示 primary 数据库瘫痪,最起码就是失败。相当于 primary 数据库服务器挂了。现在需要提升 standby 数据库来接管服务。在这个过程可能会存在丢失数据。所有建议 Primary 数据库还能使用。不要执行 failover。

3.2.1、检查归档日志是否连续

查询待转换 standby 数据库的 v$archive_gap 视图;确认归档文件是否连续

select thread#, low_sequence#, high_sequence# from v$archive_gap;

若有返回记录;通过命令加入数据字典

alter database register physical logfile 'filesepec1'

3.2.2、启动 failover

alter database recover managed standbyf database finish force;

3.2.3、转为 primary 节点

alter database commit to switchover to primary

3.2.4、重启数据库

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3047字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7804884
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...