Oracle
 sql >> Database >  >> RDS >> Oracle

Migrazione di un database Oracle da AWS EC2 ad AWS RDS, parte 4

Stiamo esplorando la migrazione di un database Oracle da un'istanza EC2 a un servizio gestito RDS. Nel primo di quattro articoli, "Migrazione di un database Oracle da AWS EC2 a AWS RDS, parte 1", abbiamo creato istanze di database su EC2 e RDS. Nel secondo articolo, "Migrazione di un database Oracle da AWS EC2 ad AWS RDS, parte 2", abbiamo creato un utente IAM per la migrazione del database e abbiamo anche creato una tabella di database per la migrazione. Solo nel secondo articolo, abbiamo creato un'istanza di replica e gli endpoint di replica. Nel terzo articolo, "Migrazione di un database Oracle da AWS EC2 ad AWS RDS, parte 3", abbiamo creato un'attività di migrazione per migrare le modifiche esistenti. In questo articolo di continuazione, migreremo le modifiche in corso ai dati. Questo articolo ha le seguenti sezioni:

  • Creazione ed esecuzione di un'attività di replica per migrare le modifiche in corso
  • Aggiunta di registrazione supplementare
  • Aggiunta di una tabella a un'istanza di database Oracle su EC2
  • Aggiunta di dati tabella
  • Esplorazione della tabella del database replicato
  • Rilascio e ricarica dei dati
  • Interruzione e avvio di un'attività
  • Eliminazione di database
  • Conclusione

Creazione ed esecuzione di un'attività di replica per migrare le modifiche in corso

Nelle seguenti sottosezioni creeremo un'attività per replicare le modifiche in corso. Per dimostrare la replica in corso, avvieremo prima l'attività e successivamente creeremo una tabella e aggiungeremo i dati. Elimina la tabella DVOHRA.WLSLOG , come mostrato in figura 1; creeremo la stessa tabella per dimostrare la replica in corso.


Figura 1: Tavolo a scomparsa DVOHRA.WLSLOG

Aggiunta di registrazione supplementare

Servizio di migrazione del database richiede che la registrazione supplementare sia abilitata per abilitare l'acquisizione dei dati di modifica (CDC) utilizzata per replicare le modifiche in corso. La registrazione supplementare è il processo di memorizzazione delle informazioni su quali righe di dati in una tabella sono state modificate. La registrazione supplementare aggiunge dati di colonna supplementari o aggiuntivi nei file di registro di ripristino ogni volta che viene eseguito un aggiornamento su una tabella. Le colonne che sono state modificate vengono registrate come dati supplementari nei file di registro di ripristino insieme a una chiave di identificazione, che potrebbe essere la chiave primaria o l'indice univoco. Se una tabella non dispone di una chiave primaria o di un indice univoco, tutte le colonne scalari vengono registrate nei file di registro di ripristino per identificare in modo univoco una riga di dati, che potrebbe aumentare le dimensioni dei file di registro di ripristino. Oracle Database supporta i seguenti tipi di registrazione supplementare:

  • Registrazione supplementare minima: Solo la quantità minima di dati richiesta da LogMiner per le modifiche DML viene registrata nei file di registro di ripristino.
  • Identificazione a livello di database Key Logging: Sono supportati diversi tipi di registrazione della chiave di identificazione a livello di database:ALL, PRIMARY KEY, UNIQUE e FOREIGN KEY. Con il livello ALL, tutte le colonne (tranne LOB, Long e ADT) vengono registrate nei file di registro di ripristino. Per CHIAVE PRIMARIA, solo le colonne della chiave primaria vengono archiviate nei file di registro di ripristino quando viene aggiornata una riga contenente una chiave primaria; non è necessario aggiornare una colonna della chiave primaria. Il tipo FOREIGN KEY memorizza solo le chiavi esterne di una riga nei file di registro di ripristino quando uno qualsiasi dei file di registro rossi viene aggiornato. Il tipo UNIQUE memorizza solo le colonne in una chiave composita univoca o in un indice bitmap quando una qualsiasi colonna nella chiave composita univoca o nell'indice bitmap è cambiata.
  • Registrazione supplementare a livello di tabella: Specifica a livello di tabella quali colonne sono archiviate nei file di registro di ripristino. La registrazione della chiave di identificazione a livello di tabella supporta gli stessi livelli della registrazione della chiave di identificazione a livello di database; TUTTO, CHIAVE PRIMARIA, CHIAVE UNICA e ESTERA. A livello di tabella, sono supportati anche i gruppi di log supplementari definiti dall'utente, che consentono all'utente di definire quali colonne devono essere registrate in modo supplementare. I gruppi di log supplementari definiti dall'utente possono essere condizionali o incondizionati.

