使用甲骨文從甲骨文數據庫遷移到 Amazon RDS AWS Schema Conversion Tool - AWS Schema Conversion Tool

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用甲骨文從甲骨文數據庫遷移到 Amazon RDS AWS Schema Conversion Tool

將 Oracle 模式和代碼遷移到 Amazon RDS 適用於甲骨文時需要考慮的一些事項:

  • AWS SCT 可以將目錄物件新增至物件樹狀結構。目錄物件是邏輯結構,每個物件都代表伺服器檔案系統上的實體目錄。您可以將目錄物件與封裝 (例如 DBMS _ LOB、UTL _ FILE、DBMS FILE _ TRANSFER、公用DATAPUMP程式等) 搭配使用。

  • AWS SCT 支援將 Oracle 表空間轉換RDS為適用於 Oracle 資料庫執行個體的 Amazon。Oracle 將資料以邏輯方式存放在資料表空間中,並以實體方式存放在與相應資料表空間關聯的資料檔案中。在 Oracle 中,您可以使用資料檔案名稱來建立資料表空間。Amazon 僅RDS支援資料檔案、日誌檔和控制檔案的 Oracle 受管檔案 (OMF)。 AWS SCT 在轉換期間建立所需的資料檔案。

  • AWS SCT 可以轉換伺服器層級的角色和權限。Oracle 資料庫引擎是使用以角色為基礎的安全性。角色是一組權限,您可以用來授與給使用者或撤銷。Amazon RDS 中的預先定義角色 (稱為DBA) 通常允許 Oracle 資料庫引擎上的所有管理權限。下列權限不適用於使用 Oracle 引擎的 Amazon RDS 資料庫執行個體上的DBA角色:

    • 更改資料庫

    • 更改系統

    • 建立任何目錄

    • 授予任何權限

    • 授予任何角色

    • 建立外部工作

    您可以將所有其他權限授與 Amazon RDS 適用於 Oracle 使用者角色的權限,包括進階篩選和欄權限。

  • AWS SCT 支援將 Oracle 任務轉換RDS為可在 Amazon 版 Oracle 上執行的任務。轉換有幾個限制,包括下列項目:

    • 不支援可執行的任務。

    • 不支援使用資ANYDATA料類型作為引數的排程工作。

  • 「Oracle 實際應用程式叢集」(RAC)「一個節點」是 Oracle 資料庫第 11g 版本 2 所引入之「Oracle 資料庫企業版」的選項。Amazon RDS 的甲骨文不支持該RAC功能。如需高可用性,請使用 Amazon RDS 異地同步備份。

    在異地同步備份部署中,Amazon RDS 會在不同的可用區域自動佈建和維護同步備用複本。主資料庫執行個體會在待命複本的可用區域間進行同步複製。此功能可提供資料備援,排除 I/O 凍結,並降低系統備份時的延遲遽增。

  • Oracle 空間提供了一個SQL結構描述和功能,可以促進 Oracle 數據庫中空間數據集合的存儲,檢索,更新和查詢。Oracle Locator 提供支援網際網路與無線服務型應用程式及合作夥伴GIS解決方案通常所需的功能。Oracle Locator 是功能有限的 Oracle Spatial 子集。

    若要使用「Oracle 空間」和「Oracle 定位器」功能,請將SPATIAL選LOCATOR項或選項 (互斥) 新增至資料庫執行個體的選項群組。

    在RDS適用於 Oracle 資料庫執行個體的 Amazon 上使用 Oracle 空間和 Oracle 定位器有一些先決條件:

    • 執行個體應該使用甲骨文企業版 12.1.0.2.v6 或更高版本,或是 11.2.0.4.v10 或更高版本。

    • 執行個體應位於虛擬私有雲 (VPC) 內。

    • 執行個體應為可支援 Oracle 功能的資料庫執行個體類別。例如,db.m1.small、db.t1.micro、db.t2.micro 或 db.t2.small 資料庫執行個體類別不支援 Oracle Spatial。如需詳細資訊,請參閱 Oracle 的資料庫執行個體類別支援

    • 執行個體必須啟用 Auto Minor Version Upgrade (自動次要版本升級) 選項。PSU如果存在分數達到 9 CVSS 分以上的安全漏洞或其他已宣布的安全漏洞,Amazon 將您的資料庫執行個體RDS更新為最新的 Oracle。如需詳細資訊,請參閱

      Oracle 資料庫執行個體的設定值

    • 如果您的資料庫執行個體版本為 11.2.0.4.v10 或更新版本,則必須安裝選項。XMLDB如需詳細資訊,請參閱

      甲骨文XML數據庫

    • 您應具有 Oracle 提供的 Oracle Spatial 授權。如需詳細資訊,請參閱 Oracle 文件中的 Oracle Spatial 和 Graph

  • Data Guard 包含在 Oracle Database Enterprise Edition 中。如需高可用性,請使用 Amazon RDS 異地同步備份功能。

    在異地同步備份部署中,Amazon RDS 會在不同的可用區域自動佈建和維護同步備用複本。主資料庫執行個體會在待命複本的可用區域間進行同步複製。此功能可提供資料備援,排除 I/O 凍結,並降低系統備份時的延遲遽增。

  • AWS SCT 在甲骨文DBMS遷移到 Amazon 時,支持轉換 Oracle SCHEDULER RDS 對象。 AWS SCT 評估報告會指出排程物件是否可以轉換。如需在 Amazon 搭配使用排程物件的詳細資訊RDS,請參閱 Amazon RDS 文件。

  • 對於甲骨文到 Amazon RDS 進行 Oracle 的轉換,支持數據庫鏈接。資料庫連結為某一資料庫內的結構描述物件,讓您能夠存取另一個資料庫上的物件。另一個資料庫不需要是 Oracle 資料庫。不過,若要存取非 Oracle 資料庫,您必須使用 Oracle 異質服務。

    建立資料庫連結之後,您可以使用SQL陳述式中的連結來參照其他資料庫中的資料表、檢視表和 PL/ SQL 物件。若要使用資料庫連結,請附加@dblink至資料表、檢視或 PL/ SQL 物件名稱。您可以使用陳述式在其他資料庫中查詢資料表或檢視SELECT表。如需有關使用 Oracle 資料庫連結的詳細資訊,請參閱 Oracle 文件

    如需有關在 Amazon 使用資料庫連結的詳細資訊RDS,請參閱 Amazon RDS 文件

  • AWS SCT 評估報告會提供轉換的伺服器量度。這類有關 Oracle 執行個體的各項指標包括:

    • 目標資料庫執行個體的運算和記憶體容量。

    • 不支援的 Oracle 功能,例如 Amazon RDS 不支援的實際應用程式叢集。

    • 磁碟讀寫負載。

    • 磁碟輸送量總平均。

    • 伺服器資訊,如:伺服器名稱、作業系統、主機名稱和字元集。

