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 pourrez passer à Amazon RDS ultérieurement, 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 RDS pour permettre à la base de données cible d'Oracle de se connecter à la source via SQL *Net.

  • Créez un lien de base de données entre l'instance RDS de base de données 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 source et RDS cible Oracle qui peut s'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 pour Oracle et l'instance source à l'aide de votre nouvel utilisateur.

    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 la cible RDS de l'instance de base de données Oracle, 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 la cible de l'instance RDS de base de données Oracle, actualisez la vue matérialisée.

    EXEC DBMS_MVIEW.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.