ORACLE DATAGUARD遇到GAP增量恢复方式修复RAC环境备机的实践

ORACLE DATAGUARD技术是一个常用的数据保护机制,在DATAGUARD运行过程中,遇到异常导致备机不同步,而主库的归档日志也被清理,此时出现GAP,无法同步;就需要人工处理;对于小型数据库重新全量同步数据即可,但是对于大型数据库,通常建议是增量方式恢复,减少时间精力、网络、磁盘等资源的消耗,如下为一个RAC环境的备机增量恢复的过程:

1.查询备库SCN号及主备库数据文件信息
备库操作,备库取消归档应用,查询最小SCN号
SQL> select min(checkpoint_change#) from v$datafile_header
where file# not in (select file# from v$datafile where enabled = 'READ ONLY');
MIN(F.FHSCN)
----------------
75039049863

生产

SQL> select to_char(current_scn) from v$database;

SQL> select min(fhscn) from x$kcvfh;

SQL> select min(f.fhscn) from x$kcvfh f,v$datafile d where f.hxfil=d.file# and d.enabled!='READ ONLY';


备库----------------------------------------------

SQL> select to_char(current_scn) from v$database;

SQL>  select min(fhscn) from x$kcvfh;

SQL> select min(f.fhscn) from x$kcvfh f,v$datafile d where f.hxfil=d.file# and d.enabled!='READ ONLY';


查完后查看最小值


查询主备库数据文件个数是否一致并记录备库数据文件路径
select file#, name from v$datafile order by file# ;

2. 主库做RMAN的增量备份,scn号为查询出来的备库最小scn号
[oracle@his01 rmanbak]$ cat rman.sh 
#!/bin/bash

# BACKUP_PATH=/backup/rman_backup/

# mkdir $BACKUP_PATH

source /home/oracle/.bash_profile


rman target / << EOF

run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup as compressed backupset datafile 60,61 format '/home/oracle/zlback/datafile_%U.bak' tag 'datafile';------若主库比备库多两个数据文件,执行这条命令。
BACKUP as compressed INCREMENTAL FROM SCN 75039049863 DATABASE FORMAT '/backup/hisbak/rmanbak/ForStandby_%U' tag 'FORSTANDBY';-----as compressed 为压缩参数
release channel d1;
release channel d2;
}


3.将备份好的备份集scp到备库
[oracle@his01 rmanbak]$ scp ForStandby_i* 192.168.10.35:/rmanbak/


4.备库注册备份集
RMAN> catalog start with '/rmanbak/';

using target database control file instead of recovery catalog
searching for all files that match the pattern /rmanbak/

List of Files Unknown to the Database
=====================================
File Name: /rmanbak/ForStandby_ic3kr2p0_38476_1_1
File Name: /rmanbak/ForStandby_ib3kr1ok_38475_1_1
File Name: /rmanbak/ForStandby_ia3kr1ok_38474_1_1

Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /rmanbak/ForStandby_ic3kr2p0_38476_1_1
File Name: /rmanbak/ForStandby_ib3kr1ok_38475_1_1
File Name: /rmanbak/ForStandby_ia3kr1ok_38474_1_1

5.使用增量备份集恢复备库
RMAN> recover database noredo;

