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

  1. 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.

  2. 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.

  3. Terminare la replica per tutte le sottoscrizioni in esecuzione nell'istanza CDC Replication immettendo il seguente comando:
    dmendreplication -I instance -c -s sub1 sub2 subn
    dove:
    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.
  4. Verificare che la registrazione sia configurata per tutte le tabelle di origine interessate dalla DDL
  5. Applicare le modifiche DDL a tutte le tabelle di origine interessate nel database.
  6. 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 subscription
    dove:
    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.

  7. 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 table
    dove:
    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.
  8. 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.

  9. Contrassegna il punto di acquisizione per evitare l'operazione di aggiornamento.
    ./dmmarktablecapturepoint -I instance -s subscription -t table

    Dove

    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.

  10. 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 -f
    dove:
    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.
  11. 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 subscription

    Per il mirroring con una fine pianificata:

    dmstartmirror -I instance –n –p position -s subscription
    dove:
    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.