我想將資料從 Oracle 來源資料庫遷移到適用於 PostgreSQL 的 Amazon Relation Database Service (Amazon RDS) 目標資料庫。使用 AWS Database Migration Services (AWS DMS) 將資料從 Oracle 遷移到 PostgreSQL 時,可以遵循哪些最佳實務?
解決方案
從 Oracle 遷移到 PostgreSQL 資料庫的最佳實務
- 在開始遷移資料之前,請先使用必要先決條件設定 Oracle 來源資料庫。
- 在任何其他 QA/DEV 資料庫環境上使用相同的生產數據來測試遷移。然後,您可以根據結果繼續進行生產遷移。進行測試和生產遷移時,請務必使用相同的 AWS DMS 組態。
- 使用足夠的 CPU、記憶體、儲存器和 IOPS 佈建 AWS DMS 執行個體,以避免在遷移期間發生資源爭用。如需詳細資訊,請參閱為您的遷移選擇正確的 AWS DMS 複寫執行個體和為複寫執行個體選擇最佳大小。如需升級執行個體相關成本的詳細資訊,請參閱 AWS 資料庫遷移服務定價。以相同的考量佈建目標 Amazon RDS 執行個體。
- 如果來源資料庫包含許多資料表且工作負載繁重,請將資料表分割為多個 AWS DMS 任務。根據來源大小、應用程式流量模式和 LOB 資料欄的存在來分割資料表。如果資料表在來源上有很多 LOB 資料欄,且具有高寫入流量,請為資料表建立單獨任務。
- 使用平行完全載入來縮短繁重工作負載的遷移時間。如需詳細資訊,請參閱針對選取的資料表、檢視表和集合使用平行載入。
- 在遷移期間,請關閉目標資料庫上的備份和資料庫特定日誌 (如二進位、一般、稽核及 PG 查詢日誌)。重新開啟以排解任何問題。
- 在遷移期間,關閉目標資料庫上的觸發器、程序、其他 Cron 工作和事件排程器。
- 執行遷移時,請避免在目標 RDS 資料庫上使用多可用區概念。
- 執行遷移時,請避免將任何其他外部用戶端流量套用至目標。
- 在開始複寫的變更資料擷取 (CDC) 階段前,先在目標資料庫上新增任何次要索引。
- 遷移前,請先關閉目標資料庫上的外部索引鍵。使用目標額外連線屬性 (ECA)/端點設定來執行此作業。如需詳細資訊,請參閱使用 PostgreSQL 資料庫做為 AWS Database Migration Service 的目標。
afterConnectScript=SET session_replication_role='replica'
-
使用最佳化 LOB 設定 (例如限制或內嵌 LOB) 來進行遷移。
-
使用批次套用 CDC 方法前,請先使用預設事務型 CDC 套用測試工作負載。如需詳細資訊,請參閱如何使用 DMS 批次套用功能來提高 CDC 複寫效能?
-
增加目標端點設定中的 executeTimeout 值。這個值會設定 PostgreSQL 執行個體的用戶端陳述式逾時。預設值為 60 秒。
-
如果您使用 ID 欄的序列,請將目標上的值設定為高於來源上的值。請確定目標值在遷移切換日期仍高於來源值。這種方法可以避免遷移後發生序列 ID 衝突。
-
若要增強完全載入階段的效能,請使用如下設定:
- MaxFullLoadSubTasks - 預設值為 8,最大值為 49。此設定十分實用,但請確定您有足夠的可用資源。
- CommitRate - 使用此設定表示可以一起傳輸的最大記錄數。
- 對於全負載階段中的完整 LOB 模式 - 來源的 N 個資料列 = N 個插入 + 目標中的 N 個更新 = N 個事件,其中 CommitRate = N。
- 對於全負載階段中的受限 LOB 模式 - 將 N 個資料列寫入 CSV 檔案,其中 CommitRate = N)。
- 如果是大型資料表,請增加 CSV 檔案的大小。這是由目標端點設定中的 maxFileSize 控制。
將 Oracle 資料庫遷移到 PostgreSQL 資料庫
注意:繼續執行這些步驟之前,請按照先決條件中的說明準備您的來源 Oracle 資料庫。
1. 在本地電腦上安裝 SQL 驅動程式和 AWS Schema Conversion Tool (AWS SCT)。
2. 設定您的 Oracle 來源和 PostgreSQL 目標資料庫。
3. 使用 AWS SCT 將 Oracle 架構轉換成 PostgreSQL。
4. 建立 AWS DMS 複寫執行個體。
5. 建立您的 AWS DMS 來源和目標端點。
6. 建立並執行您的 AWS DMS 任務。
7. 在資料表映射下,套用轉換規則。新增規則動作參數,其值為轉換小寫。Oracle 引擎在預設情況下會以大寫形式儲存所有物件名稱,但 PostgreSQL 會以小寫形式儲存所有物件名稱。
8. 建立完整負載和 CDC AWS DMS 任務以複寫您的資料。使用 StopTaskCachedChangesNotApplied,在完整負載階段完成時停止任務。現在,建立次要索引。
9. 切換至 PostgreSQL。
相關資訊
將 Oracle 資料庫遷移至 PostgreSQL
如何將 Oracle 資料庫遷移至 PostgreSQL