Oracle主备切换,ogg恢复方法(集成模式)

前言:

        文章主要介绍Oracle数据库物理ADG主备在发生切换时(switchover,failover),在主库运行的ogg进程(集成模式)如何进行恢复。

        测试恢复场景,因为集成模式不能在备库配置,所以场景都是基于主库端:

        1 主备发生switchover切换,主库为ogg源端

        2 主备发生failover切换,主库为ogg源端

        3 主备发生switchover切换,主库为ogg目标端

        4 主备发生failover切换,主库为ogg目标端

测试环境:

OGG软件:19.1.0.0.4

       源端:

               extract :ext_text

               pump :pum_test

目标端:

        replicat:rep_test

恢复场景:

        1 主备发生switchover切换,主库为ogg源端

        发生主备switchover切换后,在主库的ogg源端extract进程会abend,出现错误ERROROGG-00662  OCI Error ORA-16456: switchover to standby in progress or completed

        恢复方式一:将ogg软件拷贝到新的主节点,继续在新主库使用集成模式进行抽取

--将安装目录打包拷贝到目标端
tar -cvf ogg.tar ogg/
scp -rp ogg.tar root@172.20.10.100:/u01/
--在目标端解压到相同路径下
tar xvf ogg.tar
--如果两边的数据库安装目录,实例名配置不一样,则修改配置文件里面的配置ORACLE_HOME,ORACLE_SID
--如果OGG的安装目录不一样,即dirdat的存放路径发生变化则需要修改extract,datapump的exttrail文件路径
extract进程
--修改extract,pump配置文件里面的exttrail路径配置
--修改extract进程的exttrail文件路径
GGSCI> delete EXTTRAIL /u01/ogg/dirdat/eo
GGSCI> ADD EXTTRAIL /ogg/ogg/dirdat/eo, EXTRACT EXT_TEST
pump进程
--对于pump进程,需要重新创建投递进程并分配新trail的路径
--保留当前读取的exttrail位置
info pum_test detail
--重新创建pump进程,分配新trail的路径
GGSCI> delete PUM_TEST
GGSCI> add extract PUM_TEST, exttrailsource /ogg/ogg/dirdat/eo
GGSCI> add rmttrail /u01/ogg/dirdat/ro,extract PUM_TEST,MEGABYTES 1000
--如果exttrail没有保留全部的exttrail日志,即不是从0开始的,那么需要指定读取的序列
GGSCI> alter PUM_TEST,EXTSEQNO 12
--启动进程
GGSCI> start mgr 
GGSCI> start pum_test
GGSCI> start EXT_TEST

        恢复方式二:降级为经典模式,直接在备库抽取,如果还是想在原服务器上进行抽取,由于集成模式无法在备库上进行,所以需要将抽取模式从集成模式降级为经典模式,需要注意的是降级为经典模式会导致无法支持压缩表同步,XA事务,多线程模式,PDB模式同步,特殊字段类型等功能,此外,配置文件也需要修改为支持备库抽取的经典模式配置

--关闭extract 进程
GGSCI> STOP EXT_TEST
--确认当前进程是否可以进行downgrade,需要确保在downgrade之前的事务已经写入队列文件
GGSCI> DBLOGIN userid ogg, password "go_20230_W506"
GGSCI> INFO EXT_TEST DOWNGRADE
Extract EXT_TEST is ready to be downgraded from integrated capture. Archive logs corresponding to SCN 8145010 and higher must be accessible by the downgraded extract.
​
--降级extract进程,
GGSCI>  alter EXT_TEST downgrade tranlog threads 2
​
Extract EXT_TEST successfully downgraded from integrated capture.
​
--删除集成复制的参数,添加经典复制参数tranlogoptions已经DG复制参数MINEFROMACTIVEDG,
--开启extract进程
GGSCI> START EXT_TEST
--可能会遇到主备角色转化的报错,需要调整scn为报错指定的scn
2023-11-11 17:27:12  ERROR   OGG-02803  Encountered a Data Guard role transition. Alter Extract to SCN 9,990,952 and restart Extract, or recreate Extract with the correct number of threads at SCN 9,990,952.
--调整scn,再重启抽取ext_test进程
GGSCI> alter extract EXT_TEST scn 9990952
GGSCI> start EXT_TEST

        2 主备发生failover切换,主库为ogg源端

        主备发生failover切换,通常是由于主库已经出现了极端的破坏,比如存储损坏,服务器损坏,导致主库已经无法正常启动,这时候的ogg只能在failover之后的主库上进行抽取

        恢复方式一:如果主库的ogg软件还保留,可以直接将主库的ogg软件直接拷贝到failover之后的主库

