使用RMAN增量備份處理Dataguard因歸檔丟失造成的gap

来源:https://www.cnblogs.com/sky2088/archive/2018/03/29/8669594.html
-Advertisement-
Play Games

場景: 備庫執行日誌應用出現如下報錯: Thu Mar 29 11:21:45 2018FAL[client]: Failed to request gap sequence GAP - thread 1 sequence 184-185 DBID 1484954774 branch 9604941 ...



場景:

備庫執行日誌應用出現如下報錯:


Thu Mar 29 11:21:45 2018
FAL[client]: Failed to request gap sequence
GAP - thread 1 sequence 184-185
DBID 1484954774 branch 960494131
FAL[client]: All defined FAL servers have been attempted.
------------------------------------------------------------
Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization
parameter is defined to a value that's sufficiently large
enough to maintain adequate log switch information to resolve
archivelog gaps.

查詢缺失的歸檔日誌:

SQL> select * from v$archive_gap;

THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
  1              183           185


去主庫查看歸檔,發現歸檔已丟失

SQL> archive log list;

Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/archivelog
Oldest online log sequence 186
Next log sequence to archive 188
Current log sequence 188


[oracle@prim archivelog]$ pwd
/u01/archivelog
[oracle@prim archivelog]$ ls -ltr
total 1964
-rw-r----- 1 oracle oinstall 74752 Mar 29 11:17 1_186_960494131.dbf
-rw-r----- 1 oracle oinstall 1930240 Mar 29 11:17 1_187_960494131.dbf


下麵開始使用RMAN進行基於SCN增量備份恢復的方式進行恢復,參考文檔 ID 836986.1

 

1.取消備庫日誌應用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel;

2.在備庫上確定需要開始增量備份的SCN

SQL> SELECT CURRENT_SCN FROM V$DATABASE;

CURRENT_SCN
-----------
3505254