將 Oracle 作為目標的權限 RDS

若要移轉到適用RDS於 Oracle 的 Amazon,請建立特權資料庫使用者。您可以使用下面的代碼示例。

CREATE USER user_name IDENTIFIED BY your_password; -- System privileges GRANT DROP ANY CUBE BUILD PROCESS TO user_name; GRANT ALTER ANY CUBE TO user_name; GRANT CREATE ANY CUBE DIMENSION TO user_name; GRANT CREATE ANY ASSEMBLY TO user_name; GRANT ALTER ANY RULE TO user_name; GRANT SELECT ANY DICTIONARY TO user_name; GRANT ALTER ANY DIMENSION TO user_name; GRANT CREATE ANY DIMENSION TO user_name; GRANT ALTER ANY TYPE TO user_name; GRANT DROP ANY TRIGGER TO user_name; GRANT CREATE ANY VIEW TO user_name; GRANT ALTER ANY CUBE BUILD PROCESS TO user_name; GRANT CREATE ANY CREDENTIAL TO user_name; GRANT DROP ANY CUBE DIMENSION TO user_name; GRANT DROP ANY ASSEMBLY TO user_name; GRANT DROP ANY PROCEDURE TO user_name; GRANT ALTER ANY PROCEDURE TO user_name; GRANT ALTER ANY SQL TRANSLATION PROFILE TO user_name; GRANT DROP ANY MEASURE FOLDER TO user_name; GRANT CREATE ANY MEASURE FOLDER TO user_name; GRANT DROP ANY CUBE TO user_name; GRANT DROP ANY MINING MODEL TO user_name; GRANT CREATE ANY MINING MODEL TO user_name; GRANT DROP ANY EDITION TO user_name; GRANT CREATE ANY EVALUATION CONTEXT TO user_name; GRANT DROP ANY DIMENSION TO user_name; GRANT ALTER ANY INDEXTYPE TO user_name; GRANT DROP ANY TYPE TO user_name; GRANT CREATE ANY PROCEDURE TO user_name; GRANT CREATE ANY SQL TRANSLATION PROFILE TO user_name; GRANT CREATE ANY CUBE TO user_name; GRANT COMMENT ANY MINING MODEL TO user_name; GRANT ALTER ANY MINING MODEL TO user_name; GRANT DROP ANY SQL PROFILE TO user_name; GRANT CREATE ANY JOB TO user_name; GRANT DROP ANY EVALUATION CONTEXT TO user_name; GRANT ALTER ANY EVALUATION CONTEXT TO user_name; GRANT CREATE ANY INDEXTYPE TO user_name; GRANT CREATE ANY OPERATOR TO user_name; GRANT CREATE ANY TRIGGER TO user_name; GRANT DROP ANY ROLE TO user_name; GRANT DROP ANY SEQUENCE TO user_name; GRANT DROP ANY CLUSTER TO user_name; GRANT DROP ANY SQL TRANSLATION PROFILE TO user_name; GRANT ALTER ANY ASSEMBLY TO user_name; GRANT CREATE ANY RULE SET TO user_name; GRANT ALTER ANY OUTLINE TO user_name; GRANT UNDER ANY TYPE TO user_name; GRANT CREATE ANY TYPE TO user_name; GRANT DROP ANY MATERIALIZED VIEW TO user_name; GRANT ALTER ANY ROLE TO user_name; GRANT DROP ANY VIEW TO user_name; GRANT ALTER ANY INDEX TO user_name; GRANT COMMENT ANY TABLE TO user_name; GRANT CREATE ANY TABLE TO user_name; GRANT CREATE USER TO user_name; GRANT DROP ANY RULE SET TO user_name; GRANT CREATE ANY CONTEXT TO user_name; GRANT DROP ANY INDEXTYPE TO user_name; GRANT ALTER ANY OPERATOR TO user_name; GRANT CREATE ANY MATERIALIZED VIEW TO user_name; GRANT ALTER ANY SEQUENCE TO user_name; GRANT DROP ANY SYNONYM TO user_name; GRANT CREATE ANY SYNONYM TO user_name; GRANT DROP USER TO user_name; GRANT ALTER ANY MEASURE FOLDER TO user_name; GRANT ALTER ANY EDITION TO user_name; GRANT DROP ANY RULE TO user_name; GRANT CREATE ANY RULE TO user_name; GRANT ALTER ANY RULE SET TO user_name; GRANT CREATE ANY OUTLINE TO user_name; GRANT UNDER ANY TABLE TO user_name; GRANT UNDER ANY VIEW TO user_name; GRANT DROP ANY DIRECTORY TO user_name; GRANT ALTER ANY CLUSTER TO user_name; GRANT CREATE ANY CLUSTER TO user_name; GRANT ALTER ANY TABLE TO user_name; GRANT CREATE ANY CUBE BUILD PROCESS TO user_name; GRANT ALTER ANY CUBE DIMENSION TO user_name; GRANT CREATE ANY EDITION TO user_name; GRANT CREATE ANY SQL PROFILE TO user_name; GRANT ALTER ANY SQL PROFILE TO user_name; GRANT DROP ANY OUTLINE TO user_name; GRANT DROP ANY CONTEXT TO user_name; GRANT DROP ANY OPERATOR TO user_name; GRANT DROP ANY LIBRARY TO user_name; GRANT ALTER ANY LIBRARY TO user_name; GRANT CREATE ANY LIBRARY TO user_name; GRANT ALTER ANY MATERIALIZED VIEW TO user_name; GRANT ALTER ANY TRIGGER TO user_name; GRANT CREATE ANY SEQUENCE TO user_name; GRANT DROP ANY INDEX TO user_name; GRANT CREATE ANY INDEX TO user_name; GRANT DROP ANY TABLE TO user_name; GRANT SELECT_CATALOG_ROLE TO user_name; GRANT SELECT ANY SEQUENCE TO user_name; -- Database Links GRANT CREATE DATABASE LINK TO user_name; GRANT CREATE PUBLIC DATABASE LINK TO user_name; GRANT DROP PUBLIC DATABASE LINK TO user_name; -- Server Level Objects (directory) GRANT CREATE ANY DIRECTORY TO user_name; GRANT DROP ANY DIRECTORY TO user_name; -- (for RDS only) GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO user_name; -- Server Level Objects (tablespace) GRANT CREATE TABLESPACE TO user_name; GRANT DROP TABLESPACE TO user_name; -- Server Level Objects (user roles) /* (grant source privileges with admin option or convert roles/privs as DBA) */ -- Queues grant execute on DBMS_AQADM to user_name; grant aq_administrator_role to user_name; -- for Materialized View Logs creation GRANT SELECT ANY TABLE TO user_name; -- Roles GRANT RESOURCE TO user_name; GRANT CONNECT TO user_name;

在上述範例中,取代 user_name 使用您的用戶的名稱。然後,更換 your_password 使用安全密碼。

將甲骨文轉換為 Amazon RDS 的限制

將 Oracle 架構和程式碼遷移到 Amazon RDS 適用於甲骨文時,您應該考慮的一些限制:

  • Amazon RDS 中的預先定義角色 (稱為DBA) 通常允許 Oracle 資料庫引擎上的所有管理權限。下列權限不適用於使用 Oracle 引擎的 Amazon RDS 資料庫執行個體上的DBA角色:

    • 更改資料庫

    • 更改系統

    • 建立任何目錄

    • 授予任何權限

    • 授予任何角色

    • 建立外部工作

    您可以將所有其他權限授與 Oracle RDS 使用者角色。

  • Amazon 版 Oracle RDS 支援傳統稽核、使用 DBMS _ FGA 套件進行精細稽核,以及 Oracle 統一稽核。

  • Amazon RDS 版 Oracle 不支援變更資料擷取 (CDC)。要CDC在數據庫遷移期間和之後執行操作,請使用 AWS Database Migration Service。