1. 程式人生 > >oracle11g dataguard 備庫數據同步的檢查方法

oracle11g dataguard 備庫數據同步的檢查方法

是否 ora grep targe 步驟 sequence rec stat 數據文件

概述:


一、環境 主庫: ip地址:192.168.122.203 oracle根目錄:/data/db/oracle SID:qyq 數據文件路徑/data/db/oracle/oradata/qyq 歸檔文件路徑:/data/db/oracle/archive‘
備庫: ip地址:192.168.122.204 oracle根目錄:/data/app/oracle SID:qyq 數據文件路徑/data/app/oracle/oradata/qyq 歸檔文件路徑:/data/app/oracle/archive‘
二、備庫不同步的問題檢查方法

1、檢查主備兩邊的序號
select max(sequence#) from v$log; ---檢查發現一致


2、備庫執行,查看是否有數據未應用
select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;

select SEQUENCE#,FIRST_TIME,NEXT_TIME ,APPLIED from v$archived_log order by 1;

3、檢查備庫是否開啟實時應用
select recovery_mode from v$archive_dest_status where dest_id=2;

4、檢查備庫狀態
select switchover_status from v$database; --發現狀態not allowed

3、看看進程MRP是否存在
ps aux|grep mrp --發現進程不存在

4、如果不存在執行以下:
alter database recover managed standby database using current logfile disconnect;

alter database recover managed standby database disconnect from session; --後臺執行

alter database recover managed standby database --前臺執行,執行這個可以看到報錯的情況

如果有報錯,查看alert日誌和log.xml日誌

5、驗證是否正常
select process,status from v$managed_standby;
select process,status,sequence# from v$managed_standby;

如果看到mrp0正常

6、以上步驟處理好後,如果數據還不正常,接著處理

關閉備庫,接著處理:
把主庫上 undotbs01.dbf 文件,物理的重拷到備庫機上以前undotbs01.dbf 所在目錄下;

$scp /data/Oracle/oradata/voip/undotbs01.dbf 192.168.122.204:/data/oracle/oradata/voip

再在主庫上重新生成一個standby control file ,拷到備庫機上相應目錄下,

alter database create standby controlfile as ‘/data/oracle/oradata/voip/qyqdg01.ctl‘

$scp /data/oracle/oradata/voip/qyqdg01.ctl 192.168.122.204:/data/oracle/oradata/voip
$ mv qyqdg01.ctl control01.ctl
$ cp control01.ctl /data/oracle/flash_recovery_area/qyq/
$cd /data/oracle/flash_recovery_area/qyq/
$ mv control01.ctl control02.ctl

接著
STARTUP NOMOUNT;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

--------------------------------------
session恢復完成後,重啟打開備庫;

alter database open read only;

oracle11g dataguard 備庫數據同步的檢查方法