SQL> select min(checkpoint_change#) from v$datafile_header
 where file# not in (select file# from v$datafile where enabled = 'READ ONLY');

MIN(CHECKPOINT_CHANGE#)
-----------------------

(如果結果為空,重啟備庫到mount狀態)
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 1002127360 bytes
Fixed Size 2259440 bytes
Variable Size 285214224 bytes
Database Buffers 708837376 bytes
Redo Buffers 5816320 bytes
Database mounted.
SQL> select min(checkpoint_change#) from v$datafile_header
where file# not in (select file# from v$datafile where enabled = 'READ ONLY');

MIN(CHECKPOINT_CHANGE#)
-----------------------
3505255

選擇以上結果中最小SCN作為增量備份的起點(此處是350524)。

 

3.在主庫上進行基於SCN的增量備份

RMAN> BACKUP INCREMENTAL FROM SCN 3505254 DATABASE FORMAT '/tmp/ForStandby_%U' tag 'FORSTANDBY';

 

4.拷貝剛纔的備份到備庫

scp /tmp/ForStandby_* 192.168.211.162:/tmp

 

5.將拷貝過來的備份註冊到備庫的控制文件中

[oracle@stand ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Thu Mar 29 11:37:52 2018

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

connected to target database: ORCL (DBID=1484954774, not open)

RMAN> CATALOG START WITH '/tmp/ForStandby';

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

List of Files Unknown to the Database
=====================================
File Name: /tmp/ForStandby_08sv0bdj_1_1
File Name: /tmp/ForStandby_07sv0bcg_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: /tmp/ForStandby_08sv0bdj_1_1
File Name: /tmp/ForStandby_07sv0bcg_1_1

 

6.使用增量備份恢復備庫

RMAN> RECOVER DATABASE NOREDO;


Starting recover at 29-MAR-18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=16 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: /u01/app/oracle/oradata/rzorcl/system01.dbf
destination for restore of datafile 00002: /u01/app/oracle/oradata/rzorcl/sysaux01.dbf
destination for restore of datafile 00003: /u01/app/oracle/oradata/rzorcl/undotbs01.dbf
destination for restore of datafile 00004: /u01/app/oracle/oradata/rzorcl/users01.dbf
destination for restore of datafile 00005: /u01/app/oracle/oradata/rzorcl/example01.dbf
destination for restore of datafile 00006: /u01/app/oracle/oradata/rzorcl/odc_tps01.dbf
destination for restore of datafile 00007: /u01/app/oracle/oradata/rzorcl/test01.dbf
destination for restore of datafile 00008: /u01/app/oracle/oradata/rzorcl/big01.dbf
destination for restore of datafile 00009: /u01/app/oracle/oradata/rzorcl/big02.dbf
channel ORA_DISK_1: reading from backup piece /tmp/ForStandby_07sv0bcg_1_1
channel ORA_DISK_1: piece handle=/tmp/ForStandby_07sv0bcg_1_1 tag=FORSTANDBY
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01

Finished recover at 29-MAR-18


7.在主庫為備庫重新備份控制文件,並scp到備庫

RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/tmp/ForStandbyCTRL.bck';

Starting backup at 29-MAR-18
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=9 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including standby control file in backup set
channel ORA_DISK_1: starting piece 1 at 29-MAR-18
channel ORA_DISK_1: finished piece 1 at 29-MAR-18
piece handle=/tmp/ForStandbyCTRL.bck tag=TAG20180329T114413 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 29-MAR-18

 

[oracle@prim tmp]$ scp ForStandbyCTRL.bck 192.168.211.162:/tmp
[email protected]'s password:
ForStandbyCTRL.bck 100% 9856KB 9.6MB/s 00:00

 

8.備庫還原控制文件:

RMAN> shutdown immediate;

database dismounted

Oracle instance shut down

RMAN> startup nomount;

connected to target database (not started)
Oracle instance started

Total System Global Area 1002127360 bytes

Fixed Size 2259440 bytes
Variable Size 285214224 bytes
Database Buffers 708837376 bytes
Redo Buffers 5816320 bytes

 

RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/ForStandbyCTRL.bck';

Starting restore at 29-MAR-18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/oracle/oradata/rzorcl/control01.ctl
output file name=/u01/app/oracle/oradata/rzorcl/control02.ctl
Finished restore at 29-MAR-18

 

9.重啟備庫到mount 

RMAN> SHUTDOWN;
RMAN> STARTUP MOUNT;

 

10.如果資料庫是用OMF方式管理數據文件的,則需要在備庫的控制文件中重新註冊下數據文件,示例如下:

(如果數據文件存放在文件系統,沒有使用OMF,則跳過此步驟

RMAN> CATALOG START WITH '+DATA/rzorcl/datafile/';

List of Files Unknown to the Database
=====================================
File Name: +data/rzorcl/DATAFILE/SYSTEM.309.685535773
File Name: +data/rzorcl/DATAFILE/SYSAUX.301.685535773
File Name: +data/rzorcl/DATAFILE/UNDOTBS1.302.685535775
File Name: +data/rzorcl/DATAFILE/SYSTEM.297.688213333
File Name: +data/rzorcl/DATAFILE/SYSAUX.267.688213333
File Name: +data/rzorcl/DATAFILE/UNDOTBS1.268.688213335

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

List of Cataloged Files
=======================
File Name: +data/rzorcl/DATAFILE/SYSTEM.297.688213333
File Name: +data/rzorcl/DATAFILE/SYSAUX.267.688213333
File Name: +data/rzorcl/DATAFILE/UNDOTBS1.268.688213335

確保主庫在這個SCN之後沒有添加新的數據文件,如果有則需要單獨進行備份和還原,參考文檔文檔 ID 836986.1

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

no rows selected

RMAN> SWITCH DATABASE TO COPY;

datafile 1 switched to datafile copy "+DATA/rzorcl/datafile/system.297.688213333"
datafile 2 switched to datafile copy "+DATA/rzorcl/datafile/undotbs1.268.688213335"
datafile 3 switched to datafile copy "+DATA/rzorcl/datafile/sysaux.267.688213333"


11. 若備庫開啟了閃回,需要重新開啟閃回


SQL> ALTER DATABASE FLASHBACK OFF;
SQL> ALTER DATABASE FLASHBACK ON;

 

12. 備庫clear standby log group

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 4;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 5;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 6;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 7;


13. 備庫開啟日誌應用,至此整個過程結束

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 開啟慢查詢日誌之後,慢查詢sql會被存到資料庫系統表mysql.slow_log或是文件中,可參考。有兩個工具可以幫助我們分析輸出報告,分別是mysqldumpslow和pt-query-digest. mysqldumpslow mysqldumpslow是mysql自身提供的日誌分析工具,一般在 ...
  • 資料庫: 資料庫是一組文件,位於磁碟,用來存儲數據。 資料庫實例: 資料庫實例是管理資料庫文件的一組記憶體結構,該實例包含一個叫做系統全局區的共用記憶體區和一組後臺進程。 資料庫和資料庫實例都是獨立於對方而存在。 ...
  • 在平時 我們在操作hadoop命令的時候 會誤刪除某些文件 利用 hadoop fs -rmr(目錄名)刪除目錄時易出現誤刪除的操作 為了防止這種情況我們需要打開回收站 具體操作為: 找到配置文件core-site.xml,在其中添加如下信息: <property> <name>fs.trash.i ...
  • 同事收到告警磁碟空間不足,說刪除歸檔無法直接在rman中進行操作,讓幫看下,具體處理方法如下: 一、錯誤信息 在rman執行命令 crosscheck archivelog all; delete noprompt archivelog all completed before 'sysdate-3 ...
  • 參考 針對mysql的優化,mysql提供了慢查詢日誌的支持。mysql的慢查詢是mysql提供的一種日誌記錄,它用來記錄mysql中響應時間超過閥值的sql語句,某個sql運行時間如果超過設置的閥值(long_query_time),就會被記錄到慢查詢日誌中。閥值預設值是10s,預設情況下,mys ...
  • 1,獲取yum安裝源 到mysql官網下載 https://dev.mysql.com/downloads/repo/yum/ wget獲取 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 安裝yum ...
  • 博客鏈接:http://www.cnblogs.com/zhenghongxin/p/8669913.html redis 本地持久化到硬碟有兩種方式,一是快照(snapshotting),二是只追加文件(append-only file AOF) 快照 快照,顧名思義可以理解為拍照一樣,把整個記憶體 ...
  • 1,首先需要在Oracle安裝完成之後新建一個用戶 2用戶新建完成之後,可能會出現某個用戶對標users沒有許可權的提示 3.新建一個測試表以及向其中插入幾條數據 4.需要在eclipse中新建一個java項目 打開eclipse(myeclipse)-> File(文件)-> New(新建) ->P ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...