Per la replica continua, è necessario impostare la registrazione supplementare minima e la registrazione supplementare a livello di tabella per TUTTE le colonne.

In SQL*Plus, eseguire la seguente istruzione per impostare la registrazione supplementare minima:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

L'output è il seguente:

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Database altered.

Per trovare lo stato della registrazione supplementare minima, eseguire la seguente istruzione. E, se l'output ha un valore di colonna SUPPLEME come SÌ, viene abilitata la registrazione supplementare minima.

SQL> SELECT supplemental_log_data_min FROM v$database;

SUPPLEME
--------
YES

L'impostazione della registrazione supplementare minima e la verifica dell'output di stato sono mostrate nella Figura 2.


Figura 2: Impostazione e verifica della registrazione supplementare minima

Imposteremo anche la registrazione della chiave di identificazione a livello di tabella quando aggiungiamo dati di tabelle e tabelle per dimostrare la replica in corso dopo l'avvio dell'attività. Se aggiungiamo tabelle e dati di tabelle prima di creare e avviare un'attività, non saremo in grado di dimostrare la replica in corso.

Per creare un'attività per la replica continua, fai clic su Crea attività , come mostrato nella Figura 3.


Figura 3: Attività>Crea attività

In Crea attività procedura guidata, specificare un nome e una descrizione dell'attività e selezionare l'istanza di replica, l'endpoint di origine e l'endpoint di destinazione, come mostrato nella Figura 4. Selezionare Tipo di migrazione come Migrare i dati esistenti e replicare le modifiche in corso .


Figura 4: Selezione del tipo di migrazione per la replica in corso

Un messaggio mostrato nella figura 5 indica che è necessario abilitare la registrazione supplementare per la replica continua. Il messaggio non indica che la registrazione supplementare non è stata abilitata, ma solo come promemoria. Abbiamo già abilitato la registrazione supplementare. Seleziona la casella di controllo Avvia attività alla creazione .


Figura 5: Messaggio sul requisito di registrazione supplementare per la replica delle modifiche in corso

Le Impostazioni attività sono gli stessi della migrazione dei soli dati esistenti (vedi Figura 6).


Figura 6: Impostazioni attività

Per i mapping delle tabelle, è richiesta almeno una regola di selezione. Aggiungi una regola di selezione per includere tutte le tabelle nel DVOHRA tabella, come mostrato nella Figura 7.


Figura 7: Aggiunta di una regola di selezione

La regola di selezione aggiunta è mostrata nella Figura 8.


Figura 8: Regola di selezione

Fai clic su Crea attività per creare l'attività, come mostrato nella Figura 9.


Figura 9: Crea attività

Viene aggiunta una nuova attività con lo stato Creazione in corso , come mostrato nella Figura 10.


Figura 10: Attività aggiunta con stato Creazione

Quando le regole di selezione e trasformazione per tutti i dati esistenti sono state applicate e i dati migrati, lo stato dell'attività diventa Caricamento completato, replica in corso (vedi Figura 11).


Figura 11: Caricamento completato, replica in corso

