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.pswp.cn/news/903396.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903396.shtml
英文地址,請注明出處:http://en.pswp.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 不是說寫完代碼…