本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Oracle 端點疑難排解
本節包含 Oracle 特定的複寫案例。
來源讀取已暫停
AWS DMS 在下列情況下, 會暫停從 Oracle 來源讀取。此行為是依據設計。您可以使用任務日誌來調查造成此問題的原因。在任務日誌中尋找類似下列內容的訊息。如需使用任務日誌的相關資訊,請參閱檢視和管理 DMS AWS 任務日誌。
SORTER 訊息:這表示 DMS 正在快取複寫執行個體上的交易。如需詳細資訊,請參閱下列 任務日誌中的 SORTER 訊息。
偵錯任務日誌:如果 DMS 中斷讀取程序,任務會重複將下列訊息寫入偵錯任務日誌,而不變更內容欄位或時間戳記:
Binary Reader:
[SOURCE_CAPTURE ]T: Produce CTI event: context '00000020.f23ec6e5.00000002.000a.00.0000:190805.3477731.16' xid [00000000001e0018] timestamp '2021-07-19 06:57:55' thread 2 (oradcdc_oralog.c:817)
Logminer:
[SOURCE_CAPTURE ]T: Produce INSERT event: object id 1309826 context '000000000F2CECAA010000010005A8F500000275016C0000000000000F2CEC58' xid [000014e06411d996] timestamp '2021-08-12 09:20:32' thread 1 (oracdc_reader.c:2269)
AWS DMS 會針對每個新的重做或封存日誌操作記錄下列訊息。
00007298: 2021-08-13T22:00:34 [SOURCE_CAPTURE ]I: Start processing archived Redo log sequence 14850 thread 2 name XXXXX/XXXXX/ARCHIVELOG/2021_08_14/thread_2_seq_14850.22977.1080547209 (oradcdc_redo.c:754)
如果來源有新的重做或封存日誌操作,且 AWS DMS 沒有將這些訊息寫入日誌,這表示任務不會處理事件。
高還原產生
如果任務正在處理還原或封存日誌,但來源延時仍然很嚴重,請嘗試找出還原日誌產生率和產生模式。如果產生的還原日誌層級很高,這會增加來源延時,因為任務會讀取所有還原和封存日誌,以擷取與複寫資料表相關的變更。
若要判斷還原產生率,請使用下列查詢。
每日還原產生率:
select trunc(COMPLETION_TIME,'DD') Day, thread#, round(sum(BLOCKS*BLOCK_SIZE)/1024/1024/1024) GB, count(*) Archives_Generated from v$archived_log where completion_time > sysdate- 1 group by trunc(COMPLETION_TIME,'DD'),thread# order by 1;
每小時還原產生率:
Alter session set nls_date_format = 'DD-MON-YYYY HH24:MI:SS'; select trunc(COMPLETION_TIME,'HH') Hour,thread# , round(sum(BLOCKS*BLOCK_SIZE)/1024/1024) "REDO PER HOUR (MB)", count(*) Archives from v$archived_log where completion_time > sysdate- 1 group by trunc(COMPLETION_TIME,'HH'),thread# order by 1 ;
若要針對此案例中的延時進行疑難排解,請檢查下列項目:
檢查複寫的網路頻寬和單一執行緒效能,以確保基礎網路可支援來源還原產生率。如需網路頻寬如何影響複寫效能的相關資訊,請參閱先前的網路速度與頻寬。
確認補充記錄的設定是否正確。避免對來源進行額外的記錄,例如在資料表的所有資料欄上啟用記錄功能。如需設定補充記錄的相關資訊,請參閱設定補充記錄。
確認您正在使用正確的 API 讀取還原或封存日誌。您可以使用 Oracle LogMiner 或 AWS DMS Binary Reader。LogMiner 讀取線上還原日誌和封存還原日誌檔時,Binary Reader 會直接讀取並剖析原始還原日誌檔。因此 Binary Reader 的效能更佳。如果還原日誌產生每小時超過 10 GB,建議您使用 Binary Reader。如需詳細資訊,請參閱使用 Oracle LogMiner 或 AWS DMS Binary Reader for CDC。
檢查您是否將
ArchivedLogsOnly
設為Y
。如果已設定此端點設定,則 AWS DMS 會從封存的還原日誌讀取。這會增加來源延遲,因為 會 AWS DMS 等待線上重做日誌封存後再讀取。如需詳細資訊,請參閱 ArchivedLogsOnly。如果 Oracle 來源使用 Automatic Storage Management (ASM),請參閱使用 Oracle 做為 的來源時,在 Oracle ASM 上存放 REDO AWS DMS 以取得如何正確設定資料存放區的相關資訊。您也可以使用
asmUsePLSQLArray
額外的連線屬性 (ECA),進一步最佳化讀取效能。如需使用asmUsePLSQLArray
的相關資訊,請參閱 使用 Oracle 做為 來源時的端點設定 AWS DMS。