Oracle 구체화된 보기로 마이그레이션 - Amazon Relational Database Service

Oracle 구체화된 보기로 마이그레이션

Oracle 구체화된 보기 복제를 사용하여 최신 데이터 세트를 효율적으로 마이그레이션할 수 있습니다. 복제를 사용하면 대상 테이블을 원본 테이블과 동기화된 상태로 유지할 수 있습니다. 따라서 필요한 경우 나중에 Amazon RDS로 전환할 수 있습니다.

구체화된 보기로 마이그레이션하려면 먼저 다음 요구 사항을 충족해야 합니다.

  • 대상 데이터베이스에서 원본 데이터베이스로의 액세스를 구성합니다. 다음 예에서는 SQL*Net을 통해 RDS for Oracle 대상 데이터베이스가 원본에 연결할 수 있도록 원본 데이터베이스에서 액세스 규칙이 활성화되었습니다.

  • RDS for Oracle DB 인스턴스에서 원본 데이터베이스로 연결되는 데이터베이스 링크를 생성합니다.

구체화된 보기를 사용하여 데이터 마이그레이션
  1. 원본 및 RDS for 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. 새로 생성된 사용자를 사용하여 RDS for Oracle 대상 인스턴스에서 원본 인스턴스로의 데이터베이스 링크를 생성합니다.

    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. 대상 RDS for Oracle DB 인스턴스에서 구체화된 보기를 생성합니다.

    CREATE MATERIALIZED VIEW customer_0 BUILD IMMEDIATE REFRESH FAST AS (SELECT * FROM cust_dba.customer_0@remote_site);
  6. 대상 RDS for Oracle DB 인스턴스에서 구체화된 보기를 새로 고칩니다.

    EXEC DBMS_MV.REFRESH('CUSTOMER_0', 'f');
  7. 구체화된 보기를 삭제하고 PRESERVE TABLE 절을 포함하여 구체화된 보기 컨테이너 테이블과 그 내용을 보관합니다.

    DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;

    보관한 테이블에는 끊긴 구체화된 보기와 같은 이름이 있습니다.