Le Statistiche della tabella tab non elenca tabelle come migrate o replicate, come mostrato nella Figura 12.


Figura 12: Statistiche tabella

Per esplorare i log di CloudWatch, fai clic su Registri scheda e fare clic sul collegamento, come mostrato nella Figura 13.


Figura 13: Registri

I log di CloudWatch vengono visualizzati, come mostrato nella Figura 14. L'ultima voce nei log riguarda l'avvio della replica. L'attività di replica in corso non termina dopo il caricamento dei dati esistenti, se presenti, ma continua a essere eseguita.


Figura 14: Registri CloudWatch

Aggiunta di una tabella a un'istanza di database Oracle su EC2

Quindi, crea una tabella e aggiungi i dati della tabella per dimostrare la replica in corso. Eseguire le due istruzioni seguenti insieme in modo che la registrazione supplementare a livello di tabella venga impostata quando viene creata la tabella. Modifica lo script per rendere lo schema diverso.

CREATE TABLE DVOHRA.wlslog(time_stamp VARCHAR2(255) PRIMARY KEY,
   category VARCHAR2(255),type VARCHAR2(255),servername
   VARCHAR2(255),code VARCHAR2(255),msg VARCHAR2(255));
alter table DVOHRA.WLSLOG add supplemental log data (ALL) columns;

La registrazione supplementare a livello di tabella viene impostata al momento della creazione della tabella.

SQL> CREATE TABLE DVOHRA.wlslog(time_stamp VARCHAR2(255)
   PRIMARY KEY,category VARCHAR2(255),type VARCHAR2(255),servername
   VARCHAR2(255),code VARCHAR2(255),msg VARCHAR2(255));
alter table DVOHRA.WLSLOG add supplemental log data (ALL) columns;
Table created.
SQL>
Table altered.

L'output è mostrato in SQL*Plus nella Figura 15.


Figura 15: Creazione della tabella e impostazione della registrazione supplementare

Finora, abbiamo solo creato la tabella e non abbiamo aggiunto alcun dato di tabella. Il DDL per la tabella viene migrato, come indicato dalle statistiche della tabella nella Figura 16.


Figura 16: DDL per la migrazione di tabelle

Aggiunta dei dati della tabella

Quindi, esegui il seguente script SQL per aggiungere dati alla tabella creata. Modifica lo script per rendere lo schema diverso.

SQL> INSERT INTO DVOHRA.wlslog(time_stamp,category,type,
   servername,code,msg) VALUES('Apr-8-2014-7:06:16-PM-PDT',
   'Notice','WebLogicServer','AdminServer','BEA-000365','Server
   state changed to STANDBY');
INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:17-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to STARTING');
INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:18-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to ADMIN');
INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code,
   msg) VALUES('Apr-8-2014-7:06:19-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to RESUMING');
INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code,
   msg) VALUES('Apr-8-2014-7:06:20-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000361','Started WebLogic
   AdminServer');
INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code,
   msg) VALUES('Apr-8-2014-7:06:21-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to RUNNING');

1 row created.

SQL>
1 row created.

SQL>
1 row created.

SQL>
1 row created.

SQL>
1 row created.

SQL>
1 row created.

Successivamente, esegui l'istruzione Commit.

SQL> COMMIT;
Commit complete.

Esplorazione della tabella del database replicato

Le statistiche della tabella elenca gli inserti come il numero di righe di dati aggiunte, come mostrato nella Figura 17.


Figura 17: Elenco statistiche tabella 6 inserti

L'attività continua a essere eseguita dopo la replica delle modifiche in corso. Aggiungi un'altra riga di dati.

