Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione descrive come usare Change Data Capture (CDC) nel processo di copia per replicare in modo efficiente le modifiche dei dati da un database Oracle a una destinazione. Oracle CDC sfrutta LogMiner, un'utilità predefinita di Oracle Database che legge i file di log redo online e archiviati per acquisire le modifiche ai dati. In questo modo i dati di destinazione rimangono aggiornati automaticamente.
Prerequisiti
Prima di iniziare, accertati di avere quanto segue:
Requisiti del database Oracle:
- Un database Oracle (versione 11g o successiva) con accesso alle tabelle di origine.
- Il database deve essere in esecuzione in modalità ARCHIVELOG . La modalità ARCHIVELOG consente a Oracle di archiviare i file di registro di redo, il che è necessario affinché LogMiner possa accedere alle modifiche storiche.
- La registrazione supplementare a livello di database deve essere abilitata (registrazione supplementare minima almeno).
- La registrazione supplementare a livello di tabella deve essere abilitata in ogni tabella da cui si desidera acquisire le modifiche.
- Un utente del database con i privilegi necessari per accedere a LogMiner e leggere i log di rollforward (vedere Abilitare CDC tramite LogMiner in Oracle per informazioni dettagliate).
- I log di redo archiviati devono essere conservati per un periodo più lungo rispetto all'intervallo tra le esecuzioni programmate del lavoro di copia per evitare la perdita di dati.
Per altre informazioni su Oracle LogMiner e la registrazione supplementare, vedere la documentazione ufficiale di Oracle:
- LogMiner: utilizzo per analizzare i file di log redo
- Registrazione supplementare
- Gestione dei file di redo log archiviati
Requisiti dell'infrastruttura:
- Un'area di lavoro di Fabric con le autorizzazioni necessarie per creare un job di copia.
- Archivio dati di destinazione supportato dal processo di copia per la replica CDC.
- Un gateway dati locale che esegue la versione 3000.310 o successiva, configurato per connettersi al database Oracle.
Suggerimento
Usare il ruolo SYSDBA o DBA in Oracle per eseguire attività amministrative, come abilitare la modalità ARCHIVELOG e concedere privilegi LogMiner. Per le operazioni CDC quotidiane, creare un utente dedicato con solo le autorizzazioni necessarie.
Abilitare CDC tramite LogMiner in Oracle
Oracle usa LogMiner per catturare le modifiche ai dati dai file di log di ripristino. Per abilitare CDC, è necessario configurare la modalità ARCHIVELOG, la registrazione supplementare e le autorizzazioni utente appropriate. Seguire questa procedura per configurare il database Oracle per CDC.
Passaggio 1: Abilitare la modalità ARCHIVELOG
La modalità ARCHIVELOG garantisce che Oracle archivii i file di log di ripristino, che LogMiner richiede per leggere le modifiche cronologiche. Per controllare e abilitare la modalità ARCHIVELOG:
Connettiti al database Oracle in qualità di utente con
SYSDBAprivilegi.Controllare la modalità di log dell'archivio corrente:
SELECT LOG_MODE FROM V$DATABASE;Se il risultato mostra
NOARCHIVELOG, procedere con i passaggi seguenti per abilitarlo.Arrestare e riavviare il database in modalità di montaggio, quindi abilitare la modalità ARCHIVELOG:
SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;Verificare che la modalità ARCHIVELOG sia abilitata:
SELECT LOG_MODE FROM V$DATABASE;Il risultato dovrebbe mostrare
ARCHIVELOG.
Importante
L'abilitazione della modalità ARCHIVELOG richiede un riavvio del database. Pianificare questa modifica durante una finestra di manutenzione per ridurre al minimo l'impatto sull'ambiente di produzione.
Per altre informazioni, vedere Gestione dei file di registro Redo archiviati nella documentazione Oracle.
Passaggio 2: Abilitare la registrazione supplementare
Il logging supplementare include dati di colonna aggiuntivi nei log di redo, necessari per consentire a LogMiner di ricostruire accuratamente le modifiche dei dati.
Abilitare la registrazione supplementare a livello di database minima:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;Abilitare la registrazione supplementare a livello di tabella in ogni tabella da cui si vogliono acquisire le modifiche. Per ogni tabella, eseguire uno dei comandi seguenti:
Per registrare tutte le colonne (consigliate per il rilevamento completo delle modifiche):
ALTER TABLE <schema_name>.<table_name> ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;Per registrare solo le colonne chiave primaria:
ALTER TABLE <schema_name>.<table_name> ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;Sostituire
<schema_name>e<table_name>con i nomi dello schema e delle tabelle.Esempio:
ALTER TABLE sales.customers ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; ALTER TABLE sales.orders ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;Verificare che la registrazione supplementare sia abilitata a livello di database:
SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_ALL FROM V$DATABASE;Verificare che
SUPPLEMENTAL_LOG_DATA_MINmostriYES.Verificare la registrazione supplementare a livello di tabella:
SELECT OWNER, TABLE_NAME, LOG_GROUP_NAME, LOG_GROUP_TYPE FROM DBA_LOG_GROUPS WHERE OWNER = '<schema_name>' AND TABLE_NAME = '<table_name>';
Per altre informazioni, vedere Registrazione supplementare nella documentazione di Oracle.
Passaggio 3: Creare un utente LogMiner e concedere privilegi
Creare un utente di database dedicato per le operazioni LogMiner CDC e concedere i privilegi necessari:
Creare l'utente:
CREATE USER <logminer_user> IDENTIFIED BY <password>;Concedere i privilegi necessari:
GRANT CREATE SESSION TO <logminer_user>; GRANT SELECT_CATALOG_ROLE TO <logminer_user>; GRANT CONNECT, RESOURCE TO <logminer_user>; GRANT EXECUTE_CATALOG_ROLE TO <logminer_user>; GRANT FLASHBACK ANY TABLE TO <logminer_user>; GRANT SELECT ANY DICTIONARY TO <logminer_user>; GRANT SELECT ANY TABLE TO <logminer_user>; GRANT LOGMINING TO <logminer_user>;Sostituire
<logminer_user>e<password>con il nome utente e la password desiderati.Annotazioni
Il
LOGMININGprivilegio è disponibile in Oracle 12c e versioni successive. Per Oracle 11g, assegnareSELECT ANY TRANSACTIONanziché.Concedere l'accesso SELECT alle tabelle di origine:
GRANT SELECT ON <schema_name>.<table_name> TO <logminer_user>;Ripetere questo comando per ogni tabella di origine.
Verificare che l'utente che la connessione Oracle usi abbia il
FLASHBACK ANY TABLEprivilegio . Il processo di copia richiede questo privilegio per acquisire uno snapshot coerente durante il caricamento completo iniziale.SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS WHERE PRIVILEGE LIKE 'FLASHBACK%' ORDER BY GRANTEE, PRIVILEGE;La
GRANTEEcolonna deve includere il nome utente configurato nella connessione Oracle. Se ilFLASHBACK ANY TABLEprivilegio non è elencato per l'utente, concederlo:GRANT FLASHBACK ANY TABLE TO <logminer_user>;
Annotazioni
- LogMiner legge i file di log redo per acquisire le operazioni INSERT, UPDATE e DELETE.
- La registrazione supplementare a livello di database deve essere abilitata prima della registrazione supplementare a livello di tabella.
- I log di rollforward archiviati occupano spazio su disco aggiuntivo. Configurare un criterio di conservazione appropriato per bilanciare i costi di archiviazione e i requisiti CDC.
- Assicuratevi che il periodo di conservazione dei log di redo sia più lungo dell'intervallo di processo di copia pianificato per evitare la perdita di dati delle modifiche.
Per ulteriori informazioni su Oracle LogMiner, consultare la documentazione ufficiale di Oracle - Utilizzo di LogMiner per analizzare i file di redo log.
Creare un processo di copia con Oracle Database CDC
Annotazioni
- La procedura seguente è molto simile a quella eseguita in Usare il processo di copia per inserire dati dal database SQL di Azure tramite CDC a un altro database SQL di Azure
Completare i passaggi seguenti per creare un nuovo processo di copia per inserire dati dal database Oracle tramite CDC a una destinazione:
Selezionare + Nuovo elemento, scegliere l'icona Copia processo , assegnare un nome al processo di copia e selezionare Crea.
Screenshot che mostra come navigare alla pagina iniziale di Data Factory e creare una nuova attività di copia.
Scegliere l'archivio dati da cui copiare i dati. In questo esempio scegliere Database Oracle.
Immettere i dettagli di connessione e le credenziali per connettersi al database Oracle. È possibile copiare i dati in modo sicuro all'interno di un ambiente di rete virtuale usando un gateway dati locale.
È necessario avere una chiara visibilità delle tabelle di origine abilitate da CDC. Selezionare le tabelle con CDC attivato per la copia.
Tabelle con CDC abilitato:
Tabelle senza CDC abilitato:
Seleziona il tuo negozio di destinazione. Scegliere una destinazione che supporti operazioni di merge o upsert CDC per una replica CDC ottimizzata.
Selezionare Copia incrementale e vedrete che non è necessario inserire alcuna colonna Incrementale per ogni tabella per tenere traccia delle modifiche. Il metodo Update predefinito deve essere impostato su Merge e le colonne chiave necessarie corrispondono alla chiave primaria definita nell'archivio di origine per impostazione predefinita.
Annotazioni
Il processo di copia inizialmente esegue un caricamento completo e successivamente effettua copie incrementali durante le esecuzioni successive tramite CDC.
Esaminare il riepilogo del processo, impostare l'opzione di esecuzione su in base alla pianificazione e selezionare Salva + Esegui.
Annotazioni
Assicurarsi che il periodo di conservazione dei log di rollforward archiviato di Oracle sia superiore all'intervallo tra le esecuzioni pianificate; in caso contrario, i dati modificati potrebbero essere persi se non elaborati entro il periodo di conservazione.
Il processo di copia viene avviato immediatamente. La prima esecuzione copia uno snapshot completo iniziale.
Aggiornare le tabelle di origine in Oracle inserendo, aggiornando o eliminando righe.
Eseguire di nuovo il processo di copia per acquisire e replicare tutte le modifiche, incluse le righe inserite, aggiornate ed eliminate, nella destinazione.