Starting recover at 20-MAR-2025 20:14:28
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=304 instance=hisdb1 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=908 instance=hisdb1 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=2570 instance=hisdb1 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=3174 instance=hisdb1 device type=DISK
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: +DATADG/hisdb/datafile/system01.dbf
destination for restore of datafile 00002: +DATADG/hisdb/datafile/sysaux01.dbf
……
destination for restore of datafile 00074: +DATADG/hisdb/datafile/portal_his.366.1186787373
destination for restore of datafile 00077: +DATADG/hisdb/datafile/portal_his.369.1186787431
destination for restore of datafile 00080: +DATADG/hisdb/datafile/undotbs2.396.1195663885
channel ORA_DISK_1: reading from backup piece /rmanbak/ForStandby_ia3kr1ok_38474_1_1
channel ORA_DISK_2: starting incremental datafile backup set restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
destination for restore of datafile 00008: +DATADG/hisdb/datafile/sysaux04.dbf
destination for restore of datafile 00009: +DATADG/hisdb/datafile/portal01.dbf
destination for restore of datafile 00013: +DATADG/hisdb/datafile/portal_his04.dbf
destination for restore of datafile 00015: +DATADG/hisdb/datafile/portal_his06.dbf
destination for restore of datafile 00017: +DATADG/hisdb/datafile/portal_his08.dbf
destination for restore of datafile 00019: +DATADG/hisdb/datafile/portal_his11.dbf
destination for restore of datafile 00021: +DATADG/hisdb/datafile/portal_his13.dbf
destination for restore of datafile 00024: +DATADG/hisdb/datafile/portal_his16.dbf
destination for restore of datafile 00027: +DATADG/hisdb/datafile/portal_his10.dbf
……
destination for restore of datafile 00075: +DATADG/hisdb/datafile/portal_his.367.1186787375
destination for restore of datafile 00076: +DATADG/hisdb/datafile/portal_his.368.1186787429
destination for restore of datafile 00078: +DATADG/hisdb/datafile/portal_his_2025_0208.dbf
destination for restore of datafile 00079: +DATADG/hisdb/datafile/undotbs1.395.1195663875
channel ORA_DISK_2: reading from backup piece /rmanbak/ForStandby_ib3kr1ok_38475_1_1
channel ORA_DISK_2: piece handle=/rmanbak/ForStandby_ib3kr1ok_38475_1_1 tag=FORSTANDBY
channel ORA_DISK_2: restored backup piece 1
channel ORA_DISK_2: restore complete, elapsed time: 00:20:46
channel ORA_DISK_1: piece handle=/rmanbak/ForStandby_ia3kr1ok_38474_1_1 tag=FORSTANDBY
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:28:16

Finished recover at 20-MAR-2025 20:42:46

RMAN> exit

恢复多出来的数据文件
RMAN> catalog backuppiece '/datafile_%U.bak';

RMAN> restore datafile 60,61;

6.恢复控制文件
SYS@hisdb1>shutdown immediate
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SYS@hisdb1>startup nomount
ORACLE instance started.

Total System Global Area 8.1068E+10 bytes
Fixed Size                 37218536 bytes
Variable Size            1.3422E+10 bytes
Database Buffers         6.7377E+10 bytes
Redo Buffers              231215104 bytes

RMAN> restore standby controlfile from '/rmanbak/ForStandby_ic3kr2p0_38476_1_1';

Starting restore at 20-MAR-2025 21:38:01
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=908 instance=hisdb1 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output file name=+DATADG/HISDB/CONTROLFILE/current.267.1196261129
Finished restore at 20-MAR-2025 21:38:03

7.catalog datafilecopy
hisdg01:/home/oracle$rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Thu Mar 20 21:50:41 2025
Version 19.16.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: HISDB (DBID=1936455435, not open)

RMAN> catalog datafilecopy '+DATADG/hisdb/datafile/LOGMINER_TBS.261.1145745771';
catalog datafilecopy '+DATADG/hisdb/datafile/LOGMINER_TBS.397.1196189189';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL.278.1145744523';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL.297.1145740519';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL.401.1196189295';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.256.1152206447';

catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.257.1145737777';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.260.1145737775';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.262.1145737777';
……
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.347.1184327183';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.348.1184327185';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.349.1184327263';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.350.1184327263';
catalog datafilecopy '+DATADG/hisdb/datafile/PORTAL_HIS.351.1184327263';
catalog datafilecusing target database control file instead of recovery catalog
cataloged datafile copy
datafile copy file name=+DATADG/hisdb/datafile/logminer_tbs.261.1145745771 RECID=11 STAMP=1196286653
……
catalog datafilecopy '+DATADG/hisdb/datafile/portal_his09.dbf'
cataloged datafile copy
datafile copy file name=+DATADG/hisdb/datafile/portal_his.394.1192550351 RECID=88 STAMP=1196286659


RMAN>
8.SWITCH DATABASE TO COPY;
RMAN> SWITCH DATABASE TO COPY;

datafile 1 switched to datafile copy "+DATADG/hisdb/datafile/system01.dbf"
datafile 2 switched to datafile copy "+DATADG/hisdb/datafile/sysaux01.dbf"
datafile 3 switched to datafile copy "+DATADG/hisdb/datafile/undotbs01.dbf"
……………………
datafile 79 switched to datafile copy "+DATADG/hisdb/datafile/undotbs1.395.1195663875"
datafile 80 switched to datafile copy "+DATADG/hisdb/datafile/undotbs2.396.1195663885"

RMAN>

9.开启MRP进程
SYS@hisdb1>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT USING CURRENT LOGFILE;

Database altered.

SYS@hisdb1>SYS@hisdb1>

