本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 將 Oracle 分割資料表遷移至 PostgreSQL AWS DMS
由 Saurav Mishra (AWS) 和 Eduardo Valentim (AWS) 建立
環境:PoC 或試行 | 來源:Oracle 資料庫 | 目標:PostgreSQL 9.0 |
R 類型:重新架構 | 工作負載:Oracle | 技術:遷移;資料庫;儲存和備份 |
AWS 服務: AWS DMS |
Summary
此模式說明如何使用不支援原生分割的 AWS Database Migration Service (AWS DMS),加速將分割的資料表從 Oracle 載入 PostgreSQL。目標 PostgreSQL 資料庫可以安裝在 Amazon Elastic Compute Cloud (Amazon EC2) 上,也可以是 PostgreSQL 的 Amazon Relational Database Service (Amazon RDS) 或 Amazon Aurora Postgre SQL-Compatible Edition 資料庫執行個體。
上傳分割的資料表包含下列步驟:
建立類似於 Oracle 分割區資料表的父資料表,但不包含任何分割區。
建立子資料表,其將從您在步驟 1 中建立的父資料表繼承。
建立程序函數和觸發程序,以處理父資料表中的插入。
但是,由於每個插入都會觸發觸發,因此使用 的初始負載AWSDMS可能會非常慢。
為了加速從 Oracle 到 PostgreSQL 9.0 的初始載入,此模式會為每個分割區建立個別AWSDMS任務,並載入對應的子資料表。然後,您可以在切換期間建立觸發程序。
PostgreSQL 第 10 版支援原生分割區。不過,在某些情況下,您可能會決定使用繼承的分割區。如需詳細資訊,請參閱其他資訊一節。
先決條件和限制
先決條件
作用中AWS帳戶
具有分割資料表的來源 Oracle 資料庫
PostgreSQL 資料庫位於 AWS
產品版本
PostgreSQL 9.0
架構
來源技術堆疊
Oracle 中的分割資料表
目標技術堆疊
PostgreSQL 中的分割資料表 (在 Amazon EC2、Amazon RDS for Postgre SQL或 Aurora Postgre 上SQL)
目標架構
工具
AWS Database Migration Service (AWS DMS) 可協助您將資料存放區遷移至AWS雲端,或在雲端和內部部署設定的組合之間遷移。
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
在 Postgre 中建立資料表SQL。 | 在 PostgreSQL 中建立父資料表和對應的子資料表,其中包含分割區所需的檢查條件。 | DBA |
為每個分割區建立AWSDMS任務。 | 在AWSDMS任務中包含分割區的篩選條件。將分割區對應至對應的 PostgreSQL 子資料表。 | DBA |
使用全負載執行AWSDMS任務,並變更資料擷取 (CDC)。 | 請確定 | DBA |
任務 | 描述 | 所需的技能 |
---|---|---|
停止複寫任務。 | 在您停止任務之前,請確認來源和目的地是同步的。 | DBA |
在父資料表上建立觸發程序。 | 由於父資料表會收到所有插入和更新命令,因此請建立觸發程序,根據分割條件將這些命令路由至對應的子資料表。 | DBA |
相關資源
其他資訊
雖然 PostgreSQL 第 10 版支援原生分割區,但您可能會決定將繼承的分割區用於下列使用案例:
分割會強制執行規則,即所有分割區都必須具有與父分割區相同的資料欄集,但資料表繼承支援具有額外資料欄的子項。
資料表繼承支援多個繼承。
宣告式分割僅支援清單和範圍分割。使用資料表繼承,您可以視需要分割資料。不過,如果限制排除無法有效刪除分割區,則查詢效能會受到影響。
某些操作在使用宣告式分割時,比使用資料表繼承時需要更強的鎖定。例如,在分割資料表中新增或移除分割區時,需要在父資料表上
ACCESS EXCLUSIVE
鎖定,而SHARE UPDATE EXCLUSIVE
鎖定足以進行一般繼承。
使用個別任務分割區時,如果有任何AWSDMS驗證問題,您也可以重新載入分割區。為了提升效能和複寫控制,請在個別複寫執行個體上執行任務。