需要了解的Data Guard理論知識(二)
一. 自動裂縫檢測和解決
當Primary Database的某些日誌沒有成功傳送到Standby Database, 這時候發生餓了歸檔裂縫(Archive Gap)。
缺失的這些日誌就是裂縫(Gap)。 Data Guard能夠自動檢測,解決歸檔裂縫,不需要DBA的介入。這需要配置FAL_CLIENT, FAL_SERVER 這兩個引數(FAL: Fetch Archive Log)。
從FAL 這個名字可以看出,這個過程是Standby Database主動發起的“取”日誌的過程,Standby Database 就是FAL_CLIENT. 它是從FAL_SERVER中取這些Gap, 10g中,這個FAL_SERVER可以是Primary Database, 也可以是其他的Standby Database。
如:FAL_SERVER='PR1,ST1,ST2';
FAL_CLIENT和FAL_SERVER兩個引數都是Oracle Net Name。 FAL_CLIENT 透過網路向FAL_SERVER傳送請求,FAL_SERVER透過網路向FAL_CLIENT傳送缺失的日誌。 但是這兩個連線不一定是一個連線。 因此FAL_CLIENT向FAL_SERVER傳送請求時,會攜帶FAL_CLIENT引數值,用來告訴FAL_SERVER應該向哪裡傳送缺少的日誌。 這個引數值也是一個Oracle Net Name,這個Name是在FAL_SERVER上定義的,用來指向FAL_CLIENT.
當然,除了自動地日誌缺失解決,DBA 也可以手工解決。 具體操作步驟如下:
1) 檢視是否有日誌GAP:
SQL> SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
2) 如果有,則複製過來
3) 手工的註冊這些日誌:
SQL> ALTER DATABASE REGISTER LOGFILE '路徑';
二. 指定日誌傳送物件
1.VALID_FOR屬性指定傳輸及接收物件
LOG_ARCHIVE_DEST_n引數中的VALID_FOR屬性,用來指定傳輸的內容。從字面理解VALID_FOR就是基於那誰有效,該屬性有兩個引數值需要指定:REDO_LOG_TYPE和DATABASE_ROLE,我們基本上可以將其理解為:傳送指定角色生成的指定型別的日誌檔案,該引數的主要目的是為了確保,一旦發生角色切換操作後資料庫的正常運轉。
其中,REDO_LOG_TYPE和DATABASE_ROLE兩個引數可供選擇的引數值如下:
REDO_LOG_TYPE:可設定為ONLINE_LOGFILE、STANDBY_LOGFILE、ALL_LOGFILES。
DATABASE_ROLE:可設定為PRIMARY_ROLE、STANDBY_ROLE、ALL_ROLES。
注意:VALID_FOR引數預設值是:VALID_FOR=(ALL_LOGFILES,ALL_ROLES)。
推薦手動設定該引數而不要使用預設值,在某些情況下預設的引數值不一定合適,如邏輯Standby在預設情況下就處於OPEN READ WRITE模式,不僅有REDO資料而且還包含多種日誌檔案(Online Redologs、Archived Redologs及Standby Redologs)。
預設情況下,邏輯Standby資料庫生成的歸檔檔案和接收到的歸檔檔案在相同的路徑下,這既不便於管理,也極有可能帶來一些隱患。建議對每個LOG_ARCHIVE_DEST_n引數設定合適的VALID_FOR屬性。本地生成的歸檔檔案和接收到的歸檔檔案最好分別儲存於不同路徑下。
2.透過DB_UNIQUE_NAME屬性指定資料庫
DB_UNIQUE_NAME屬性是10g版本新增加的一個關鍵字,在之前版本並沒有這一說法。該屬性的作用是指定唯一的Oracle資料庫名稱,也正因有了DB_UNIQUE_NAME,REDO資料在傳輸過程中才能確認傳輸到DBA希望被傳輸到的資料庫上。
當然要確保REDO資料被傳輸到指定伺服器,除了在LOG_ARCHIVE_DEST_n引數中指定正確DB_UNIQUE_NAME屬性之外,還有一個初始化引數LOG_ARCHIVE_CONFIG也需要進行正確的配置。該引數除了指定Data Guard環境中的唯一資料庫名外,還包括幾個屬性,用來控制REDO資料的傳輸和接收:
SEND:允許資料庫傳送資料到遠端。
RECEIVE:允許Standby接收來自其他資料庫的資料。
NOSEND,NORECEIVE:自然就是禁止嘍。
例如,設定Primary資料庫不接收任何歸檔資料,可以做如下的設定:
LOG_ARCHIVE_CONFIG='NORECEIVE,DG_CONFIG= (PRI,ST) '
如果做了如上的設定,如果該伺服器發生了角色切換,那它也沒有接收REDO資料的能力。
注: 整理自 張曉明《大話 Oracle RAC 》和 李丙洋 《塗抹 Oracle 》
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994536/viewspace-2762481/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 需要了解的Data Guard理論知識(一)
- 需要了解的Data Guard理論知識(三)
- 前端需要了解的色彩知識前端
- 前端需要了解的http知識前端HTTP
- Android開發需要了解的 IM 知識Android
- 程式設計師需要了解的硬核知識之二進位制程式設計師
- Python爬蟲需要了解的代理IP知識Python爬蟲
- 直播中需要了解的AAC基礎知識
- 前端需要了解的計算機網路知識前端計算機網路
- 後端工程師需要了解的跨域知識後端工程師跨域
- 關於強化學習需要了解的知識強化學習
- 關於機器學習需要了解的知識機器學習
- 爬蟲之前需要先了解哪些專業知識?爬蟲
- 論基礎理論知識的重要性
- 新手學習Java需要了解的幾個知識點!Java
- 程式設計師需要了解的硬核知識之CPU程式設計師
- 程式設計師需要了解的硬核知識之磁碟程式設計師
- 移動開發需要了解的UI設計知識移動開發UI
- 資料庫理論知識資料庫
- [譯] Web 開發者需要了解的基礎色彩理論Web
- 作為產品經理,你需要了解的基本演算法知識和實操演算法
- 有必要了解的大資料知識(二) Hadoop大資料Hadoop
- 學習UI設計都需要了解哪些知識?UI
- 開發微信小程式需要了解哪些知識?微信小程式
- 入門Java你需要了解的幾個知識要點!Java
- Oracle Data Guard Feature 12cR2系列(二)Oracle
- 線性表的理論知識總結
- 鑑權理論知識學習
- 1.測試理論知識
- 華為 組播理論知識
- 關於響應式佈局,你需要了解的知識點
- 程式設計師需要了解的硬核知識之控制硬體程式設計師
- 程式設計師需要了解的硬核知識之記憶體程式設計師記憶體
- CIO需要了解的:IT規劃方法論
- JVM的GC理論知識 – Bare.Metal.DevJVMGCdev
- Oracle Data Guard Broker元件Oracle元件
- Oracle Data Guard簡介Oracle
- 單機搭建Data Guard