SQL> INSERT INTO DVOHRA.wlslog(time_stamp,category,type,
   servername,code,msg) VALUES('Apr-8-2014-7:06:22-PM-PDT',
   'Notice','WebLogicServer','AdminServer','BEA-000360','Server
   started in RUNNING mode');

1 row created.
SQL> COMMIT;

Commit complete.

SQL>

Fai clic su Aggiorna dati dal server, come mostrato nella Figura 18.


Figura 18: Aggiorna i dati dal server

Il numero totale di inserimenti nelle statistiche della tabella diventa 7, come mostrato nella Figura 19.


Figura 19: Statistiche della tabella con inserti come 7

Rilascio e ricarica dei dati

Per eliminare e ricaricare i dati della tabella, fai clic su Rilascia e ricarica i dati della tabella , come mostrato nella Figura 20.


Figura 20: Elimina e ricarica i dati della tabella

Fai clic su Aggiorna dati dal server (vedi Figura 21).


Figura 21: Aggiorna i dati dal server

L'icona e lo Stato colonna per la tabella indica che la tabella è in fase di ricarica, come mostrato nella Figura 22.


Figura 22: La tabella è in fase di ricarica

Al termine del ricaricamento della tabella, la colonna Stato della tabella diventa Tabella completata , come mostrato nella Figura 23. Dopo aver ricaricato i dati della tabella, le Righe a pieno carico visualizza un valore di 7 e Inserts è 0 perché un ricaricamento non è una replica in corso, ma un carico completo.

Figura 23: Ricarica tabella completata

Poiché i dati della tabella vengono eliminati e ricaricati e i dati della tabella di origine non sono stati modificati, i log di CloudWatch includono un messaggio "Alcune modifiche dal database di origine non hanno avuto alcun impatto quando sono state applicate al database di destinazione", come mostrato nella Figura 24.


Figura 24: Alcune modifiche dal database di origine non hanno avuto alcun impatto quando sono state applicate al database di destinazione

Quando si ricarica il DVOHRA.wlslog tabella è stata completata, viene visualizzato il messaggio “Caricamento terminato per la tabella DVOHRA.wlslog. 7 righe ricevute” viene visualizzato, come mostrato nella Figura 25.


Figura 25: Log CloudWatch Messaggio per il caricamento completato

Interruzione e avvio di un'attività

Un'attività del tipo che include la replica in corso non si interrompe da sola a meno che non si verifichi un errore. Per interrompere l'attività, fai clic su Interrompi (vedi Figura 26).


Figura 26: Interruzione di un'attività

In Interrompi attività finestra di dialogo, fai clic su Interrompi , come mostrato nella Figura 27.


Figura 27: Finestra di conferma per interrompere un'attività

Lo stato dell'attività diventa Interrotto , come mostrato nella Figura 28.


Figura 28: Interruzione di un'attività

Quando un'attività si interrompe, lo stato diventa Interrotto , come mostrato nella Figura 29.


Figura 29: Attività interrotta

Per avviare un'attività interrotta, fai clic su Avvia/Riprendi , come mostrato nella Figura 30.


Figura 30: Avvio o ripresa di un'attività

In Avvia attività finestra di dialogo, fai clic su Avvia per avviare l'attività dal punto di arresto (vedere la Figura 31). L'altra opzione è riavviare l'attività.


Figura 31: Avvio dell'attività dopo l'interruzione

Lo stato dell'attività diventa Inizio , come mostrato nella Figura 32.


Figura 32: Avvio di un'attività

Al termine della migrazione dei dati esistenti, l'attività continua a essere eseguita con lo stato Caricamento completato, replica in corso , come mostrato nella Figura 33.


Figura 33: Caricamento completato, replica in corso

Eliminazione dei database

L'istanza database RDS può essere eliminata con Instance Actions>Delete comando. Il database Oracle sull'istanza EC2 può essere interrotto con Azioni>Stato istanza>Interrompi , come mostrato nella Figura 34.


Figura 34: Interruzione dell'istanza EC2

Conclusione

In quattro articoli abbiamo discusso della migrazione di un database Oracle da AWS EC2 ad AWS RDS.