模拟ADG主库归档文件丢失,备库出现gap(增量备份解决)

文章目录

  • 一、说明
  • 二、环境信息
    • 2.1.主备库环境信息
    • 2.2.检查主备是否同步正常
  • 三、模拟日志断档
    • 3.1.模拟主库归档文件丢失
    • 3.2 查看主库状态出现GAP
  • 四、RMAN增量备份恢复备库同步
    • 4.1 RMAN增量恢复备库
    • 4.2 开启备库redo同步
    • 4.3 主备库验证同步

一、说明

模拟Oracle主库归档文件丢失,备库出现gap,通过增量备份方式恢复备库。
(本文档模拟断档期间没有新增数据文件的情况,断档期间有新增数据文件的情况需要在备库在备库恢复控制文件并注册数据文件后再restore恢复新增数据文件然后再重新命名控制文件中的数据文件,再执行 RECOVER DATABASE NOREDO增量备份恢复备库)

二、环境信息

2.1.主备库环境信息

主机名IP数据库版本
主库p19c192.168.80.4019.3
备库p19cstd192.168.80.3919.3

2.2.检查主备是否同步正常

-- 创建测试表并插入数据 
CREATE TABLE zyy_test (  id INT PRIMARY KEY,  name VARCHAR2(50) NOT NULL  
);   
BEGIN  FOR i IN 1..30 LOOP  INSERT INTO zyy_test (id, name) VALUES (i, 'Name' || TO_CHAR(i));  END LOOP;  COMMIT;  
END;  
/
commit;
分别在主库备库查看
select count(*) from zyy_test;

主库查看:
在这里插入图片描述

备库查看:
在这里插入图片描述
主备同步正常。

三、模拟日志断档

3.1.模拟主库归档文件丢失

3.1.1 备库取消日志实时应用

alter database recover managed standby database cancel;
SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY;

在这里插入图片描述
备库mrp进程已关闭。
3.1.2在主库删除表数据并切换日志
DELETE FROM zyy_test WHERE id > 27;
commit;
select count(*) from zyy_test;
主库查看:
在这里插入图片描述
备库由于关闭了日志实时同步,表数据不会发生改变:
在这里插入图片描述
3.1.3 在主库切换日志查看当前日志编号

alter system switch logfile;
set linesize 200
select * from v$log;

在这里插入图片描述
由上图可以看到主库当前的日志编号是12。
3.1.4 在主库上再建一个表,查看主备日志

create table zyy_tables as select * from dba_tables;
commit;
select count(*) from zyy_tables;

在这里插入图片描述
主库切换日志再次查看

alter system switch logfile;
select * from v$log;

在这里插入图片描述
由上图可以看到主库当前的日志编号是13。
查看备库归档日志应用情况:

select sequence#,applied,archived,deleted from v$archived_log order by sequence#;

在这里插入图片描述
由于备库关闭了归档日志实时同步,所以11,12号归档日志已经传到备库但没有应用。

3.1.5 主备库删除13号归档日志

cd /u01/app/archive
ls
rm 1_13_1165425165.arc

主库:
在这里插入图片描述
备库:
在这里插入图片描述
3.1.6 对主库进行ddl,查看主备日志

alter database recover managed standby database using current logfile disconnect;

在这里插入图片描述
主库进行ddl操作,并切换日志后查看主备库日志应用情况:

delete from zyy_test where id>18;
alter system switch logfile;
delete from zyy_test where id>15;
alter system switch logfile;
delete from zyy_test where id>14;
alter system switch logfile;
delete from zyy_test where id>12;
alter system switch logfile;
commit;
set linesize 999
select * from v$log;

主库:
在这里插入图片描述

select sequence#,applied,archived,deleted from v$archived_log order by sequence#;

备库:
在这里插入图片描述
由于主备库12号日志被删除,导致备库12号及以后的日志都无法应用。

3.1.7 查看主备库测试表信息

select count(*) from zyy_test;
select count(*) from zyy_tables;

主库:
在这里插入图片描述
备库:
在这里插入图片描述
由于备库缺少12号日志,导致主备库测试表信息不一致。

3.2 查看主库状态出现GAP

select name,open_mode,database_role,switchover_status from v$database;

在这里插入图片描述

四、RMAN增量备份恢复备库同步

4.1 RMAN增量恢复备库

4.1.1 取消备库实时同步

alter database recover managed standby database cancel;

4.1.2 确认备库数据文件头最小的SCN

