使用 Oracle 具體化檢視進行遷移 - Amazon Relational Database Service

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

使用 Oracle 具體化檢視進行遷移

若要有效的遷移大型資料庫,您也可以使用 Oracle 的具體化檢視複寫功能。透過複寫,您可以使目標資料表與來源資料表維持同步。因此,如果需要,您可以RDS稍後切換到 Amazon。

請確保您符合下列要求,才能使用具體化檢視進行遷移:

  • 設定目標資料庫到來源資料庫之間的存取。在下列範例中,已啟用來源資料庫的存取規則,以允許 Oracle 目標資料庫透過 SQL *Net 連線至來源。RDS

  • 建立從 Oracle 資料庫執行個RDS體到來源資料庫的資料庫連結。

若要使用具體化檢視遷移資料
  1. 在來源和 RDS Oracle 目標執行處理上建立使用者帳戶,這些執行處理可以使用相同密碼進行驗證。以下範例會建立名為 dblink_user 的使用者。

    CREATE USER dblink_user IDENTIFIED BY my-password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; GRANT CREATE SESSION TO dblink_user; GRANT SELECT ANY TABLE TO dblink_user; GRANT SELECT ANY DICTIONARY TO dblink_user;
    注意

    指定此處所顯示提示以外的密碼,作為安全最佳實務。

  2. 使用新建立的使用者,從 Oracle 目標執行處理建立至來源執行處理的資料庫連結。RDS

    CREATE DATABASE LINK remote_site CONNECT TO dblink_user IDENTIFIED BY my-password USING '(description=(address=(protocol=tcp) (host=my-host) (port=my-listener-port)) (connect_data=(sid=my-source-db-sid)))';
    注意

    指定此處所顯示提示以外的密碼,作為安全最佳實務。

  3. 測試連結:

    SELECT * FROM V$INSTANCE@remote_site;
  4. 在來源執行個體上,建立包含主要索引鍵和具體化檢視日誌的範例資料表。

    CREATE TABLE customer_0 TABLESPACE users AS (SELECT ROWNUM id, o.* FROM ALL_OBJECTS o, ALL_OBJECTS x WHERE ROWNUM <= 1000000); ALTER TABLE customer_0 ADD CONSTRAINT pk_customer_0 PRIMARY KEY (id) USING INDEX; CREATE MATERIALIZED VIEW LOG ON customer_0;
  5. 在 Oracle 資料庫執行處理的目標RDS上,建立具體化視觀表。

    CREATE MATERIALIZED VIEW customer_0 BUILD IMMEDIATE REFRESH FAST AS (SELECT * FROM cust_dba.customer_0@remote_site);
  6. 在 Oracle 資料庫執行處理的目標RDS上,重新整理具體化視觀表。

    EXEC DBMS_MVIEW.REFRESH('CUSTOMER_0', 'f');
  7. 捨棄具體化檢視,納入 PRESERVE TABLE 子句,以保留具體化檢視容器資料表及其內容。

    DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;

    前述保留資料表的名稱,與捨棄的具體化檢視相同。