Dataguard之redo傳輸服務

2022-07-03 15:54:08 字數 1623 閱讀 6380

整個data guard體系就是圍繞三個關鍵點展開:

日誌傳送(redo send)

日誌接收(redo receive)

primary database產生的redo日誌需要傳送到standby database。

傳送動作由primary database的lgwr或者arch程序完成。

不同的歸檔目的地可以使用不同的程序;但同一目的地只能選用一種程序

primary database 產生redo log 的日誌被lgwr程序寫到聯機日誌。

當一組聯機日誌被寫滿後,會發生日誌切換(log switch),並且會觸發本地歸檔;

完成本地歸檔後,聯機日誌可以被覆蓋重用;

arc1程序通過net把歸檔日誌傳送給standby database的rfs程序。

standby database的rfs程序把接收到的日誌寫入歸檔日誌;

總結

預設情況下,primary database使用arch程序傳送日誌。

使用arch程序傳送日誌只支援最高效能保護模式。 對於最大保護和最高可用性兩種模式而言,強調的都是一點,redo資料必須實時應用於standby資料庫。可使用arch程序傳送日誌並非將redo資料實時應用於standby資料庫,而是只有primary database日誌歸檔完成後才會將歸檔日誌傳送到standby database。當primary database異常宕機時,就會有部分未歸檔的資料無法傳到standby database,造成資料丟失。

lgwr程序把日誌寫到本地日誌檔案的同時還要傳送給本地的lnsn程序,再由lnsn程序把日誌通過網路傳送給遠端目的地

必須等待寫入本地日誌檔案操作和通過lnsn程序的網路傳送都成功,primary 資料庫上的事務才能提交,這就是sync。

standby資料庫的rfs程序把接收到的日誌寫入到standby redo log日誌中。

primary 資料庫的日誌切換也會觸發standby資料庫上的日誌切換,即standby資料庫對standby redo log的歸檔。

lgwr負責把日誌寫入本地日誌檔案;不必等待lns程序的網路傳送成功。

lnsn程序非同步的將日誌傳送到standby資料庫

primary 資料庫的日誌切換也會觸發standby資料庫上的日誌切換,即standby資料庫對standby redo log的歸檔。

mrp或lsp 程序恢復歸檔日誌

總結:如果不明確指定,預設是sync(同步方式)。

注:11g開始,不再把通過arch的日誌傳送作為一種單獨的方式提出。

standby資料庫的rfs程序接收到日誌後,就把日誌寫到standby redo log或者archived log檔案中。具體寫入哪種檔案,取決於primary 資料庫的日誌傳送方式和standby資料庫的配置。 

Oracle之redo分析二

1.為什麼不能分配乙個新日誌檔案 在批量大量匯入資料的時候,我們可能會在伺服器端的alert.log檔案裡面看到這樣一條警告資訊 thread 1 cannot allocate new log,sequence1466 checkpoint not complete current lg 3 se...

DataGuard學習之部分引數配置

搭建乙個10g版本dataguard環境,難點之一是配置資料庫名 角色 歸檔以及diskgroup等相關的引數。以如下環境為例 hostname role instance name tnsnames.ora db1primary node1 db1db1,db2,dr1,dr2 db2primar...

Swift 傳值之屬性傳值

swift 的語言非常簡練,這就讓它的屬性傳值功能變得更加強大,從第乙個介面傳到第二個介面,這種方法非常簡單,這裡就不在贅述。下面這個例子說的是用屬性傳值從第二個控制器傳值到第乙個控制器的方法。屬性傳值 傳值 閉包傳值 通知傳值 單例傳值 首先,在storyboard裡面拖如下介面,從左到右分別是導...