Oracle之DataGurd(DG)環境升級--快捷同步
阿新 • • 發佈:2018-12-26
在閱讀老夫的這篇文章之前,請大家先看下這裡的文章“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一下,從庫就能看到修改的結果了。