本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS DMS 將甲骨文分區資料表遷移到 PostgreSQL
創建者:索拉夫密什拉(AWS)和愛德華多·瓦倫蒂姆(AWS)
環境:PoC 或試點 | 來源:甲骨文數據庫 | 目標:PostgreSQL |
R 型:重新建築 | 工作量:甲骨文 | 技術:移轉、資料庫、儲存與備份 |
AWS 服務:AWS DMS |
Summary
此模式說明如何使用不支援原生分割的 AWS Database Migration Service (AWS DMS),加快將分區資料表從 Oracle 載入 PostgreSQL 的速度。目標 PostgreSQL 資料庫可以安裝在亞馬遜彈性運算雲端 (Amazon EC2) 上,也可以是適用於 PostgreSQL 的 Amazon Relational Database Service 服務 (Amazon RDS) 或與 Amazon Aurora PostgreSQL 相容的版本資料庫執行個體。
上傳分區資料表包括下列步驟:
建立類似 Oracle 分割區表格的父項表格,但不要包含任何分割區。
建立將繼承您在步驟 1 中建立的父資料表的子資料表。
建立程序函數和觸發程序,以處理父資料表中的插入。
但是,由於每次插入都會觸發觸發,因此使用 AWS DMS 的初始負載可能會非常緩慢。
為了加快從 Oracle 到 PostgreSQL 9.0 的初始載入速度,此模式會為每個分割區建立單獨的 AWS DMS 任務,並載入對應的子資料表。然後,您可以在切換期間建立觸發器。
第 10 PostgreSQL 援原生磁碟分割。但是,在某些情況下,您可能會決定使用繼承的分區。如需詳細資訊,請參閱其他資訊一節。
先決條件和限制
先決條件
有效的 AWS 帳戶
具有分區資料表的來源 Oracle 資料庫
AWS PostgreSQL 資料庫
產品版本
PostgreSQL
架構
源, 技術, 堆棧
甲骨文中的分區資料表
目標技術堆疊
PostgreSQL 中的分區資料表 (在亞馬 Amazon EC2、亞馬遜 RDS 版或 Aurora)
目標架構
![Oracle 中的分區資料表資料會移至每個分割區的 AWS DMS 任務,然後移至 PostgreSQL。](images/pattern-img/7fa2898e-3308-436a-aec8-ab6f680d7bac/images/1b9742ea-a13d-434c-83a7-56686cf76ea0.png)
工具
AWS Database Migration Service (AWS DMS) 可協助您將資料存放區遷移到 AWS 雲端,或在雲端和現場部署設定的組合之間遷移資料存放區。
史诗
任務 | 描述 | 所需技能 |
---|---|---|
在 PostgreSQL 中創建表。 | 使用分區所需的檢查條件在 PostgreSQL 中創建父表和對應的子表。 | DBA |
為每個分割區建立 AWS DMS 任務。 | 在 AWS DMS 任務中包含分區的篩選條件。將磁碟分割對應至對應的 PostgreSQL 子資料表。 | DBA |
使用全負載和變更資料擷取 (CDC) 執行 AWS DMS 任務。 | 請確定 | DBA |
任務 | 描述 | 所需技能 |
---|---|---|
停止複寫工作。 | 停止工作之前,請確認來源和目的地是否同步。 | DBA |
在父資料表上建立觸發程式。 | 由於父資料表會接收所有的插入和更新命令,因此請建立觸發程序,根據分割條件將這些命令路由到相應的子資料表。 | DBA |
相關資源
其他資訊
雖然 PostgreSQL 版本 10 支援原生磁碟分割,但您可能會決定在下列使用案例中使用繼承的磁碟分割:
分區強制執行一項規則,即所有分區必須具有與父級相同的一組列,但是表繼承支持具有額外列的子級。
資料表繼承支援多重繼承。
宣告式磁碟分割僅支援清單和範圍分割。使用表繼承,您可以根據需要劃分數據。但是,如果條件約束排除無法有效地修剪分割區,則查詢效能將受到影響。
使用宣告式磁碟分割時,某些作業需要比使用資料表繼承時更強的鎖定。例如,在分區資料表中新增或移除分區資料表時,需要
ACCESS EXCLUSIVE
鎖定父資料表,而SHARE UPDATE EXCLUSIVE
鎖定則足以進行一般繼承。
當您使用不同的任務分割區時,如果發生任何 AWS DMS 驗證問題,也可以重新載入分區。為了獲得更好的效能和複寫控制,請在不同的複寫執行個體上執行