REGISTER EXTRACT
此指令適用於 Oracle AI Database 和 PostgreSQL。
Oracle AI Database
此命令會註冊主要 Extract 群組,以啟用整合式擷取模式並指定整合式 Extract (來自多租用戶容器資料庫) 的選項
若要取消註冊資料庫的 Extract 群組,請使用 UNREGISTER EXTRACT 命令。
語法:
REGISTER EXTRACT group-name
( , DATABASE
( [ CONTAINER container-list |
ADD CONTAINER container-list |
DROP CONTAINER container-list ]
[ SCN scn ]
[ SHARE ( AUTOMATIC | group-name | NONE ) ]
[ [NO]OPTIMIZED ]
) )
容器清單是以逗號分隔的 PDB 名稱清單,例如 (pdbeast, pdbwest);或萬用字元的 PDB 名稱 (例如 (pdb* or pdb?);或兩者皆含),例如 (cdbnorth, pdb*)。支援的使用萬用字元為 ? 和 *。
OPTIMIZED 選項可改善 Extract 快速啟動。預設值為 NOOPTIMIZED。OPTIMIZED 選項只會影響上游非多租用戶組態。
DATABASE [
CONTAINER (container[, ...]) |
ADD CONTAINER (container[, ...]) |
DROP CONTAINER (container[, ...])
]
適用於 Oracle。
若無選項,DATABASE 會啟用 Extract 群組非 CDB 資料庫的整合式擷取。此模式的 Extract 會與資料庫日誌探勘伺服器整合,以接收邏輯變更記錄 (LCR) 形式的變更資料。Extract 不會讀取重做日誌。Extract 會執行擷取處理、轉換及其他需求。DML 篩選是由日誌探勘伺服器執行。
將 REGISTER EXTRACT 與 DATABASE 搭配使用之前,請先使用 DBLOGIN USERIDALIAS 命令,讓所有 Extract 擁有使用 dbms_goldengate_auth.grant_admin_privilege 程序所授予的權限。如果您有順流組態,則必須同時發出 MININGDBLOGIN 命令。如果您註冊的來源資料庫是 CDB 資料庫,Extract 將會擷取資料,則必須使用 CONTAINER=>'ALL 的參數呼叫 grant_admin_privilege。
使用 REGISTER EXTRACT 之後,請將 ADD EXTRACT 與 INTEGRATED TRANLOG 選項搭配使用,以建立相同名稱的 Extract 群組。
CONTAINER (container[, ...])
對多租用戶容器資料庫 (CDB) 的一或多個可插拔資料庫 (容器) 清單套用註冊。以括弧內的逗號分隔清單指定一或多個可插拔資料庫,例如:CONTAINER (pdbeast, pdbwest)。列出的可插拔資料庫必須存在於此資料庫中。您也可以使用萬用字元 * 和 ? 來指定可插拔資料庫。例如,CONTAINER (pdb*)。
ADD CONTAINER (container[, ...])
將指定的可插拔資料庫新增至現有的 Extract 擷取組態。將一或多個可插拔資料庫指定為括號內的逗號分隔清單,或使用萬用字元 * 和 ? 來指定。例如:ADD CONTAINER (pdbeast, pdbwest)。以此選項發出 REGISTER EXTRACT 之前,請先停止 Extract 群組。
就 Oracle 而言,不支援在現有 Extract 的特定 SCN 新增容器。
DROP CONTAINER (container[, ...])
將指定的可插拔資料庫從現有的 Extract 擷取組態刪除。將一或多個可插拔資料庫指定為括號內的逗號分隔清單,或使用萬用字元 * 和 ? 來指定。例如,DROP CONTAINER (pdbeast, pdbwest)。
在執行 drop container 選項之後註冊 Extract,直到 Extract 啟動並從刪除的可插拔資料庫讀取確認的交易 (大於 Extract 檢查點 SCN) 為止,才會完全發生。然後,Extract 會完全刪除容器,並在關閉時顯示訊息。
執行含有此選項的 REGISTER EXTRACT 之前,請先停止 Extract 群組。
SCN system_change_number
註冊 Extract 以在過去的特定系統變更編號 (SCN) 開始擷取。若未指定此選項,擷取會從發出 REGISTER EXTRACT 的時間開始。指定的 SCN 必須對應至日誌檔中字典建置作業的開始 SCN。您可以發出下列查詢,從 CDB 層次的字典傾印尋找所有有效的 SCN 值:
SELECT first_change#
FROM v$archived_log
WHERE dictionary_begin = 'YES' AND
standby_dest = 'NO' AND
name IS NOT NULL AND
status = 'A';
不過,註冊每一 PDB Extract 時,此查詢無法運作。為了識別特定 PDB 可用說明傾印的開始 SCN,我們可以依照下列步驟進行:
-
連線至 PDB。
-
執行
show con_id命令以取得 PDB ID。 -
執行下列查詢,以遞減順序列出所有可用的說明傾印:
SELECT DATE_OF_BUILD, START_SCN FROM dba_logmnr_dictionary_buildlog WHERE CONTAINER_ID = PDB identifier ORDER BY DATE_OF_BUILD DESC;
單獨使用時,SCN 值就是日誌檔中字典建置作業的開始 SCN。
與 SHARE AUTOMATIC 或 SHARE extract_name 搭配使用時,指定的 SCN 為擷取階段作業的 start_scn,並具有下列限制:
-
應小於或等於目前的 SCN。
-
應大於現有擷取的最小 (第一個) SCN。
{SHARE [ AUTOMATIC | extract | NONE]}
適用於 Oracle。
註冊 Extract 以返回至含有指定 SCN 的現有 LogMiner 資料字典建置,以建立一個複製項。這可運用現有的字典建置來更快速地建立 Extract。
SHARE 無法用於 CDB。
支援下列命令:
REGISTER EXTRACT extract database SCN #### SHARE AUTOMATIC
REGISTER EXTRACT extract database SCN #### SHARE extract
REGISTER EXTRACT extract database SHARE NONE
REGISTER EXTRACT extract database SCN #### SHARE NONE
或者
REGISTER EXTRACT extract database SHARE NONE
REGISTER EXTRACT extract database SCN #### SHARE NONE
相反地,順流組態不支援下列命令:
REGISTER EXTRACT extract DATABASE SHARE AUTOMATIC
REGISTER EXTRACT extract DATABASE SHARE extract
AUTOMATIC
從現有最近的擷取複製。如果找不到合適的複製候選項目,則會建立新的建置。
extract
從所指定 Extract 關聯的擷取階段作業複製。如果無法複製,則會出現註冊未完成的錯誤。
NONE
不會複製或建立新的建置;此為預設選項。
在順流組態中,在註冊 Extract 時,SHARE 子句必須與 SCN 子句搭配使用。
PostgreSQL
此命令會在連線的來源資料庫中建立複製插槽,並確保在移動或移除複製插槽之前,PostgreSQL 資料庫不會永久清除交易日誌。必須先執行 REGISTER EXTRACT 命令,才能執行 ADD EXTRACT 命令。
您必須先使用 DBLOGIN USERIDALIAS 連線至 PostgreSQL 資料庫執行處理,才能註冊 Extract。
您也可以從 Oracle GoldenGate 管理服務 Web 介面註冊 Extract。如需詳細資訊,請參閱 Oracle GoldenGate Microservices Documentation 中的 Register Extract for PostgreSQL 。
您也可以使用 TRANLOGOPTIONS STREAMINGOPTIONS 參數設定 PostgreSQL 的串流選項,以便在複製啟動期間提供參數。如需詳細資訊,請參閱 TRANLOGOPTIONS 。
注意:從 Oracle GoldenGate 21c (21.3) 版本開始,不一定要輸入 database_name。
語法:
REGISTER EXTRACT group_name
或
REGISTER EXTRACT group_name PGPLUGINTYPE pgoutput;
注意:若要明確向 pgoutput Plugin 註冊,您必須在命令中指定 pgoutput Plugin 類型。如果您未選取 pgoutput Plugin,則會設定預設 Plugin 類型 test_decoding。
或
REGISTER EXTRACT group_name MIGRATE replication_slot_name
或
REGISTER EXTRACT group_name with DATABASE database_name
或
group_name
要註冊之 Extract 群組的名稱。請勿使用萬用字元。
MIGRATE replication_slot_name
適用於 PostgreSQL。
如果是 Oracle GoldenGate 升級,其中 Extract 處理作業的安裝目錄不同,則需要 REGISTER EXTRACT 與 MIGRATE 選項。
replication_slot_name 是資料庫中任何現有複製槽位的名稱。此指令會複製原始插槽 replication_slot_name 中存在的 LSN 資訊,來建立新的複寫插槽。所複製的複製插槽會從與原始複製插槽相同的 LSN 啟動。
注意:原始複製槽位必須存在於要建立新槽位的相同資料庫中。
PGPLUGINTYPE test_decoding | pgoutput
適用於 PostgreSQL。
已新增此選項,允許選取 PostgreSQL 的邏輯解碼外掛程式。您可以選取 test_decoding 或 pgoutput。依預設,「CDC 擷取」會使用 test_decoding 外掛程式類型來註冊。因此,如果您未將 pgplugintype 指定為 pgoutput,則會自動使用 test_decoding。
範例
REGISTER EXTRACT exte LOGRETENTION
REGISTER EXTRACT exte DATABASE
REGISTER EXTRACT exte DATABASE CONTAINER (pdbeast, pdbwest, pdbsouth)
REGISTER EXTRACT exte DATABASE ADD CONTAINER (pdbnorth)
REGISTER EXTRACT exte DATABASE DROP CONTAINER (pdbnorth)
REGISTER EXTRACT exte DATABASE SCN 136589
字典建置的開始 SCN 是 136589。
REGISTER EXTRACT exte DATABASE SCN 67000 SHARE extw
在這個例子中的有效開始 SCN 會是 67000;它不一定是目前的 SCN。
REGISTER EXTRACT exte DATABASE CONTAINER (pdbeast, pdbeast, pdbsouth) SCN 136589
對於外掛程式類型指定為 PGOUTOPUT 的 PostgreSQL:
REGISTER EXTRACT exte PGPLUGINTYPE pgoutput WITH DATABASE hr