Migrazione con le viste materializzate Oracle - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Migrazione con le viste materializzate Oracle

Per eseguire la migrazione di set di dati di grandi dimensioni in modo efficiente, è anche possibile utilizzare la replica delle viste materializzate Oracle. Una replica consente di mantenere la sincronizzazione tra le tabelle di destinazione e le tabelle di origine. Pertanto, puoi passare ad Amazon RDS in un secondo momento, se necessario.

Prima di poter migrare utilizzando le viste materializzate, verifica che siano soddisfatti i seguenti requisiti:

  • Configurazione dell'accesso dal database di destinazione al database di origine. Nell'esempio seguente sono state abilitate regole di accesso nel database di origine per permettere la connessione del database RDS per Oracle di destinazione all'origine tramite SQL*Net.

  • Crea un collegamento di database tra l'istanza database RDS per Oracle e il database di origine.

Per eseguire la migrazione dei dati utilizzando viste materializzate
  1. Nelle istanze RDS per Oracle di origine e di destinazione crea un account utente per il quale sia possibile eseguire l'autenticazione con la stessa password. L'esempio seguente crea un utente denominato 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

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

  2. Crea un collegamento di database dall'istanza RDS per Oracle di destinazione all'istanza di origine utilizzando il nuovo utente creato.

    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

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

  3. Testare il collegamento:

    SELECT * FROM V$INSTANCE@remote_site;
  4. Creare una tabella di esempio con una chiave primaria e un log della vista materializzata nell'istanza di origine.

    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. Nell'istanza database RDS per Oracle di destinazione, crea una vista materializzata.

    CREATE MATERIALIZED VIEW customer_0 BUILD IMMEDIATE REFRESH FAST AS (SELECT * FROM cust_dba.customer_0@remote_site);
  6. Nell'istanza database RDS per Oracle di destinazione, aggiorna la vista materializzata.

    EXEC DBMS_MV.REFRESH('CUSTOMER_0', 'f');
  7. Elimina la vista materializzata e includi la clausola PRESERVE TABLE per mantenere la tabella container della vista materializzata e il relativo contenuto.

    DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;

    La tabella conservata ha lo stesso nome della vista materializzata eliminata.