Skip to main content
NetApp database solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Migrazione del database da locale al cloud Azure

Collaboratori kevin-hoke

In seguito alla decisione di Oracle di eliminare gradualmente i database a istanza singola, molte organizzazioni hanno convertito i database Oracle a istanza singola in database container multitenant. Ciò consente di trasferire facilmente un sottoinsieme di database container denominato PDB sul cloud con l'opzione di massima disponibilità, riducendo al minimo i tempi di inattività durante la migrazione.

Tuttavia, se si dispone ancora di una singola istanza di un database Oracle, è possibile convertirla prima in un database contenitore multitenant prima di tentare la rilocazione del PDB.

Le sezioni seguenti forniscono dettagli sulla migrazione dei database Oracle locali al cloud di Azure in entrambi gli scenari.

Conversione di una singola istanza non CDB in un PDB in un CDB multitenant

Se si dispone ancora di un database Oracle a istanza singola, è necessario convertirlo in un database contenitore multitenant, indipendentemente dal fatto che si desideri migrarlo sul cloud o meno, perché Oracle smetterà presto di supportare i database a istanza singola.

Le seguenti procedure collegano un singolo database di istanza a un database contenitore come database collegabile o PDB.

  1. Creare un database contenitore shell sullo stesso host del database a istanza singola in un ambiente separato ORACLE_HOME .

  2. Arrestare il database a istanza singola e riavviarlo in modalità di sola lettura.

  3. Esegui il DBMS_PDB.DESCRIBE procedura per generare i metadati del database.

    BEGIN
      DBMS_PDB.DESCRIBE(
        pdb_descr_file => '/home/oracle/ncdb.xml');
    END;
    /
  4. Arrestare il database a istanza singola.

  5. Avviare il database del contenitore.

  6. Esegui il DBMS_PDB.CHECK_PLUG_COMPATIBILITY funzione per determinare se il non-CDB è compatibile con il CDB.

    SET SERVEROUTPUT ON
    DECLARE
      compatible CONSTANT VARCHAR2(3) :=
        CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
               pdb_descr_file => '/disk1/oracle/ncdb.xml',
               pdb_name       => 'NCDB')
        WHEN TRUE THEN 'YES'
        ELSE 'NO'
    END;
    BEGIN
      DBMS_OUTPUT.PUT_LINE(compatible);
    END;
    /

    Se l'output è SÌ, il file non-CDB è compatibile e puoi procedere con il passaggio successivo.

    Se l'output è NO, allora il non-CDB non è compatibile e puoi controllare PDB_PLUG_IN_VIOLATIONS visualizza per vedere perché non è compatibile. Tutte le violazioni devono essere corrette prima di continuare. Ad esempio, eventuali incongruenze di versione o patch dovrebbero essere risolte eseguendo un aggiornamento o l'utilità opatch. Dopo aver corretto le violazioni, eseguire DBMS_PDB.CHECK_PLUG_COMPATIBILITY ancora una volta per garantire che il non-CDB sia compatibile con il CDB.

  7. Inserire la singola istanza non-CDB.

    CREATE PLUGGABLE DATABASE ncdb USING '/home/oracle/ncdb.xml'
      COPY
      FILE_NAME_CONVERT = ('/disk1/oracle/dbs/', '/disk2/oracle/ncdb/')
    ;
    Nota Se non c'è spazio sufficiente sull'host, il NOCOPY L'opzione può essere utilizzata per creare il PDB. In tal caso, un non-CDB a istanza singola non è utilizzabile dopo il plug-in come PDB perché i file di dati originali sono stati utilizzati per il PDB. Assicuratevi di creare un backup prima della conversione, in modo da avere un punto di riferimento nel caso in cui qualcosa vada storto.
  8. Avviare l'aggiornamento del PDB dopo la conversione se la versione tra il CDB non-CDB di origine a istanza singola e il CDB di destinazione è diversa. Per la conversione della stessa versione, questo passaggio può essere saltato.

    sqlplus / as sysdba;
    alter session set container=ncdb
    alter pluggable database open upgrade;
    exit;
    dbupgrade -c ncdb -l /home/oracle

    Esaminare il file di registro dell'aggiornamento nel /home/oracle elenco.

  9. Aprire il database collegabile, verificare la presenza di violazioni del plug-in pdb e ricompilare gli oggetti non validi.

    alter pluggable database ncdb open;
    alter session set container=ncdb;
    select message from pdb_plug_in_violations where type like '%ERR%' and status <> 'RESOLVED';
    $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -c 'ncdb' -e -b utlrp -d $ORACLE_HOME/rdbms/admin utlrp.sql
  10. Eseguire noncdb_to_pdb.sql per aggiornare il dizionario dei dati.

    sqlplus / as sysdba
    alter session set container=ncdb;
    @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql;

    Arrestare e riavviare il database del contenitore. Il ncdb viene disattivato dalla modalità limitata.

Migrazione di database Oracle locali su Azure con rilocazione PDB

La rilocazione di Oracle PDB con l'opzione di massima disponibilità utilizza la tecnologia di clonazione a caldo del PDB, che consente la disponibilità del PDB sorgente mentre il PDB viene copiato sulla destinazione. Al momento del passaggio, le connessioni utente vengono reindirizzate automaticamente al PDB di destinazione. In questo modo, i tempi di inattività vengono ridotti al minimo, indipendentemente dalle dimensioni del PDB. NetApp fornisce un toolkit basato su Ansible che automatizza la procedura di migrazione.

  1. Creare un CDB nel cloud pubblico di Azure su una macchina virtuale di Azure con la stessa versione e lo stesso livello di patch.

  2. Dal controller Ansible, clonare una copia del toolkit di automazione.

    git clone https://github.com/NetApp-Automation/na_ora_aws_migration.git
  3. Leggere le istruzioni nel file README.

  4. Configurare i file delle variabili host Ansible per i server Oracle di origine e di destinazione e il file di configurazione dell'host del server DB per la risoluzione dei nomi.

  5. Installare i prerequisiti del controller Ansible sul controller Ansible.

    ansible-playbook -i hosts requirements.yml
    ansible-galaxy collection install -r collections/requirements.yml --force
  6. Eseguire tutte le attività di pre-migrazione sul server locale.

    ansible-playbook -i hosts ora_pdb_relocate.yml -u admin -k -K -t ora_pdb_relo_onprem
    Nota L'utente admin è l'utente di gestione sull'host del server Oracle locale con privilegi sudo. L'utente amministratore viene autenticato con una password.
  7. Eseguire la rilocazione di Oracle PDB dall'host locale all'host Azure Oracle di destinazione.

    ansible-playbook -i hosts ora_pdb_relocate.yml -u azureuser --private-key db1.pem -t ora_pdb_relo_primary
    Nota Il controller Ansible può essere installato in locale o nel cloud di Azure. Il controller necessita di connettività all'host del server Oracle locale e all'host della macchina virtuale Oracle di Azure. La porta del database Oracle (ad esempio 1521) è aperta tra l'host del server Oracle locale e l'host della VM Oracle di Azure.

Ulteriori opzioni di migrazione del database Oracle

Per ulteriori opzioni di migrazione, consultare la documentazione Microsoft:"Processo decisionale per la migrazione del database Oracle" .