本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用甲骨文從甲骨文數據庫遷移到 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。如需詳細資訊,請參閱
-
如果您的資料庫執行個體版本為 11.2.0.4.v10 或更新版本,則必須安裝選項。XMLDB如需詳細資訊,請參閱
-
您應具有 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 BYyour_password
; -- System privileges GRANT DROP ANY CUBE BUILD PROCESS TOuser_name
; GRANT ALTER ANY CUBE TOuser_name
; GRANT CREATE ANY CUBE DIMENSION TOuser_name
; GRANT CREATE ANY ASSEMBLY TOuser_name
; GRANT ALTER ANY RULE TOuser_name
; GRANT SELECT ANY DICTIONARY TOuser_name
; GRANT ALTER ANY DIMENSION TOuser_name
; GRANT CREATE ANY DIMENSION TOuser_name
; GRANT ALTER ANY TYPE TOuser_name
; GRANT DROP ANY TRIGGER TOuser_name
; GRANT CREATE ANY VIEW TOuser_name
; GRANT ALTER ANY CUBE BUILD PROCESS TOuser_name
; GRANT CREATE ANY CREDENTIAL TOuser_name
; GRANT DROP ANY CUBE DIMENSION TOuser_name
; GRANT DROP ANY ASSEMBLY TOuser_name
; GRANT DROP ANY PROCEDURE TOuser_name
; GRANT ALTER ANY PROCEDURE TOuser_name
; GRANT ALTER ANY SQL TRANSLATION PROFILE TOuser_name
; GRANT DROP ANY MEASURE FOLDER TOuser_name
; GRANT CREATE ANY MEASURE FOLDER TOuser_name
; GRANT DROP ANY CUBE TOuser_name
; GRANT DROP ANY MINING MODEL TOuser_name
; GRANT CREATE ANY MINING MODEL TOuser_name
; GRANT DROP ANY EDITION TOuser_name
; GRANT CREATE ANY EVALUATION CONTEXT TOuser_name
; GRANT DROP ANY DIMENSION TOuser_name
; GRANT ALTER ANY INDEXTYPE TOuser_name
; GRANT DROP ANY TYPE TOuser_name
; GRANT CREATE ANY PROCEDURE TOuser_name
; GRANT CREATE ANY SQL TRANSLATION PROFILE TOuser_name
; GRANT CREATE ANY CUBE TOuser_name
; GRANT COMMENT ANY MINING MODEL TOuser_name
; GRANT ALTER ANY MINING MODEL TOuser_name
; GRANT DROP ANY SQL PROFILE TOuser_name
; GRANT CREATE ANY JOB TOuser_name
; GRANT DROP ANY EVALUATION CONTEXT TOuser_name
; GRANT ALTER ANY EVALUATION CONTEXT TOuser_name
; GRANT CREATE ANY INDEXTYPE TOuser_name
; GRANT CREATE ANY OPERATOR TOuser_name
; GRANT CREATE ANY TRIGGER TOuser_name
; GRANT DROP ANY ROLE TOuser_name
; GRANT DROP ANY SEQUENCE TOuser_name
; GRANT DROP ANY CLUSTER TOuser_name
; GRANT DROP ANY SQL TRANSLATION PROFILE TOuser_name
; GRANT ALTER ANY ASSEMBLY TOuser_name
; GRANT CREATE ANY RULE SET TOuser_name
; GRANT ALTER ANY OUTLINE TOuser_name
; GRANT UNDER ANY TYPE TOuser_name
; GRANT CREATE ANY TYPE TOuser_name
; GRANT DROP ANY MATERIALIZED VIEW TOuser_name
; GRANT ALTER ANY ROLE TOuser_name
; GRANT DROP ANY VIEW TOuser_name
; GRANT ALTER ANY INDEX TOuser_name
; GRANT COMMENT ANY TABLE TOuser_name
; GRANT CREATE ANY TABLE TOuser_name
; GRANT CREATE USER TOuser_name
; GRANT DROP ANY RULE SET TOuser_name
; GRANT CREATE ANY CONTEXT TOuser_name
; GRANT DROP ANY INDEXTYPE TOuser_name
; GRANT ALTER ANY OPERATOR TOuser_name
; GRANT CREATE ANY MATERIALIZED VIEW TOuser_name
; GRANT ALTER ANY SEQUENCE TOuser_name
; GRANT DROP ANY SYNONYM TOuser_name
; GRANT CREATE ANY SYNONYM TOuser_name
; GRANT DROP USER TOuser_name
; GRANT ALTER ANY MEASURE FOLDER TOuser_name
; GRANT ALTER ANY EDITION TOuser_name
; GRANT DROP ANY RULE TOuser_name
; GRANT CREATE ANY RULE TOuser_name
; GRANT ALTER ANY RULE SET TOuser_name
; GRANT CREATE ANY OUTLINE TOuser_name
; GRANT UNDER ANY TABLE TOuser_name
; GRANT UNDER ANY VIEW TOuser_name
; GRANT DROP ANY DIRECTORY TOuser_name
; GRANT ALTER ANY CLUSTER TOuser_name
; GRANT CREATE ANY CLUSTER TOuser_name
; GRANT ALTER ANY TABLE TOuser_name
; GRANT CREATE ANY CUBE BUILD PROCESS TOuser_name
; GRANT ALTER ANY CUBE DIMENSION TOuser_name
; GRANT CREATE ANY EDITION TOuser_name
; GRANT CREATE ANY SQL PROFILE TOuser_name
; GRANT ALTER ANY SQL PROFILE TOuser_name
; GRANT DROP ANY OUTLINE TOuser_name
; GRANT DROP ANY CONTEXT TOuser_name
; GRANT DROP ANY OPERATOR TOuser_name
; GRANT DROP ANY LIBRARY TOuser_name
; GRANT ALTER ANY LIBRARY TOuser_name
; GRANT CREATE ANY LIBRARY TOuser_name
; GRANT ALTER ANY MATERIALIZED VIEW TOuser_name
; GRANT ALTER ANY TRIGGER TOuser_name
; GRANT CREATE ANY SEQUENCE TOuser_name
; GRANT DROP ANY INDEX TOuser_name
; GRANT CREATE ANY INDEX TOuser_name
; GRANT DROP ANY TABLE TOuser_name
; GRANT SELECT_CATALOG_ROLE TOuser_name
; GRANT SELECT ANY SEQUENCE TOuser_name
; -- Database Links GRANT CREATE DATABASE LINK TOuser_name
; GRANT CREATE PUBLIC DATABASE LINK TOuser_name
; GRANT DROP PUBLIC DATABASE LINK TOuser_name
; -- Server Level Objects (directory) GRANT CREATE ANY DIRECTORY TOuser_name
; GRANT DROP ANY DIRECTORY TOuser_name
; -- (for RDS only) GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TOuser_name
; -- Server Level Objects (tablespace) GRANT CREATE TABLESPACE TOuser_name
; GRANT DROP TABLESPACE TOuser_name
; -- Server Level Objects (user roles) /* (grant source privileges with admin option or convert roles/privs as DBA) */ -- Queues grant execute on DBMS_AQADM touser_name
; grant aq_administrator_role touser_name
; -- for Materialized View Logs creation GRANT SELECT ANY TABLE TOuser_name
; -- Roles GRANT RESOURCE TOuser_name
; GRANT CONNECT TOuser_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。