PROCESS   STATUS          THREAD#  SEQUENCE#     BLOCK#
--------- ------------ ---------- ---------- ----------
ARCH      CLOSING               2      52552      36864
ARCH      CLOSING               1      59424      51200
RFS       IDLE                  1      59425      24784
RFS       IDLE                  2      52553      44835
RFS       RECEIVING             2      52265     126977
RFS       RECEIVING             2      52264      57345
RFS       RECEIVING             2      52263     436225
RFS       RECEIVING             2      52335      14337
RFS       RECEIVING             2      52334     221185
RFS       RECEIVING             2      52333     348161
MRP0      APPLYING_LOG          2      52262     191805

11 rows selected.

10.第一次增量备份未备份至最新(可通过查找数据文件scn号找出最小scn号)
SYS@hisdb1>select file#,TO_CHAR(checkpoint_change#, 'FM999999999999999999999999')  from v$datafile_header;

     FILE# TO_CHAR(CHECKPOINT_CHANGE
---------- -------------------------
         1 75578048600
         2 75578048600
         3 75578048600
         4 75578048600
         5 75578048600
         6 75578048600
         7 75578048600
         8 75578048600
         9 75578048600
        10 75578048600
        11 75578048600
 

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

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

相关文章

Java24 抗量子加密:后量子时代的安全基石

一、量子计算威胁与 Java 的应对 随着量子计算机的快速发展&#xff0c;传统加密算法面临前所未有的挑战。Shor 算法可在多项式时间内破解 RSA、ECC 等公钥加密体系&#xff0c;而 Grover 算法能将对称加密的暴力破解效率提升至平方根级别。据 NIST 预测&#xff0c;具备实用价…

day005

文章目录 1. Linux系统核心文件1.1 查看系统版本信息1.1.1 /etc/os-release1.1.2 hostnamectl 1.2 查看主机名并修改1.2.1 hostname1.2.2 cat /etc/hostname1.2.3 hostnamectl 1.3 查看Linux内核版本1.3.1 uname -r1.3.2 hostnamectl 1.4 查看网卡信息并修改1.4.1 nmtui 网络管…

常用财务分析指标列表

财务分析指标是企业财务管理和决策的重要工具&#xff0c;不同需求人群在各自的场景中运用这些指标来做出决策。企业管理者需要通过财务分析指标来评估企业经营状况、制定战略和决策&#xff1b;投资者利用这些指标来评估投资价值和风险&#xff1b;债权人通过财务分析指标来评…

删除非今天日期文件夹--批处理脚本

