1. 程式人生 > >Oracle之DataGurd(DG)環境升級--快捷同步

Oracle之DataGurd(DG)環境升級--快捷同步

在閱讀老夫的這篇文章之前,請大家先看下這裡的文章“Oracle之DataGurd(DG)環境搭建”,因為本篇文章是基於此。

在之前的文章裡面,想要從庫也同步的話是需要主庫進行一個“alter system switch logfile;”命令,主庫需要先寫盤,寫完ok,然後通過tcp/ip給從庫傳送需要同步的內容。

這樣的結果渦覺得也挺滿意的了,呵呵!但是不能滿足於現狀,來個lgwr實施更加快捷的同步。

實施這個更快捷的同步配置只需三步。

1.備庫上的配置

檢視主庫現有多少個redo,為備庫配置standby logfile,redo的大小和主庫上的大小應該是要一樣的,組也一樣,注意這個standby logfile跟普通的logfile是不一樣的,這個是用於網路同步。

因為從庫是read-only狀態,所以需要停下mgp程序。不然報錯;

SQL> alter database add standby logfile '/oradata/vicl/st_redo01.log' size 30m; --報錯
alter database add standby logfile 'size 30m'
*
ERROR at line 1:
ORA-01156: recovery or flashback in progress may need access to files
 停mgp;;;;;;;
SQL> alter database recover managed standby database cancel; --先停下來

Database altered.

SQL> alter database add standby logfile '/oradata/vicl/st_redo01.log' size 30m;
SQL> alter database add standby logfile '/oradata/vicl/st_redo02.log' size 30m;
SQL> alter database add standby logfile '/oradata/vicl/st_redo03.log' size 30m;  --正確

2.主庫上的配置

alter system set log_archive_dest_2='service=to_146 lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=orcl_sd';

這句話前一篇也修改過,這裡的是新增lgwr利用sync同步

重啟主庫
shut immediate;

startup open;

3.開啟恢復程序MRP

從新開啟從庫的mrp程序

alter database recover managed standby database using current logfile disconnect from session;

斷線修復archive_log
select DEST_NAME,status,error from v$archive_dest; --查出有問題的歸檔
alter system set log_archive_dest_state_2='defer'; 設定為預設狀態
alter system set log_archive_dest_state_2='enable'  再設定為可用狀態,就可以再次同步

檢視備庫程序狀態

SQL> select process,client_process,sequence#,status from v$managed_standby ;

PROCESS   CLIENT_P  SEQUENCE# STATUS
--------- -------- ---------- ------------
ARCH	  ARCH		   30 CLOSING
ARCH	  ARCH		    0 CONNECTED
ARCH	  ARCH		    0 CONNECTED
ARCH	  ARCH		    0 CONNECTED
RFS	  UNKNOWN	    0 IDLE
RFS	  UNKNOWN	    0 IDLE
RFS	  N/A		    0 IDLE
RFS	  LGWR		   31 IDLE
RFS	  N/A		    0 IDLE
MRP0	  N/A		   31 APPLYING_LOG

===================================
測試
現在主庫修改一些資料,commit一下,從庫就能看到修改的結果了。