select current_scn from v$database;
select min(checkpoint_change#) from v$datafile_header;

在这里插入图片描述
4.1.3 在主库进行增量备份

rman target/
backup  incremental  from  scn  2259313  database  format  '/home/oracle/backup/ForStandby_%U'  tag 
'FORSTANDBY';

4.1.4 将主库的备份文件传到备库
scp -r /home/oracle/backup/* oracle@192.168.80.39:/home/oracle/backup/
在这里插入图片描述
备库查看:

在这里插入图片描述
4.1.5 在备库注册备份片

rman target/
catalog start with '/home/oracle/backup/ForStandby';

在这里插入图片描述
4.1.6 在备库执行恢复
备库数据库启动到mount状态
rman target/
shutdown immediate
startup mount
recover database noredo;
在这里插入图片描述
4.1.7 在主库生成新的standby控制文件

backup current controlfile for standby format '/home/oracle/backup/ForStandbyCTRL.bck';

在这里插入图片描述
查看备库文件:
在这里插入图片描述
4.1.8 将主库生成的新standby控制文件传到备库

scp /home/oracle/backup/ForStandbyCTRL.bck oracle@192.168.80.39:/home/oracle/backup/

在这里插入图片描述
备库查看:
在这里插入图片描述
4.1.9 备份备库数据文件
备份备库数据文件信息,用于之后恢复新的standby控制文件后进行对比

spool datafile_names_p19cbak.txt;
set lines 200;
col name format a60;
select file#, name from v$datafile order by file#;
spool off;

在这里插入图片描述
4.1.10 在备库恢复新的standby 控制文件

rman target/
shutdown immediate;
startup nomount;  
restore standby controlfile from '/home/oracle/backup/ForStandbyCTRL.bck';

4.1.11 在备库更新控制文件中的数据文件
(注:如果主备库具有相同的目录和名字,此步骤可以省略。我这里主库数据文件位置是’/u01/app/oracle/oradata/P9C/’,备库是’/u01/app/oracle/oradata/P9C/’,应该是需要此步骤的,但不知道为什么后面4.1.13查看重命名数据文件时会报错。)

shutdown
startup mount
catalog start with '/u01/app/oracle/oradata/P19CSTD';

在这里插入图片描述
4.1.12 查看主库有没有添加新文件

select file#, name from v$datafile where creation_change# >2259312;

在这里插入图片描述
4.1.13 查看重命名数据文件
备库:

switch database to copy;

在这里插入图片描述
4.1.14确认增量恢复后,主备库的SCN号没有太大差距
select current_scn from v$database;
主库:
在这里插入图片描述
备库:
在这里插入图片描述

4.2 开启备库redo同步

4.2.1清理备库standby 日志组

set linesize 999;
col DBID for a20;
select * from v$standby_log
alter database clear logfile group 6;
alter database clear logfile group 7;
alter database clear logfile group 8;
alter database clear logfile group 9;

备库:
在这里插入图片描述
4.2.2备库启动redo应用

alter database recover managed standby database disconnect;

主库查看日志:

set linesize 999
select * from v$log;

在这里插入图片描述
备库:

select sequence#,applied,archived,deleted from v$archived_log order by sequence#;

在这里插入图片描述
(这里正常应该查到apply日志16号)
4.2.3备库开启实时应用

alter database recover managed standby database cancel;
alter database open;
alter database recover managed standby database using current logfile disconnect;

在这里插入图片描述
(这里备库打开日志实时应用还是查不到日志编号,后面主库切换日志后可以查到)
4.2.4 主库切换日志,主备库查看日志编号
主库切换日志

alter system switch logfile;

在这里插入图片描述
主库查看日志:
在这里插入图片描述
备库查看日志编号:
在这里插入图片描述
可以看到备库应该应用到17号日志。

4.3 主备库验证同步

select count(*) from zyy_test;
select count(*) from zyy_tables;

主库:
在这里插入图片描述
备库:
在这里插入图片描述
主库进行ddl操作,验证主备库:
主库:
在这里插入图片描述
备库:
在这里插入图片描述
主备恢复同步。

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

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

相关文章

Git基本原理讲解、常见命令、Git版本回退、Git抛弃本地分支拉取仓库最新分支

借此机会写篇博客汇总一下自己去公司实习之后遇到的一些常见关于Git的操作。 Git基本认识 Git把数据看作是对小型文件系统的一组快照,每次提交更新,或在Git中保存项目状态时,Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时…

【C++】选择结构案例-三只小猪称体重

案例问题 假设有三只小猪A、B、C,在输入三者体重后希望能输出他们各自的体重并测出谁最重 思路 先让A与B相比较,如果A重,则让A和C相比较,如果A重则输出A最重,否则输出C最重 在最开始的条件(AB相比较&am…

浅谈Devops

1.什么是Devops DevopsDev(Development)Ops(Operation) DevOps(Development和Operations的混合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”…

通过限制访问,实现纯私有Docker镜像

怎么会不过审呢?没有敏感信息呀。 For obvious reasons,Many Docker image repositories are inaccessible,The official warehouse has also been filtered by the firewall,So write about how to build a self use Docker image using CloudFlares Workers and Pages. …

WPF MVVM使用遇见问题

一、遇见问题 1.使用Dictionary绑定ListBox的ItsSource问题 过程: 需要再界面动态显示字典,在循环中添加两条数据时,绑定的字典断点查看有两条,界面上只显示一条,后面再其他数量的都动态不显示,鼠标滚动后…

BUUCTF [安洵杯 2019]easy_serialize_php

这道题题目说easy但是对我来说极其不友好!看了很多wp讲的模棱两可,我尽量来说清楚点 代码解析: 这里$function $_GET[f],是我们通过get方式传递的,因为注释提示有东西先传fphpinfo看看 找到了一个东西,很…

IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验

研发项目往往包含很多复杂的流程和具体的细节。因此,一套完整且标准的研发项目管理制度和流程对项目的推进至关重要。研发项目管理是成功推动创新和技术发展的关键因素。然而在实际管理中,研发项目管理常常面临着需求不确定、技术风险、人员素质、成本和…

STM32-寄存器DMA配置指南

配置步骤 在STM32F0xx中文参考手册中的DMA部分在开头给出了配置步骤 每个通道都可以在外设寄存器固定地址和存储器地址之间执行 DMA 传输。DMA 传输的数据 量是可编程的,最大达到 65535。每次传输之后相应的计数寄存器都做一次递减操作,直到 计数为&am…

电脑屏幕录制软件,分享4款(2024最新)

在今天,我们的电脑屏幕成为了一个多彩多姿的窗口。通过它我们可以浏览网页、观看视频、处理文档、进行游戏……有时,我们想要记录下这些精彩瞬间,与朋友分享,或者作为教程留存,这时,电脑屏幕录制就显得尤为…

亚信安慧AntDB亮相PostgreSQL中国技术大会,获“数据库最佳应用奖”并分享数据库应用实践

7月12日,第13届PostgreSQL中国技术大会在杭州顺利举办,亚信安慧AntDB数据库荣获“数据库最佳应用奖”。大会上,亚信安慧AntDB数据库同事带来《基于AntDB的CRM系统全域数据库替换实践》和《亚信安慧AntDB数据库运维之路》两场精彩演讲&#xf…

【网络】网络编程套接字——UDP、TCP、UDP接口使用、TCP接口使用、UDP程序实例、TCP程序实例

文章目录 Linux网络1. UDP1.1 UDP接口使用1.1 UDP程序实例 2. TCP2.1 TCP接口使用2.2 TCP程序实例 Linux网络 1. UDP 在使用我们的UDP和TCP函数的时候,我们需要理解一些预备的知识: 源 IP 地址和目的 IP 地址: 在网络通信中,IP …

电脑软件:推荐一款非常好用的图片编辑软件——Photo Pos Pro

目录 一、软件简介 二、功能介绍 三、使用说明 四、软件特点 一、软件简介 Photo Pos Pro 4是一款非常实用的图像编辑软件,专为需要修图的用户量身打造而成。软件拥有简洁的用户界面,操作起来也比较简单,能够帮助用户轻松处理图片。软件具…

蚂蚁集团Android一面凉经(2024)

蚂蚁集团Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《蚂蚁集团Android一面凉经(2024)》。 面试职位: 蚂蚁集团-Android/iOS开发工程师-支…

MySQL练手 --- 1174. 即时食物配送 II

题目链接:1174. 即时食物配送 II 思路: 题目要求:即时订单在所有用户的首次订单中的比例。保留两位小数 其实也就是 即时订单 / 首次订单 所以,先求出首次订单,在首次订单的基础上寻找即时订单即可 解题过程&#x…

介绍下PolarDB

业务中用的是阿里云自研的PolarDB,分析下PolarDB的架构。 认识PolarDB 介绍 PolarDB是阿里云自研的,兼容MySQL、PostageSQL以及支持MPP的PolarDB-X的高可用、高扩展性的数据库。 架构 部署 云起实验室 - 阿里云开发者社区 - 阿里云 (aliyun.com) 数…

IDEA新建module后变为普通文件夹

问题描述&#xff1a; 在父项目中创建module并构建子父关系&#xff0c;但在创建module并配置后出现未生效问题 在父项目中的pom.xml文件中添加 <modules><module>***</module></modules>在新建Module中添加 <parent><groupId>com.***&l…

嵌入式中什么是三次握手

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c;点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 在网络数据传输中&#xf…

Qt自定义带前后缀图标的PushButton

写在前面 Qt提供QPushButton不满足带前后缀图标的需求&#xff0c;因此考虑自定义实现带前后缀图标的PushButton&#xff0c;方便后续快速使用。 效果如下&#xff1a; 同时可设置前后缀图标和文本之间间隙&#xff1a; 代码实现 通过前文介绍的Qt样式表底层实现 可以得…

【人工智能】AI绘画:科技与艺术交汇的新时代

文章目录 &#x1f34a;AI绘画:开启艺术创作新纪元AI绘画技术发展&#xff1a;算法与艺术的完美交融AI绘画的工作原理与创意生成AI绘画的应用 AI绘画工具介绍 &#x1f34a;AI绘画:开启艺术创作新纪元 人工智能正以前所未有的力量重塑我们的世界&#xff0c;而AI绘画作为这股科…

0725,进程间传递文件描述符,socketpair + sendmsg/recvmsg

我要碎掉了我要碎掉了我要碎掉了 上课喵&#xff1a; pipe匿名管道的问题 #include <func.h>int main() {int fds[2];pipe(fds);pid_t pidfork();if(pid>0){ //fatherclose(fds[0]);//close readint fdopen("file2.txt",O_RDONLY);printf("father: …