DG備庫,實時應用如何判斷,MR進程,及MRP應用歸檔,三種情況的查詢及驗證


本篇文檔學習,DG備庫,實時應用如何判斷,MR進程,及MRP應用歸檔,三種情況的查詢及驗證

 

1.取消MRP進程

備庫查詢進程狀態
select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;
PROCESS CLIENT_P SEQUENCE# STATUS BLOCK# BLOCKS
--------- -------- ---------- ------------ ---------- ----------
ARCH ARCH 0 CONNECTED 0 0
ARCH ARCH 0 CONNECTED 0 0
ARCH ARCH 0 CONNECTED 0 0
ARCH ARCH 0 CONNECTED 0 0
RFS UNKNOWN 0 IDLE 0 0
RFS UNKNOWN 0 IDLE 0 0
MRP0 N/A 1124 WAIT_FOR_LOG 0 0

 

WAIT_FOR_LOG --等待日志傳輸,說明當前MRP進程應用歸檔文件進行介質恢復

取消MRP進程應用

alter database recover managed standby database cancel;

select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby where PROCESS like '%M%';

no rows selected

 

2.啟用Foreground recovery session MR(fg),前台恢復進程應用歸檔文件進行恢復
啟用MRP進程,應用歸檔進行進行恢復

SYS@dage >recover managed standby database;

查詢MRP進程狀態

PROCESS CLIENT_P SEQUENCE# STATUS BLOCK# BLOCKS
--------- -------- ---------- ------------ ---------- ----------
MR(fg) N/A 1126 APPLYING_LOG 58451 86733 --前台等待狀態,應用歸檔日志

WAIT_FOR_LOG - 進程正在等待歸檔的重做日志完成

WAIT_FOR_GAP - 進程正在等待解決存檔差距

APPLYING_LOG - 進程正在將歸檔的重做日志主動應用於備用數據庫

 

查詢歸檔進程狀態

select dest_name,status,recovery_mode from v$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_1';
DEST_NAME STATUS RECOVERY_MODE
---------------------------------------- --------- -----------------------
LOG_ARCHIVE_DEST_1 VALID MANAGED (Managed recovery is active)應用歸檔日志


--查詢當前已歸檔的最大歸檔文件序列號
SYS@dage >select max(sequence#),thread# from v$archived_log group by thread#;
MAX(SEQUENCE#) THREAD#
-------------- ----------
1162 1

--再次查詢MRP進程狀態,WAIT_FOR_LOG,
MR(fg) N/A 1163 WAIT_FOR_LOG 0 0

 

小結:如下命令直接啟用MR進程,會話不斷開,最初MR進程,Foreground recovery session,進程狀態最初APPLYING_LOG,應用歸檔日志,隨后歸檔日志應用完畢后,進程處於等待WAIT_FOR_LOG狀態,等待主庫傳輸歸檔
recover managed standby database;

 

3.啟用MRP進程,后台恢復進程應用歸檔文件進行恢復

alter database recover managed standby database cancel;

recover managed standby database disconnect from session;

select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby where PROCESS like '%M%';

PROCESS CLIENT_P SEQUENCE# STATUS BLOCK# BLOCKS
--------- -------- ---------- ------------ ---------- ----------
MRP0 N/A 1163 WAIT_FOR_LOG 0 0

--進程為MRP0進程, 處於WAIT_FOR_LOG 等待主庫傳輸歸檔狀態

查詢歸檔進程狀態

select dest_name,status,recovery_mode from v$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_1';

DEST_NAME STATUS RECOVERY_MODE
---------------------------------------- --------- ----------
LOG_ARCHIVE_DEST_1 VALID MANAGED

 

 

4.啟用Foreground recovery session MR(fg),前台恢復進程應用standby redo logfile進行恢復
alter database recover managed standby database cancel;

--啟用MR前台恢復進程

alter database recover managed standby database using current logfile;

or

recover managed standby database using current logfile; --等價

--查詢進程狀態,APPLYING_LOG
select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby where PROCESS like '%M%';
PROCESS CLIENT_P SEQUENCE# STATUS BLOCK# BLOCKS
--------- -------- ---------- ------------ ---------- ----------
MR(fg) N/A 1169 APPLYING_LOG 202 203


查詢歸檔進程狀態
select dest_name,status,recovery_mode from v$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_1';
DEST_NAME STATUS RECOVERY_MODE
--------------------------------------- --------- -----------------------
LOG_ARCHIVE_DEST_1 VALID MANAGED REAL TIME APPLY


查詢standby 狀態發現
select group#,thread#,sequence#,bytes/1024/1024 m,blocksize,status from v$standby_log;
GROUP# THREAD# SEQUENCE# M BLOCKSIZE STATUS
---------- ---------- ---------- ---------- ---------- ----------
11 1 1172 50 512 ACTIVE
12 1 0 50 512 UNASSIGNED
13 1 0 50 512 UNASSIGNED

 

 

5.啟用MRP 進程,后台恢復進程應用standby redo logfile進行恢復

recover managed standby database using current logfile disconnect;
or
alter database recover managed standby database using current logfile disconnect;

--主庫查詢
select DEST_NAME,STATUS,TRANSMIT_MODE,NET_TIMEOUT from v$archive_dest;
DEST_NAME STATUS TRANSMIT_MOD NET_TIMEOUT
---------------------------------------- --------- ------------ -----------
LOG_ARCHIVE_DEST_1 VALID SYNCHRONOUS 0
LOG_ARCHIVE_DEST_2 VALID PARALLELSYNC 30 --並行同步數據

--備庫查詢
select dest_name,status,recovery_mode from v$archive_dest_status;
DEST_NAME STATUS RECOVERY_MODE
---------------------------------------- --------- -----------------------
LOG_ARCHIVE_DEST_1 VALID MANAGED REAL TIME APPLY

 

--進程狀態MRP進程
select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;
PROCESS CLIENT_P SEQUENCE# STATUS BLOCK# BLOCKS
--------- -------- ---------- ------------ ---------- ----------
MRP0 N/A 1172 APPLYING_LOG 1272 102400

 


總結:備庫應用恢復有四種狀態
MRP0 后台 應用歸檔 or 應用standby redo log
MR((fg) 前台 應用歸檔 or 應用standby redo log

什么是前台,后台,前台進程,會話斷開,進程關閉
什么時候開啟前台進程MR,什么時候開啟后台MRP0進程
在執行程命令時,未加入disconnect參數,會話不斷開,及開啟MR前台進程

MRP0進程應用歸檔,v$managed_standby視圖中status為何還存在APPLYING_LOG?
APPLYING_LOG,只是說明了進程正在應用歸檔,並非標識MRP0進程是否實時應用

如何查詢,是否實時應用?
select dest_name,status,recovery_mode from v$archive_dest_status;
recovery_mode=MANAGED REAL TIME APPLY

開啟實時應用的前提條件
1.數據庫版本>10g
2.需要提取創建standby redo logfile

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM