Utilizzo della riga comandi per riprendere il mirroring dopo una modifica DDL
È possibile utilizzare la riga comandi per riprendere il mirroring dopo una modifica DDL.
Procedura
- Terminare tutte l'attività DML su tutte le tabelle nel proprio database utilizzate per la replica
Ciò significa arrestare tutte le applicazioni che stanno scrivendo nelle tabelle. L'attività DML deve essere arrestata prima di apportare le modifiche DDL al database.
- Assicurarsi che non vi siano transazioni aperte che coinvolgano una tabella che sarà interessata da una modifica DDL.
Un modo per vedere se ci sono transazioni aperte è controllare se ci sono dei blocchi sulla tabella.
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;Questa tabella contiene una o più righe per ciascuna transazione LOCK WAIT, che indica qualsiasi blocco che ne impedisce l'avanzamento.
- Terminare la replica per tutte le sottoscrizioni in esecuzione nell'istanza CDC Replication immettendo il seguente comando:
dmendreplication -I instance -c -s sub1 sub2 subndove:- instanza
- Specifica il nome dell'istanza CDC Replication .
- sub2sub1 subn
- Specifica i nomi delle sottoscrizioni in cui deve essere terminata la replica. Più nomi di sottoscrizioni devono essere separati da spazi.
È necessario effettuare le seguenti operazioni:
- Arresta tutte le sottoscrizioni all'inizio del log utilizzando un arresto controllato. La chiusura controllata deve essere completata normalmente - non chiudere immediatamente o interrompere la chiusura o altrimenti arrestare il prodotto durante la sequenza di chiusura controllata. Se l'arresto controllato non viene completato normalmente, è necessario eseguire un aggiornamento per riportare il contenuto della tabella in sincronia.
- Assicurarsi che la Replica CDC abbia raggiunto l'intestazione del log o che non abbia latenza.
- Attendere che tutte le sottoscrizioni terminino la replica, incluse quelle che eseguono solo l'aggiornamento.
- Verificare che la registrazione sia configurata per tutte le tabelle di origine interessate dalla DDL
- Applicare le modifiche DDL a tutte le tabelle di origine interessate nel database.
- Aggiornare le definizioni delle tabelle di origine e descrivere le tabelle di origine immettendo i seguenti comandi:
./dmreaddtable -I instance -t table -a ./dmdescribe –I instance -s subscriptiondove:- instanza
- Il nome dell'istanza CDC Replication .
- Tabella
- Specifica il nome di una tabella di origine nella sottoscrizione per cui CDC Replication aggiorna la definizione. È necessario specificare il nome della tabella nel formato schema.tabella. Per specificare più tabelle, elencare le tabelle separate da spazi.
- abbonamento
- Specifica che CDC Replication invia le modifiche dei metadati di origine per le sottoscrizioni indicate alla destinazione. Per specificare più sottoscrizioni, elencare le sottoscrizioni separate da uno spazio.
Lo stato della tabella verrà reimpostato su Mirror / Active.
- Se si sono verificate modifiche DDL sull'istanza di destinazione, aggiornare le definizioni della tabella di destinazione immettendo il seguente comando:
./dmreassigntable -I instance -s subscription -t tabledove:- instanza
- Specifica il nome dell'istanza CDC Replication .
- abbonamento
- Specifica la sottoscrizione che contiene la tabella di origine associata alla tabella di destinazione aggiornata nel database. Per specificare più sottoscrizioni, elencare le sottoscrizioni separate da uno spazio.
- Tabella
- Specifica il nome di una tabella di origine nella sottoscrizione associata alla tabella di destinazione per cui CDC Replication aggiorna la definizione di tabella nei metadati. È necessario specificare il nome della tabella nel formato schema.tabella. Per specificare più tabelle, elencare le tabelle separate da spazi.
- Verificare la correttezza dell'associazione tabella.
Quando le modifiche DDL modificano le colonne di origine, è necessario accertarsi che la tabella di destinazione possa adattarsi al nuovo formato dati (ad esempio, passando da CHAR (1) a CHAR (10) e così via). Ciò può essere determinato nell'area Dettagli della vista Associazioni tabella in Console di gestione.
Se necessario, riassociare manualmente le colonne modificate e verificare le nuove associazioni. La funzione di associazione automatica di CDC Replicationassocierà nomi di colonna identici. Tuttavia, poiché l'associazione automatica di CDC Replicationè un algoritmo ottimale, verificare e modificare le associazioni in base alle proprie esigenze aziendali.
- Contrassegna il punto di acquisizione per evitare l'operazione di aggiornamento.
./dmmarktablecapturepoint -I instance -s subscription -t tableDove
- instanza
- Specifica il nome dell'istanza CDC Replication .
- abbonamento
- Specifica il nome della sottoscrizione che contiene le tabelle interessate. Per specificare più sottoscrizioni, elencare le sottoscrizioni separate da uno spazio.
- Tabella
- Specifica il nome di una tabella di origine nella sottoscrizione su cui CDC Replication contrassegna un punto di cattura della tabella. È necessario specificare il nome della tabella nel formato schema.tabella. Per specificare più tabelle, elencare le tabelle separate da spazi.
Questa fase contrassegna il punto di cattura all'inizio del log.
- Se esiste un requisito per eseguire un aggiornamento della tabella o se l'aggiornamento della tabella è il metodo preferito di ripristino, è possibile contrassegnare la tabella per l'aggiornamento e avviare l'operazione di aggiornamento.
./dmflagforrefresh -I instance -s subscription -t table ./dmrefresh -I instance -s subscription -fdove:- instanza
- Il nome dell'istanza CDC Replication .
- abbonamento
- Specifica il nome della sottoscrizione che contiene le tabelle interessate.
- Tabella
- Specifica il nome di una tabella di origine nella sottoscrizione che CDC Replication contrassegna per l'aggiornamento. È necessario specificare il nome della tabella nel formato schema.tabella. Per specificare più tabelle, elencare le tabelle separate da spazi.
Una volta completato correttamente l'aggiornamento, è possibile riavviare il mirroring per la sottoscrizione.
Nota: è necessario eseguire un aggiornamento alle seguenti condizioni:- Le registrazioni devono essere ritraschiate dall'ora prima dell'esecuzione della modifica DDL; ossia, la posizione di riavvio è precedente alla modifica DDL.
- Le tabelle vengono eliminate e ricreate.
- Avviare il mirroring per le sottoscrizioni che sono state arrestate a causa della modifica DDL. Emettere uno dei seguenti comandi:Per il mirroring continuo:
dmstartmirror -I instance -c -s subscriptionPer il mirroring con una fine pianificata:
dmstartmirror -I instance –n –p position -s subscriptiondove:- instanza
- Specifica il nome dell'istanza CDC Replication .
- posizione
- Specifica la posizione del log nel database di origine.
- abbonamento
- Specifica il nome della sottoscrizione per cui la Replica CDC inizierà il mirroring.