--将安装目录打包拷贝到目标端
tar -cvf ogg.tar ogg/
scp -rp ogg.tar root@172.20.10.100:/u01/
--在目标端解压到相同路径下
tar xvf ogg.tar
--如果两边的数据库安装目录,实例名配置不一样,则修改配置文件里面的配置ORACLE_HOME,ORACLE_SID
--如果OGG的安装目录不一样,即dirdat的存放路径发生变化则需要修改extract,datapump的exttrail文件路径
extract进程
--修改extract,pump配置文件里面的exttrail路径配置
--修改extract进程的exttrail文件路径
GGSCI> delete EXTTRAIL /u01/ogg/dirdat/eo
GGSCI> ADD EXTTRAIL /ogg/ogg/dirdat/eo, EXTRACT EXT_TEST
pump进程
--对于pump进程,需要重新创建投递进程并分配新trail的路径
--保留当前读取的exttrail位置
info pum_test detail
--重新创建pump进程,分配新trail的路径
GGSCI> delete PUM_TEST
GGSCI> add extract PUM_TEST, exttrailsource /ogg/ogg/dirdat/eo
GGSCI> add rmttrail /u01/ogg/dirdat/ro,extract PUM_TEST,MEGABYTES 1000
--如果exttrail没有保留全部的exttrail日志,即不是从0开始的,那么需要指定读取的序列
GGSCI> alter PUM_TEST,EXTSEQNO 12
--启动进程
GGSCI> start mgr 
GGSCI> start pum_test
GGSCI> start EXT_TEST

        恢复方式二:安装新的ogg目录,重建extract,pump进程

--查看备库切换为主库的scn点STANDBY_BECAME_PRIMARY_SCN
SQL> select STANDBY_BECAME_PRIMARY_SCNfrom gv$database;
​
STANDBY_BECAME_PRIMARY_SCN
--------------------------9846471
​
--安装ogg软件
--配置mgr,extract,pump的配置文件
--因为之前在旧主库已经注册过,所以不用重新注册
--重新添加extract
GGSCI> dblogin userid ogg, password "go_20230_W506"
--添加extract进程,指定scn为STANDBY_BECAME_PRIMARY_SCN
GGSCI> add extract EXT_TEST INTEGRATED tranlog, SCN 9846471
GGSCI> add exttrail /ogg/ogg/dirdat/eo,extract EXT_TEST,megabytes 1000
--重新添加pump
GGSCI> add extract PUM_TEST, exttrailsource /ogg/ogg/dirdat/eo
GGSCI> add rmttrail /u01/ogg/dirdat/ro,extract PUM_TEST,MEGABYTES 1000
--启动extract,pump进程
--目标端replicat不用修改,rmtrail队列文件会自动往下产生

