Migración de vistas materializadas de Oracle - Amazon Relational Database Service

Migración de vistas materializadas de Oracle

Para migrar grandes conjuntos de datos de forma eficaz, puede utilizar la replicación de vistas materializadas de Oracle. Con la replicación, puede mantener las tablas de destino sincronizadas con las tablas de origen. Por lo tanto, puede cambiar a Amazon RDS más adelante, si es necesario.

Antes de migrar mediante vistas materializadas, asegúrese de cumplir los siguientes requisitos:

  • Configure el acceso desde la base de datos de destino a la base de datos de origen En el siguiente ejemplo, se han activado reglas de acceso en la base de datos de origen para permitir que la base de datos de destino de RDS para Oracle se conecte a la de origen a través de SQL*Net.

  • Cree un enlace de base de datos desde la instancia de base de datos de RDS para Oracle a la base de datos de origen.

Para migrar datos mediante vistas materializadas
  1. Cree una cuenta de usuario en las instancias de origen y de destino de RDS para Oracle que pueda autenticarse con la misma contraseña. El siguiente ejemplo crea una usuario denominado 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;
    nota

    Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

  2. Cree un enlace de base de datos desde la instancia de destino de RDS para Oracle a la instancia de origen utilizando el usuario recién creado.

    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)))';
    nota

    Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

  3. Pruebe el enlace:

    SELECT * FROM V$INSTANCE@remote_site;
  4. Cree una tabla de ejemplo con la clave principal y el log de vistas materializadas en la instancia de origen.

    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. En la instancia de base de datos de RDS para Oracle, cree una vista materializada.

    CREATE MATERIALIZED VIEW customer_0 BUILD IMMEDIATE REFRESH FAST AS (SELECT * FROM cust_dba.customer_0@remote_site);
  6. En la instancia de base de datos de RDS para Oracle, actualice la vista materializada.

    EXEC DBMS_MV.REFRESH('CUSTOMER_0', 'f');
  7. Arrastre la vista materializada e incluya la cláusula PRESERVE TABLE para retener la tabla del contenedor de la vista materializada y su contenido.

    DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;

    La tabla conservada tiene el mismo nombre que la vista materializada eliminada.