基於SCN增量恢復DG同步

来源:https://www.cnblogs.com/houzhiheng/archive/2019/12/11/12021250.html
-Advertisement-
Play Games

問題描述:做scn恢復備庫的測試,吭哧了幾天,今天終於可以記錄一下,遇到了很多坑,作為初學者可以更好地理解DG,主要先關閉備庫,在主庫做歸檔丟失備庫無法同步,備庫產生GAP,然後增量備份恢復備庫,版本:SQL*Plus: Release 11.2.0.4.0 Production on Thu No ...


問題描述:做scn恢復備庫的測試,吭哧了幾天,今天終於可以記錄一下,遇到了很多坑,作為初學者可以更好地理解DG,主要先關閉備庫,在主庫做歸檔丟失備庫無法同步,備庫產生GAP,然後增量備份恢復備庫,版本:SQL*Plus: Release 11.2.0.4.0 Production on Thu Nov 28 09:33:14 2019

1.備庫操作:關閉備庫,關閉之前首先要檢查一下主備是否同步,否則會產生一些不必要的麻煩

SQL> select process,client_process,sequence#,status,block#,blocks from v$managed_standby;    檢查一下備庫進程,mrp進程正在等待應用進程,然後就需要重新應用一下保持DG同步

 

 

SQL> recover managed standby database cancel;                  關閉一下實時應用

SQL> select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;        這個時候實時應用關閉,mrp進程是被關掉的,日誌中都可以看到

 

 

SQL> alter database recover managed standby database using current logfile disconnect from session;    開啟實時同步,這個時候mrp進程是起來的

 

 

 SQL> select process,client_process,status,sequence#,block#,blocks from v$managed_standby;   查詢一下wait狀態變成了applying應用狀態

 

 

2.關閉備庫,前邊都是廢話,檢查一下備庫是否同步,下邊取消實時應用,也就是關掉

SQL> recover managed standby database cancel;

SQL> shutdown immediate

 

 

3.主庫上操作:模擬歸檔丟失,這時備庫的已經關掉

SQL> alter system switch logfile;

 

 

 