echo off setlocal enabledelayedexpansion REM ----- 配置部分 ----- set “target_dirK:\360downloads\Software” set “log_file%temp%\delete_folders.log” REM ----- 管理员权限检查 ----- NET FILE >NUL 2>&1 || ( echo 需要以管理员权限运行&#xff01; …

QT创建软件登录界面(14)

文章目录 一、本章说明二、登录界面设计2.1 添加登录窗口2.2 设置登录窗口布局2.3 主函数中创建登录窗口对象2.4 登录窗口头文件与c文件2.5 源文件添加三、注意四、源码项目文件一、本章说明 注:本节为【基于STM的环境监测系统(节点+云服务器存储+QT界面设计)】项目第14篇文…

小天互连即时通讯音视频功能

小天互连即时通讯的音视频功能是核心功能及优势之一&#xff0c;小天互连即时通讯采用先进的音视频编解码技术&#xff0c;即使在网络环境不好的情况下&#xff0c;也能智能优化保证会议稳定进行。因此可以让远程开会也变得和面对面交流一样的便捷&#xff0c;极大地提升了沟通…

【LInux网络】数据链路层 - 深度理解以太网和APR协议

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…

【零基础入门】ASP.NET Core快速搭建第一个Web应用

一、为什么选择ASP.NET Core&#xff1f; 跨平台支持&#xff1a;可在Windows/macOS/Linux系统运行 高性能&#xff1a;比传统ASP.NET框架快10倍以上 开源生态&#xff1a;活跃的开发者社区和丰富的NuGet包 云原生支持&#xff1a;完美适配Docker和Kubernetes部署 二、开发…

AT2401C与RFX2401C问题处理资料

1、AT2401C 可以 PIN 对 PIN 替代 RFX2401C 吗&#xff1f; 答&#xff1a;AT2401C 可以 PIN 对 PIN 替换 RFX2401C&#xff1b;同时 CB2401 也可以 PIN 对 PIN 替换 RFX2401C&#xff1b;我们主要推 AT2401C 这款芯片&#xff0c;如果客户产 品需要过认证或者应用于音频产品建…

Redis-缓存应用 本地缓存与分布式缓存的深度解析

Redis缓存场景与策略&#xff1a;本地缓存与分布式缓存的深度解析 在当今高并发、低延迟的互联网架构中&#xff0c;缓存技术是优化系统性能的核心手段之一。Redis作为分布式缓存的标杆&#xff0c;与本地缓存共同构成了缓存体系的两大支柱。然而&#xff0c;两者的适用场景与…

LinuxAgent开源程序是一款智能运维助手,通过接入 DeepSeek API 实现对 Linux 终端的自然语言控制,帮助用户更高效地进行系统运维工作

一、软件介绍 文末提供程序和源码下载 LinuxAgent 开源程序是基于LLM大模型的Linux智能运维助手。通过接入DeepSeek API实现对Linux终端的自然语言控制&#xff0c;帮助用户更高效地进行系统运维工作。 二、版本特性对比 特性v1.4.1 1.4.1 版v2.0.3 2.0.3 版v2.0.4 2.0.4…

Shadertoy着色器移植到Three.js经验总结

Shadertoy是一个流行的在线平台&#xff0c;用于创建和分享WebGL片段着色器。里面有很多令人惊叹的画面&#xff0c;甚至3D场景。本人也移植了几个ShaderToy上的着色器。本文将详细介绍移植过程中需要注意的关键点。 1. 基本结构差异 想要移植ShaderToy的shader到three.js&am…

StarRocks SRCA 考试心得总结

文章目录 前言0 什么是StarRcoks&#xff1f;1. 关于 SRCA 考试2. 备考资料与学习方式2.1 官方文档与教程2.2 在线培训课程2.3 实战演练 3. 重点考试内容3.1 StarRocks 架构与原理3.2 数据导入与导出3.3 SQL 查询优化3.4 性能调优 4. 备考建议4.1 多做实操4.2 注重考试中的细节…

什么是 Spring Profiles 以及如何在 Spring Boot 中使用:配置与实践指南

在现代应用开发中&#xff0c;应用程序通常需要在不同环境&#xff08;如开发、测试、生产&#xff09;中运行&#xff0c;每个环境可能有不同的配置&#xff08;如数据库、日志级别、消息队列&#xff09;。Spring Profiles 是 Spring 框架提供的一项功能&#xff0c;用于根据…

Spring Cloud Gateway限流:基于Redis的请求限流实现

文章目录 引言一、Spring Cloud Gateway限流基础1.1 限流机制概述1.2 Redis分布式限流原理 二、实现基于Redis的限流方案2.1 环境准备与依赖配置2.2 配置限流策略2.3 自定义限流响应 三、高级应用与最佳实践3.1 动态限流规则调整3.2 优先级与降级策略3.3 监控与告警 总结 引言 …

keil修改字体无效,修改字体为“微软雅黑”方法

在网上下载了微软雅黑字体&#xff0c;微软雅黑参考下载链接 结果在Edit->Configuration中找不到这个字体 这个时候可以在keil的安装目录中找到UV4/global.prop文件 用记事本打开它进行编辑&#xff0c;把字体名字改成微软雅黑 重新打开keil就发现字体成功修改了。 这个…

CSS文字特效实例:猜猜我是谁

CSS文字特效实例&#xff1a;猜猜我是谁 引言 在之前的文章中&#xff0c;我们分别实现了空心文字、文字填充、文字模糊、文字裂开等效果。本文将使用一个小实例&#xff0c;组合使用相关特效&#xff1a;当鼠标悬停在图片上时&#xff0c;其余图片模糊&#xff0c;且文字会上…

美团社招一面

美团社招一面 做题 1、面试题 <style> .outer{width: 100px;background: red;height: 100px; }.inner {width: 50px;height: 50px;background: green; }</style> <div class"outer"><div class"inner"></div> </div>…

InitializingBean接口和@PostConstruct-笔记

1. InitializingBean 简介 1.1 功能简介 InitializingBean 是 Spring 框架中的一个接口&#xff0c;用在 Bean 初始化后执行自定义逻辑。它提供了 afterPropertiesSet() 方法&#xff0c;该方法在以下时机被 Spring 容器自动调用&#xff1a; 属性注入完成后&#xff08;即所…

《代码整洁之道》第9章 单元测试 - 笔记

测试驱动开发 (TDD) 是一种编写整洁代码的“规程”或“方法论”&#xff0c;而不仅仅是测试技术。 JaCoCo 在运行测试后生成详细的覆盖率报告的工具&#xff0c; maven 引用。 测试驱动开发 测试驱动开发&#xff08;TDD&#xff09;是什么&#xff1f; TDD 不是说写完代码…