本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將虛擬產生的資料欄從 Oracle 遷移至 PostgreSQL
由 Veeranjaneyulu Grandhi (AWS)、Rajesh Madiwale (AWS) 和 Ramesh Pathuri (AWS) 建立
環境:生產 | 來源:Oracle 資料庫 | 目標:Amazon RDS for PostgreSQL 或 Aurora Postgre SQL– 相容 |
R 類型:重新架構 | 工作負載:Oracle | 技術:遷移;資料庫 |
AWS 服務:Amazon Aurora;AmazonRDS; AWS DMS |
Summary
在 11 版及更早版本中,PostgreSQL 不提供直接等同於 Oracle 虛擬資料欄的功能。在從 Oracle 資料庫遷移至 PostgreSQL 第 11 版或更早版本時,處理虛擬產生的資料欄是困難的,原因有兩個:
遷移期間看不到虛擬資料欄。
PostgreSQL 不支援第 12 版之前的
generate
表達式。
不過,有模擬類似功能的解決方法。當您使用 AWS Database Migration Service (AWS DMS) 將資料從 Oracle Database 遷移至 PostgreSQL 第 11 版及更早版本時,您可以使用觸發函數在虛擬產生的欄中填入值。此模式提供 Oracle 資料庫和 PostgreSQL 程式碼的範例,您可以用於此目的。在 上AWS,您可以將 Amazon Relational Database Service (Amazon RDS) 用於 PostgreSQL,或將 Amazon Aurora Postgre SQL相容版本用於 PostgreSQL 資料庫。
從 PostgreSQL 第 12 版開始,支援產生的資料欄。產生的資料欄可以快速從其他資料欄值計算,也可以計算和儲存。PostgreSQL 產生的資料欄
先決條件和限制
先決條件
作用中AWS帳戶
來源 Oracle 資料庫
Target PostgreSQL 資料庫 (Amazon RDS for PostgreSQL 或 Aurora Postgre SQL- 相容)
PL/pgSQL
編碼專業知識
限制
僅適用於第 12 版之前的 PostgreSQL 版本。
適用於 Oracle 資料庫 11g 版或更新版本。
資料遷移工具不支援虛擬資料欄。
僅適用於相同資料表中定義的資料欄。
如果虛擬產生的資料欄參考確定性的使用者定義函數,則無法用作分割金鑰資料欄。
表達式的輸出必須是純量值。它無法傳回 Oracle 提供的資料類型、使用者定義的類型
LOB
、 或LONG RAW
。根據虛擬資料欄定義的索引相當於 Postgre 中的以函數為基礎的索引SQL。
必須收集資料表統計資料。
工具
pgAdmin 4
是 Postgre 的開放原始碼管理工具SQL。此工具提供圖形界面,可簡化資料庫物件的建立、維護和使用。 Oracle SQL 開發人員
是免費的整合開發環境,可在傳統和雲端部署的 SQL Oracle 資料庫中使用 。
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
建立來源 Oracle 資料庫資料表。 | 在 Oracle 資料庫中,使用下列陳述式建立具有虛擬產生資料欄的資料表。
在此來源資料表中, | DBA、應用程式開發人員 |
在 上建立目標 PostgreSQL 資料表AWS。 | AWS 使用下列陳述式在 上建立 PostgreSQL 資料表。
在此資料表中,資料 | DBA、應用程式開發人員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 PostgreSQL 觸發程序。 | 在 Postgre SQL中,建立觸發程序。
| DBA、應用程式開發人員 |
建立 PostgreSQL 觸發函數。 | 在 Postgre 中SQL,為觸發程序建立函數。此函數會填入由應用程式或 AWS 插入或更新的虛擬資料欄DMS,並驗證資料。
| DBA、應用程式開發人員 |
相關資源
AWS 資料庫遷移服務入門 (AWS DMS 文件)
使用 Oracle 資料庫作為 AWS( 文件) 的來源 DMS AWS DMS
Postgre 中產生的資料欄SQL
(PostgreSQL 文件) 觸發函數
SQL(後備文件) Oracle 資料庫中的虛擬資料欄
(Oracle 文件)