Scelta di un obiettivo aziendale per la risorsa di replica
Quando si configura la Data Replication risorsa, è necessario impostare l'opzione Obiettivo aziendale per specificare in che modo il servizio replica i dati da un'origine di replica a una destinazione di replica.
Definizione degli obiettivi aziendali
È possibile configurare la risorsa di replica in modo da utilizzare uno dei seguenti tipi di impostazioni degli obiettivi aziendali:
- Copia
- L'obiettivo aziendale Copia configura la risorsa di replica per sincronizzare gli schemi e le tabelle specificati dal database di origine al database di destinazione.
- Log delle modifiche
- L'obiettivo aziendale Change Log configura la risorsa di replica per documentare e tracciare le modifiche apportate allo schema di un database di origine nel tempo in un record denominato registro delle modifiche. Inoltre, la risorsa di replica sincronizza gli schemi e le tabelle dal database di origine a quello di destinazione. Una copia delle modifiche apportate al database di origine e il log delle modifiche vengono inviati al database di destinazione. Per ulteriori informazioni su come personalizzare le impostazioni del registro delle modifiche, consulta l'obiettivo aziendale Configurazione del registro delle modifiche. Utilizza l'obiettivo aziendale Registro delle modifiche per preservare la coerenza, garantire la compatibilità con le versioni precedenti dei tuoi dati e facilitare le migrazioni dello schema tra vari ambienti, come sviluppo, test e produzione.
- Replica CDC
- L'obiettivo aziendale Replica CDC configura la risorsa di replica in modo da utilizzare una connessione Data Replication Access Server per configurare e gestire le sottoscrizioni Change Data Capture (CDC) collegando il Data Replication servizio a una distribuzione di replica CDC remota.
Differenze tra lo scenario Copia e lo scenario Registro delle modifiche
Lo scenario Copia mantiene una copia identica della tabella di origine nel database di destinazione. Lo scenario Change Log conserva una cronologia del flusso delle operazioni, sia DML che DDL, eseguite sul database di origine. Nello scenario Change Log, i dettagli delle modifiche vengono registrati insieme alle modifiche effettive nella tabella di destinazione.
Le tre differenze significative tra lo scenario Copia e lo scenario Registro delle modifiche sono:
- Chiavi primarie
- Nello scenario Change Log possono comparire più istanze della stessa chiave, il che significa che ciò che in uno scenario Copy è una chiave primaria, in uno scenario Change Log diventa un semplice indice.
- Vedi l 'esempio, in cui più righe nella
CHANGE_LOGtabella hanno lo stesso valore di chiave primaria della tabella di origine. - Gestione delle immagini prima e dopo
- I record di inserimento non hanno un prima, quindi il database di destinazione non ha operazioni di inserimento per un'immagine precedente.
- I record eliminati non hanno un after, quindi il database di destinazione non ha operazioni di inserimento per un'immagine after.
- I record di aggiornamento hanno segmenti sia prima che dopo, quindi il database di destinazione contiene entrambe le immagini inserite.
- Vedi l'esempio seguente per capire come vengono gestite le immagini prima e dopo per i DML nel registro delle modifiche.
- Struttura di tabella
- Lo scenario Registro delle modifiche espande le colonne o le righe prima e dopo in base al tipo di Registro delle modifiche.
- Nello scenario Copia, la struttura della tabella di destinazione è identica a quella della tabella originale.
- Si veda l'esempio seguente, in cui la
CHANGE_LOGtabella fornisce ulteriori informazioni sulle operazioni eseguite. Nello scenario Copia, sia la tabella di origine che quella di destinazione hanno dati e struttura identici.
Database di origine e destinazione compatibili basati sugli obiettivi aziendali
Assicurati che la fonte e la destinazione scelte possano essere utilizzate per il tuo obiettivo aziendale:
| Archivio dati | Copia | Log delle modifiche | Replica CDC |
|---|---|---|---|
| Amazon RDS for PostgreSQL | Fonte ✓ | Fonte ✓ | |
| Apache Kafka | Obiettivo ✓ | Obiettivo ✓ | |
| Data ReplicationIBM Server di accesso | Fonte ✓ Destinazione ✓ |
||
| IBM Db2 | Fonte ✓ | Fonte ✓ | |
| IBM Db2 on Cloud | Fonte ✓ Destinazione ✓ |
Fonte ✓ Destinazione ✓ |
|
| IBM Db2 Warehouse | Obiettivo ✓ | Obiettivo ✓ | |
| IBM Db2 for z/OS | Fonte ✓ | Fonte ✓ | |
| IBM watsonx.data | Obiettivo ✓ | Obiettivo ✓ | |
| Oracle | Fonte ✓ | Fonte ✓ | |
| PostgreSQL | Fonte ✓ | Fonte ✓ | |
| Microsoft SQL Server | Fonte ✓ | Fonte ✓ |
Esempi
Si veda il seguente esempio di replica dei dati con gli scenari Copia e Registro delle modifiche:
Se desideri replicare i dati utilizzando il tipo delete_insert_pair Change Log per le seguenti operazioni SQL:
INSERT INTO SOURCE_TABLE (ID, NAME) VALUES (1, 'abc');
INSERT INTO SOURCE_TABLE (ID, NAME) VALUES (2, 'xyz');
UPDATE SOURCE_TABLE SET NAME ='upd' WHERE ID = 1;
DELETE FROM SOURCE_TABLE WHERE ID = 2;
La tabella seguente è la tabella di origine e ID è la chiave primaria:
| ID | Nome |
|---|---|
| 1 | upd |
Per uno scenario di copia, la tabella di destinazione avrebbe il seguente aspetto:
| ID | Nome |
|---|---|
| 1 | upd |
Per uno scenario di registro delle modifiche con la query SQL:
SELECT ID, NAME, OPTYPE, SEQUENCE, TRANSACTION_ID FROM TARGET_TABLE ORDER BY TRANSACTION_ID ASCENDING, SEQUENCE ASCENDING
la tabella di destinazione apparirà come segue:
| ID | Nome | OPTYPE | SEQUENZA | transaction_id |
|---|---|---|---|---|
| 1 | abc | Inserisci | 1 | 001 |
| 2 | xyz | Inserisci | 2 | 002 |
| 1 | abc | UpdateBefore | 3 | 003 |
| 1 | upd | UpdateAfter | 4 | 003 |
| 2 | xyz | Elimina | 5 | 004 |
La tabella di destinazione contiene colonne aggiuntive quali SEQUENCE, OPTYPE, TRANSACTION_ID con informazioni sulla cronologia delle operazioni.
Si veda il seguente esempio di come lo scenario Change Log registra le operazioni DML. Ogni operazione DML eseguita sul database o sulla tabella di origine viene applicata come nuovo record alla tabella Change Log di destinazione, insieme a informazioni aggiuntive basate sulla colonna Change Log selezionata:
Esempio:
Si desidera eseguire la seguente sequenza di operazioni SQL:
INSERT INTO SOURCE_TABLE (ID, NAME) VALUES (1, 'abc');
INSERT INTO SOURCE_TABLE (ID, NAME) VALUES (2, 'xyz');
UPDATE SOURCE_TABLE SET NAME ='upd' WHERE ID = 1;
DELETE FROM SOURCE_TABLE WHERE ID = 2;
La tabella di destinazione avrà il seguente aspetto:
| ID | Nome | OPTYPE | SEQUENZA | transaction_id |
|---|---|---|---|---|
| 1 | abc | Inserisci | 1 | 001 |
| 2 | xyz | Inserisci | 2 | 002 |
| 1 | abc | UpdateBefore | 3 | 003 |
| 1 | upd | UpdateAfter | 4 | 003 |
| 2 | xyz | Elimina | 5 | 004 |