3 主备发生switchover切换,主库为ogg目标端

        主备switchover切换之后,应用进程replicat会出现报错2023-11-18 12:34:53  ERROR  OGG-00664  OCI Error ORA (status = 16000-ORA-16000: database open for read-only access

 

a74f2c62d7ae8a52856df928125a0666.png

 

        由于ogg的目标端应用进程需要写入数据,所以不能在物理DG上运行

        恢复方式:将ogg拷贝到新主库进行应用

--目录拷贝之前,记得要将源端的pump进程stop,确保应用端的trial日志没有再写入,再进行拷贝
--关闭源端pump进程
GGSCI > stop pum_test
--将安装目录打包拷贝到目标端
tar -cvf ogg.tar ogg/
scp -rp ogg.tar root@172.20.10.100:/ogg/
--在目标端解压到相同路径下
tar xvf ogg.tar
--如果两边的数据库安装目录,实例名配置不一样,则修改配置文件里面的配置ORACLE_HOME,ORACLE_SID
--如果ogg的安装路径目录不一致,要修改应用进程replicat的trial路径
--先记录replicat进程的trail rba
GGSCI > info rep_test
​
REPLICAT   REP_TEST  Last Started 2023-11-18 12:34   Status ABENDED
INTEGRATED
Checkpoint Lag       00:00:00 (updated 00:06:50 ago)
Log Read Checkpoint  File /u01/ogg/dirdat/ro0000000002023-11-18 12:23:08.438950  RBA 1714762
--再修改replicat的trial
GGSCI > alter replicat rep_test,exttrail /ogg/ogg/dirdat/ro
GGSCI > alter replicat rep_test EXTSEQNO 0, EXTRBA 1714762
--如果新环境的目录不一致,源端pump进程需要修改配置文件里面的队列文件路径
rmttrail /ogg/ogg/dirdat/ro 
--如果新环境的目录不一致,源端pump进程需要重新添加rmttrail为新路径
GGSCI > delete RMTTRAIL /u01/ogg/dirdat/ro, EXTRACT PUM_TEST
GGSCI > ADD RMTTRAIL /ogg/ogg/dirdat/ro, EXTRACT PUM_TEST
--修改源端pump进程配置文件目标IP为新环境IP
rmthost 172.20.10.100, mgrport 7810
--启动源端pump进程
GGSCI > stat pum_test
--启动目标端replicat进程
GGSCI > start rep_test

4 主备发生failover切换,主库为ogg目标端

        主备发生failover切换,通常是由于主库已经出现了极端的破坏,比如存储损坏,服务器损坏,导致主库已经无法正常启动,这时候的ogg只能在failover之后的主库上进行应用

        恢复方式一:将ogg拷贝到新主库进行应用

--目录拷贝之前,记得要将源端的pump进程stop,确保应用端的trial日志没有再写入,再进行拷贝
--关闭源端pump进程
GGSCI > stop pum_test
--将安装目录打包拷贝到目标端
tar -cvf ogg.tar ogg/
scp -rp ogg.tar root@172.20.10.100:/ogg/
--在目标端解压到相同路径下
tar xvf ogg.tar
--如果两边的数据库安装目录,实例名配置不一样,则修改配置文件里面的配置ORACLE_HOME,ORACLE_SID
--如果ogg的安装路径目录不一致,要修改应用进程replicat的trial路径
--先记录replicat进程的trail rba
GGSCI > info rep_test
​
REPLICAT   REP_TEST  Last Started 2023-11-18 13:54   Status ABENDED
INTEGRATED
Checkpoint Lag       00:00:00 (updated 00:07:32 ago)
Log Read Checkpoint  File /u01/ogg/dirdat/ro0000000002023-11-18 13:55:46.451953  RBA 1713453
--再修改replicat的trial
GGSCI > alter replicat rep_test,exttrail /ogg/ogg/dirdat/ro
GGSCI > alter replicat rep_test EXTSEQNO 0, EXTRBA 1713453
--如果新环境的目录不一致,源端pump进程需要修改配置文件里面的队列文件路径
rmttrail /ogg/ogg/dirdat/ro 
--如果新环境的目录不一致,源端pump进程需要重新添加rmttrail为新路径
GGSCI > delete RMTTRAIL /u01/ogg/dirdat/ro, EXTRACT PUM_TEST
GGSCI > ADD RMTTRAIL /ogg/ogg/dirdat/ro, EXTRACT PUM_TEST
--修改源端pump进程配置文件目标IP为新环境IP
rmthost 172.20.10.100, mgrport 7810
--启动源端pump进程
GGSCI > stat pum_test
--启动目标端replicat进程
GGSCI > start rep_test

         恢复方式二:安装一个新的OGG软件,重新配置replicat进程

--安装ogg软件
--配置replicat的配置文件
--重新添加replicat
GGSCI > dblogin userid ogg, password "go_20230_W506"
GGSCI > add replicat rep_test INTEGRATED exttrail ./dirdat/ro
--关闭源端投递进程pum_test
GGSCI > stop pum_test
--修改源端pump进程的目标IP为新环境IP
rmthost 172.20.10.100, mgrport 7810
--如果新环境的目录不一致,则修改配置文件
rmttrail /ogg/ogg/dirdat/ro 
--重新添加rmttrail
GGSCI > delete RMTTRAIL /u01/ogg/dirdat/ro, EXTRACT PUM_TEST
GGSCI > ADD RMTTRAIL /ogg/ogg/dirdat/ro, EXTRACT PUM_TEST
--修改源端pump进程读取exttrail位点,读取的日志要在切换之前,这样数据才不会丢失
GGSCI > ALTER EXTRACT pum_test, EXTSEQNO 0, EXTRBA 0
--启动pum_test
GGSCI > start pum_test
--启动目标端replicat进程
GGSCI > start rep_test
--如果存在数据冲突,可以添加数据冲突检查参数,但要确保表有主键或者唯一键
HANDLECOLLISIONS

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/197652.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE(一)

1.vue简介 英文官网: Vue.js - The Progressive JavaScript Framework | Vue.js 中文官网: Vue.js - 渐进式 JavaScript 框架 | Vue.js 2.Vue的特点 3.初识VUE 在官网下载VUE.js,有两个版本&#xff0c;一个开发一个生产 <!DOCTYPE html> <html lang"en"…

贝锐蒲公英云AP,企业WiFi功能如何使用?

1. 功能介绍 基于WPA2-EAP安全认证技术&#xff0c;为企业提供了一套易用安全的企业无线网络,实现企业员工通过蒲公英客户端一键连接企业无线WiFi。自动分配一人一帐一密&#xff0c;无需配置证书或手动输入密码&#xff0c;减少沟通成本&#xff0c;方便快捷&#xff0c;提高…

前置语音群呼与语音机器人群呼哪个更好

最近通过观察自己接到的营销电话&#xff0c;通过语音机器人外呼的量应该有所下降。同时和客户交流获取到的信息&#xff0c;也是和这个情况类似&#xff0c;很多AI机器人群呼的量转向了OKCC前置语音群呼。询问原因&#xff0c;说是前置语音群呼转化更快&#xff0c;AI机器人群…

Android修行手册-POI操作中文API文档

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

pm2在Windows环境中的使用

pm2 进程管理工具可以Windows操作系统上运行&#xff0c;当一台Windows电脑上需要运行多个进程时&#xff0c;或者运维时需要运行多个进程以提供服务时。可以使用pm2&#xff0c;而不再是使用脚本。 1. 使用PM2管理进程 1.1. 启动PM2项目 1.1.1. 直接启动项目 参数说明&…

PostgreSQL 数据定义语言 DDL

文章目录 表创建主键约束非空唯一约束检查约束外键约束默认值约束 触发器表空间构建表空间 视图索引索引的基本概念索引的分类创建索引 物化视图 表创建 PostgreSQL表的构建语句与所有数据库都一样&#xff0c;结构如下&#xff0c;其核心在于构建表时&#xff0c;要指定上一些…

ACWSpring1.3

首先,前端写ajax写上我们的访问路径(就在我们前端的源代码里面),我们建了两个包pkController用于前端页面url映射过来一层一层找到我们的RestController返回bot1里面有键值,返回的这就是一个session对象bot1这个map.前端拿到我们bot1里的两个值给到我们前端显示出来 1准备页面:…

Linux:补充一些常用命令

Linux&#xff1a;补充一些常用命令 1. free -h2. df -lh3. du -sh *4. uname -a5. which6. mvn install 编译打包7. find -name *.jar8. cd -9. nohup java -jar *.jar &10. ps -ef|grep java11. netstat -ntlp 1. free -h free 命令显示系统使用和空闲的内存情况&#x…

Flutter笔记:缩放手势

Flutter笔记 缩放手势 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134485138 目 录 1. 概述2. 缩放手…

Java多线程核心技术第一阶段-Java多线程基础 02

接上篇&#xff1a;Java多线程核心技术第一阶段-Java多线程基础 01 3.3 清除中断状态的使用场景 this.interrupted()方法具有清除状态标志值的功能&#xff0c;借用此特性可以实现一些效果。 【示例3.3.1】在MyThread4线程中向list1和list2存放数据&#xff0c;基于单一职责原…

docker-compose 部署 MySQL 8

目录 前言MySQL 配置文件(my.cnf)docker-compose.yml安装卸载 前言 Windows/Linux 系统通过 docker-compose 部署 MySQL8.0。 MySQL 配置文件(my.cnf) # 服务端参数配置 [mysqld] usermysql # MySQL启动用户 default-storage-engineINNODB # 创建新表时…

【脑与认知科学】【n-back游戏】

请参考课堂内容&#xff0c;设计一种测试工作记忆的实验方法&#xff0c;并选择三位同学作为被试测试工作记忆。请画出实验流程图&#xff0c;叙述实验测试目标&#xff0c;并分析实验结果。 举例&#xff1a;一般我们选择n_back来测试对数字或字母的记忆&#xff0c;选择色块实…

springboot实现在线人数统计

在线人数统计 笔者做了一个网站&#xff0c;需要统计在线人数。 在线有两种&#xff1a; 一、如果是后台系统如果登录算在线&#xff0c;退出的时候或者cookie、token失效的时候就算下线 二、如果是网站前台&#xff0c;访问的时候就算在线 今天我们来讲一下第2种情况&…

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(九)

UNION ALL UNION ALL 用于合并两个或多个 SELECT 语句的结果。 请注意&#xff0c;UNION ALL 合并的每个 SELECT 语句必须是查询相同数量&#xff0c;相同数据类型的字段&#xff0c;且顺序也必须一致。另外结果集中的列名总是等于 UNION ALL 中第一个 SELECT 语句中的列名。 …

数据结构与算法-图

图 &#x1f388;2.图的存储结构&#x1f4d6;2.4.2邻接表的存储✅2.4.2.1逆邻接表✅2.4.2.2邻接表存储结构的定义✅2.4.2.3邻接表存储结构的类定义✅2.4.2.4创建n个顶点m条边的无向网✅2.4.2.5创建n个顶点m条边的有向网✅2.4.2.6定位操作-查找定点信息在顶点数组中的下标✅2.4…

3GPP协议解读(一)_23.501_23.502_PDU Session_SMF与UDP的交互

UE发起计算服务申请后&#xff0c;网络侧处理的流程 UE发起服务的流程&#xff1a;service request网络侧处理服务涉及的通信数据通过PDU Session进行传输&#xff0c;涉及到SMF与UPF的交互。PDU Session的建立、管理全部由SMF&#xff08;Session Management Function&#x…

【uniapp】 video视频层级、遮挡其他弹窗或顶部导航 使用nvue覆盖

uniapp 顶部导航和弹窗被video遮挡解决办法 第一步&#xff1a;配置 subNVues {"path": "pages/index/index","style": {"navigationBarTitleText": "uni-app","navigationStyle": "custom","app-…

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(八)

FULL OUTER JOIN 除了前面讲到的 INNER JOIN&#xff08;内连接&#xff09;、LEFT JOIN&#xff08;左连接&#xff09;、RIGHT JOIN&#xff08;右连接&#xff09;&#xff0c;还有另外一种关联方式&#xff0c;即 FULL OUTER JOIN&#xff08;全外连接&#xff09; FULL O…

Javaweb之Vue指令案例的详细解析

2.3.5 案例 需求&#xff1a; 如上图所示&#xff0c;我们提供好了数据模型&#xff0c;users是数组集合&#xff0c;提供了多个用户信息。然后我们需要将数据以表格的形式&#xff0c;展示到页面上&#xff0c;其中&#xff0c;性别需要转换成中文男女&#xff0c;等级需要…

java游戏制作-拼图游戏

一.制作主界面 首先创建一个Java项目命名为puzzlegame。 再在src中创建一个包&#xff0c;用来制作主界面 代码&#xff1a; 结果&#xff1a; 二.设置界面 代码&#xff1a; 三.初始化界面 代码&#xff1a; 优化代码&#xff1a; 结果&#xff1a; 四.添加图片 先在Java项…