SQL> select max(sequence#) from v$archived_log;   查詢一下歸檔序號到了24號

 

 

SQL> archive log list                          這裡寫一下查找歸檔路徑的方法,不用在意我這裡的歸檔號,這是後來補上的圖,當時沒做這個操作,查到路徑在USE_DB_RECOVERY_FILE_DEST,這是系統預設的閃回去內,這裡也可以修改的。

 

 

SQL> show parameter log_archive_dest_1

 

 

SQL> desc v$archived_log

 

 

SQL> select name from v$archived_log;                 按照這個步驟來可以找到歸檔的路徑

 

 

[root@orcl ~]# cd /home/oracle/flashdata/ORCL/archivelog/2019_11_27/                找到該路徑,我切換了兩次,所以序列號到24

 

 

 

4.這裡對比一下備庫的序列號,註意這裡是備庫截至到序列號是22,下邊是我遇到的一個大坑

 

 

這裡讓主庫模擬丟失的本來是23和24,但是備庫一直出現不了GAP的狀態,後來一看備庫日誌說的是23已經再被運輸中(in transit),所以說這裡如果備庫重新啟動23是直接被應用的,如果把23號歸檔mv掉,是產生不了GAP的,所以要模擬mv掉歸檔 就mv 24號歸檔,也就是切換的第二個歸檔,這裡需要註意下

 

 

 

 

 

5.主庫繼續模擬丟失歸檔

[root@orcl 2019_11_27]# mv o1_mf_1_24_gxx0qq27_.arc /tmp    這裡我隨便挪到一個目錄下

 

 

 

 

6.備庫上:啟動備庫,查看GAP

SQL> startup mount

SQL> recover managed standby database using current logfile disconnect from session;

SQL> select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;       已經可以看到mrp進程正在等待GAP24號

 

 

 

 

這個是日誌截圖都是gap24號

SQL>  select * from v$archive_gap;   這些都可以查到

 

 

7.主庫上:查詢到24號歸檔的scn號,然後做增量備份,這裡要做的是在主庫上查詢到24號歸檔的scn號,也就是在對24號歸檔做操作之前的記錄,然後在備庫增量恢復

SQL> select FIRST_CHANGE#  from v$archived_log where SEQUENCE#  =24;    查詢到24號歸檔之前的操作

 

 

SQL> select current_scn from v$database;   確認一下24號scn號的範圍怎麼樣,這裡是當前的歸檔號

 

 

8.主庫上做基於1110582的備份

[oracle@orcl ~]$ rman target /

RMAN> backup as compressed backupset incremental from SCN 1110582 database format '/home/oracle/standby_%d_%T_%U.bak' include current controlfile for standby filesperset=5 tag 'FOR STANDBY';       這裡要看一下哪個是控制文件,以及rman備份文件的許可權問題

 

這裡查看一下備份的文件

 

 

 

9.傳輸到備庫  /home/oracle下

[oracle@orcl ~]$ scp *.bak 192.168.1.5:/home/oracle

 

10.在備庫上進行恢復scn號,首先恢復控制文件

 

[root@orclstd oracle]# su - oracle
[oracle@orclstd ~]$ rman target /

RMAN> restore standby controlfile from '/home/oracle/standby_ORCL_20191127_0euhv1rm_1_1.bak';

 

 

RMAN> alter database mount;     到mount狀態

RMAN> catalog start with'/home/oracle';     註冊一下傳輸過來的備份,這裡rman有一個文件頭損壞的報錯,這裡不影響後邊的報錯,但是我沒有理解

 

 

 

 

 

 RMAN> recover database noredo; 增量恢復備份文件

 

 

11.驗證,這裡狀態都變成了應用日誌,這裡也可以在主庫多切換幾次日誌,看看備庫有沒有實時同步

SQL> recover managed standby database using current logfile disconnect from session;

Media recovery complete.
SQL> select process,status,sequence# from v$managed_standby;

 

 

 

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • Ansible項目 一、Ansible簡介: ansible是一種新流行的自動化運維工具,基於python2-paramiko模塊開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量運行命令功能。 ansible是 ...
  • 客戶端訪問FTP伺服器步驟: 首先雙擊此電腦,在彈出的視窗輸入如下信息 剛安裝完的FTP伺服器只有一個pub目錄,因為這裡是使用匿名用戶登錄的 FTP伺服器預設的匿名目錄在/var/ftp/pub/下麵 我們可以進入pub目錄裡面添加文件或者刪除文件等等一系列的操作 以上就是windows使用匿名用 ...
  • 什麼是FTP? FTP(File Transfer Protocol,文件傳輸協議),是TCP/IP網路和Internet上最早使用的協議之一。用來將實現從一臺電腦傳送文件到另一臺電腦,或者接收和查看另一臺電腦上的文件。一般需要藉助軟體的幫助才能完成。這方面的軟體包括FlashFXP、leapftp ...
  • 文檔的壓縮和打包 .gz 表示由gzip壓縮工具壓縮的文件 .tar 表示由tar打包程式打包的文件 .tar.gz 先由tar打包,再由gzip壓縮 gzip壓縮工具 -d 該參數在解壓縮時使用 -# 表示壓縮等級,1為最差,9為最好,6為預設 xz壓縮工具 tar打包工具 ...
  • 配置雙主複製功能,在主1和主2上執行均下麵的步驟 vim syncprov_mod.ldif dn: cn=module,cn=configobjectClass: olcModuleListcn: moduleolcModulePath: /usr/lib64/openldapolcModuleL ...
  • 解析:在mysql 工具 搜索或者插入數據時報下麵錯誤: ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_tl ...
  • 2019-12-11對varchar類型排序問題的解決 在mysql預設order by 只對數字與日期類型可以排序,但對於varchar字元型類型排序好像沒有用了,下麵我來給各位同學介紹varchar類型排序問題如何解決。 現象描述: select * from resultgroup where ...
  • #內連接select * from auth_user u inner join auth_group g on u.id = g.id; #左連接select * from auth_user a left join auth_group b on a.id = b.id; #右連接select ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...