一律可用群組中資料庫的擷取與傳遞需求摘要
Oracle GoldenGate for SQL Server 支援從 Always On Availability Group 的主要複本或唯讀的同步模式次要複本擷取,以及傳遞至主要複本。
從 Always On Availability Group 中的主要或次要複本擷取時,請務必瞭解擷取處理作業只能從日誌讀取經過硬化的交易,而且 Oracle GoldenGate 所在或將從中擷取的任何複本資料庫之間都不會有資料遺失的可能性。
資料庫連線
對於 Extract 和 Replicat,建議建立使用 Always On Availability Group Listener 進行連線的資料庫連線。
-
對於 Replicat,連線至監聽器可讓 Replicat 在主要複本執行容錯移轉至新執行處理時重新連線,無須手動編輯連線設定值以指向新主要資料庫。
-
對於連線至監聽器的 Extract,不僅允許在不編輯連線指向新執行處理的情況下重新連線至主要執行處理,還能選擇性地針對唯讀次要執行處理執行 Extract 的資料擷取預存程序。
-
對於連線至 Always On 環境的 Extract 和 Replicat,請使用 Manager 的
AUTORESTART參數,在容錯移轉後重新啟動處理作業。 -
若要將 Extract 的資料擷取查詢遞送至唯讀次要,請確定連線使用「監聽器」、您有一或多個設定為處理唯讀路由的唯讀次要複本,以及 Extract 使用
TRANLOGOPTIONS ALWAYSONREADONLYROUTING參數執行。請參閱下列 Microsoft 文件,瞭解如何設定唯讀路由:https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-read-only-routing-for-an-availability-group-sql-server?view=sql-server-2017
補充日誌記錄
必須使用管理從屬端或連線至主要複本的 Web 介面,以一般方式 (ADD TRANDATA) 啟用補充記錄日誌,而非對次要複本啟用。
-
建立主要複本的 DSN 或 Always On Availability Group Listener 的 DSN,以使用
DBLOGIN連線來執行ADD TRANDATA。 -
對主要複本資料庫啟用補充記錄日誌時,不會自動在任何次要複本上建立 SQL Server 變更資料擷取工作。從主要複本容錯移轉至次要複本時,您必須在新的主要複本上手動建立「SQL 伺服器變更資料擷取」工作和「Oracle CDC 清除」工作 (如果使用中)。
EXECUTE sys.sp_cdc_add_job N'capture- 在新主要資料庫上建立 SQL Server CDC Capture 工作時,會採用預設組態設定值。因此,如果您先前已修改先前主要複本上的預設值,就需要在新的主要複本上執行
sys.sp_cdc_change_job,然後相應地設定值。注意:如需詳細資訊,請參閱 Microsoft 文件,瞭解如何啟用 AlwaysOn 次要複本的 CDC 擷取工作。
- 在新主要資料庫上建立 SQL Server CDC Capture 工作時,會採用預設組態設定值。因此,如果您先前已修改先前主要複本上的預設值,就需要在新的主要複本上執行
營運需求和考量
-
當執行處理不再是主要執行處理,但已安裝 SQL Server CDC Capture 工作時,工作會在一段時間後停止執行,而且不會嘗試重新啟動。在容錯移轉回該執行處理時,工作不會自動啟動,因此必須手動啟動。
-
如果次要複本資料庫與主要複本資料庫不同步,則 CDC 擷取工作不會在日誌中前進,因此 Extract 將不會擷取任何記錄,直到主要和次要複本同步為止。如需詳細資訊,請參閱 Microsoft 的這篇文章:
注意:從 Always On Availability Group 中的主要或次要複本擷取時,請務必瞭解擷取處理作業只能從日誌讀取經過硬化的交易,而且 Oracle GoldenGate 所在或將從中擷取的任何複本資料庫之間都不會有資料遺失的可能性。
-
從中間層 Windows 或 Linux 伺服器執行 Extract 時,請將中間層伺服器的日期、時間和時區設為與主要複本相同的日期、時間和時區。
-
如果 Extract 設定為從可讀取的次要複本擷取,但未設定唯讀路由,則必須在啟動 Extract 之前,針對次要複本建立 SQL Server CDC Capture 工作,因為 Extract 會檢查工作是否存在。若要建立 SQL Server CDC Capture 工作,任何將有 Extract 連線的潛在次要工作,必須在某個時間點設為可寫入的主要資料庫,然後依照上述步驟 (在補充日誌記錄下) 手動新增 SQL Server CDC Capture 工作。
-
如果解除安裝 Oracle GoldenGate 並在屬於 Always On 可用性群組的資料庫上停用「變更資料擷取」,請依照停用變更資料擷取中提供的額外步驟進行。