本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將虛擬生成的列從甲骨文遷移到 PostgreSQL
創建者:韋蘭賈納魯格蘭希(AWS),拉傑什·馬蒂瓦勒(AWS)和拉梅什帕瑟里(AWS)
環境:生產 | 來源:甲骨文數據庫 | 目標:Amazon RDS for PostgreSQL 或 Aurora 兼容 |
R 型:重新建築 | 工作量:甲骨文 | 技術:移轉;資料庫 |
AWS 服務:Amazon Aurora; Amazon RDS; AWS DMS |
Summary
在版本 11 及更早版本中,PostgreSQL 不提供直接等同於甲骨文虛擬列的功能。從 Oracle 資料庫遷移到 PostgreSQL 版本 11 或更早版本時,處理虛擬產生的資料行很困難,原因有兩個:
移轉期間不會顯示虛擬資料行。
版本 12 之前的運算式不支援此
generate
運算式。
但是,有一些解決方法可以模擬類似的功能。當您使用 AWS Database Migration Service (AWS DMS) 將資料從 Oracle 資料庫遷移到 PostgreSQL 版本 11 及更早版本時,您可以使用觸發函數將值填入虛擬產生的資料欄中。這種模式提供了甲骨文數據庫和 PostgreSQL 代碼的例子,你可以使用這個目的。在 AWS 上,您可以使用 Amazon Relational Database Service 服務 (Amazon RDS) 適用於 PostgreSQL 資料庫或 Amazon Aurora PostgreSQL 相容版本。
從第 12 版開始,支援產生的資料行。產生的欄可以從其他欄值即時計算,也可以計算和儲存。PostgreSQL 產生的資料行
先決條件和限制
先決條件
有效的 AWS 帳戶
來源甲骨文資料庫
目標資料庫 (在亞馬遜 RDS 上適用於 PostgreSQL 或 Aurora 相容)
限制
僅適用於 PostgreSQL 之前的版本。
適用於「Oracle 資料庫」版本 11g 或更新版本。
資料移轉工具不支援虛擬欄。
僅適用於在同一個表格中定義的欄。
如果虛擬產生的資料行參照具決定性的使用者定義函數,則無法將其用作分割索引鍵資料欄。
運算式的輸出必須是純量值。它不能返回一個 Oracle 提供的數據類型,一個用戶定義的類型
LOB
,或。LONG RAW
針對虛擬資料行定義的索引等同於 PostgreSQL 中以函數為基礎的索引。
必須收集表統計信息。
工具
pgAdmin 4
是一個適用於 PostgreSQL 的開源管理工具。此工具提供圖形介面,可簡化資料庫物件的建立、維護和使用。 Oracle SQL 開發人員
是一個免費的整合式開發環境,可在傳統和雲端部署中使用 Oracle 資料庫中的 SQL。
史诗
任務 | 描述 | 所需技能 |
---|---|---|
建立來源「Oracle 資料庫」表格。 | 在「Oracle 資料庫」中,使用下列陳述式建立含有虛擬產生資料行的資料表。
在此來源表格中,資料行中的資 | DBA, 應用程式開發人員 |
在 AWS 上建立目標資料表。 | 使用下列陳述式在 AWS 上建立 PostgreSQL 資料表。
在此表中,該 | DBA, 應用程式開發人員 |
任務 | 描述 | 所需技能 |
---|---|---|
建立一個 PostgreSQL 程序。 | 在 PostgreSQL 中,創建一個觸發器。
| DBA, 應用程式開發人員 |
創建一個觸 PostgreSQL 函數。 | 在 PostgreSQL 中,為觸發器創建一個函數。此函數會填入由應用程式或 AWS DMS 插入或更新的虛擬資料欄,並驗證資料。
| DBA, 應用程式開發人員 |
相關資源
開始使用 AWS Database Migration Service (AWS DMS 文件)
在 PostgreSQL 中產生的資料欄
(文件) 觸發函數
(PostgreSQL 集) Oracle 資料庫中的虛擬資料欄
(Oracle 文件集)