DELETE TRANDATA
請使用 DELETE TRANDATA 來執行下列其中一項作業:
-
Db2 LUW 和 Db2 z/OS:將表格變更為
DATA CAPTURE NONE. -
Oracle:停用補充日誌記錄。
-
SQL Server:停止表格的延伸日誌記錄。
-
PostgreSQL:將表格的
REPLICA IDENTITY變更為NOTHING。
依預設,此指令會嘗試移除 Oracle GoldenGate 所使用之金鑰欄的補充記錄 (可以是主鍵、唯一鍵、KEYCOLS 欄或所有欄) 以及排程欄。排程資料欄是指主要索引鍵、所有的唯一索引鍵,以及所有外來索引鍵資料欄。若要刪除 Oracle GoldenGate 金鑰資料欄 (而非排程資料欄) 的記錄,請包含 NOSCHEDULINGCOLS 選項與 DELETE TRANDATA。如果 ADD TRANDATA 搭配 ALLCOLS 選項一起發出,請使用 DELETE TRANDATA 搭配 ALLCOLS 選項來移除所有資料欄 (包括 Oracle GoldenGate 索引鍵資料欄) 的補充日誌記錄。在停用或移除所有表格層級補充日誌記錄之後,DELETE TRANDATA 將會停用表格的邏輯複寫。Oracle 19c 和更新版本支援此行為。此外,如果 DELETE TRANDATA 作業移除表格上最後一個補充日誌群組,則也會執行 ALTER TABLE owner.table DISABLE LOGICAL REPLICATION。
必須執行 ADD TRANDATA table_name 命令,才能在執行 DELETE TRANDATA 之後啟用邏輯複製。
注意:您無法使用 ADD SCHEMATRANDATA 啟用邏輯複製。{:.infoboxnote}
請先使用 DBLOGIN 命令來建立資料庫連線,再使用此命令。以此命令指定的使用者必須具備與 ADD TRANDATA 所需的相同權限。
語法
DELETE TRANDATA [container.]owner.table [NOSCHEDULINGCOLS | ALLCOLS]
[container.]owner.table
可插拔資料庫 (如果這是 Oracle 多租用戶容器資料庫)、擁有者以及表格或檔案的名稱。所有名稱元件均可使用萬用字元。
NOSCHEDULINGCOLS
讓命令不會移除所指定表格排程資料欄的補充日誌記錄。排程資料欄是指表格的主索引鍵、所有的唯一索引鍵,以及所有外來索引鍵資料欄。
ALLCOLS
移除所指定表格之全部資料欄的補充日誌記錄。
範例
DELETE TRANDATA hr.employees
DELETE TRANDATA hr.reg*
DELETE TRANDATA hr.jobs ALLCOLS