Migration avec les vues matérialisées d'Oracle - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Migration avec les vues matérialisées d'Oracle

Pour migrer efficacement de grands jeux de données, vous pouvez utiliser la réplication de vues matérialisées Oracle. Avec la réplication, vous pouvez maintenir les tables cibles synchronisées avec les tables sources. Ainsi, vous pouvez passer à Amazon RDS plus tard, si nécessaire.

Avant de procéder à une migration à l'aide de vues matérialisées, assurez-vous que vous remplissez les conditions suivantes :

  • Configurez l'accès de la base de données cible à la base de données source. Dans l'exemple suivant, les règles d'accès ont été activées sur la base de données source pour permettre à la base de données cible RDS for Oracle de se connecter à la source via SQL*Net.

  • Créez un lien de base de données entre l'instance de base de données RDS for Oracle et la base de données source.

Pour migrer des données en utilisant des vues matérialisées
  1. Créez un compte utilisateur sur les instances RDS for Oracle source et cible que vous pouvez authentifier avec le même mot de passe. L'exemple suivant crée un utilisateur nommé 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;
    Note

    Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

  2. Créez un lien de base de données entre l'instance cible RDS for Oracle et l'instance source en utilisant votre utilisateur nouvellement créé.

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

    Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

  3. Testez le lien :

    SELECT * FROM V$INSTANCE@remote_site;
  4. Créez un exemple de table avec une clé primaire et un journal des vues matérialisées sur l'instance source.

    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. Sur l'instance de base de données RDS for Oracle cible, créez une vue matérialisée.

    CREATE MATERIALIZED VIEW customer_0 BUILD IMMEDIATE REFRESH FAST AS (SELECT * FROM cust_dba.customer_0@remote_site);
  6. Sur l'instance de base de données RDS for Oracle cible, actualisez la vue matérialisée.

    EXEC DBMS_MV.REFRESH('CUSTOMER_0', 'f');
  7. Supprimez la vue matérialisée et ajoutez la clause PRESERVE TABLE pour conserver la table conteneur de la vue matérialisée et son contenu.

    DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;

    La table conservée a le même nom que la vue matérialisée supprimée.