Utilizzo di più gruppi di processi
In genere, per l'acquisizione efficiente da un database è necessario un solo gruppo Extract. Tuttavia, a seconda dei valori redo (transazionali) o dei dati e dei tipi di operazione, è possibile che sia necessario aggiungere uno o più gruppi Extract alla configurazione.
Analogamente, in genere è necessario un solo gruppo Replicat per applicare i dati a un database di destinazione se si utilizza Replicat in modalità coordinata. Tuttavia, anche in alcuni casi quando si utilizza Replicat in modalità coordinata, potrebbe essere necessario utilizzare più gruppi Replicat. Se si utilizza Replicat in modalità classica e le applicazioni generano un volume elevato di transazioni, probabilmente sarà necessario utilizzare gruppi Replicat paralleli.
Ogni componente di Oracle GoldenGate, Extract, trail, DISTPATH e Replicat, è un modulo indipendente, pertanto puoi combinarlo in modo da soddisfare le tue esigenze. Puoi utilizzare più trail e processi Extract e Replicat paralleli per gestire grandi volumi di transazioni, migliorare le prestazioni, eliminare i colli di bottiglia, ridurre la latenza o isolare l'elaborazione di dati specifici.
Il diagramma riportato di seguito mostra alcuni dei modi in cui è possibile configurare Oracle GoldenGate per migliorare la velocità di throughput e superare i problemi di larghezza di banda della rete.

Le etichette delle immagini implicano quanto segue:
-
A: le estrazioni parallele dividono il carico. Ad esempio, per schema o per isolare le tabelle che generano recuperi.
-
B: è possibile utilizzare un'estrazione con trail locale per filtrare, convertire e impostare la tolleranza false di rete.
-
C: più DISTPATHS interagiscono con le limitazioni della larghezza di banda per processo della rete per abilitare il throughput TCP/IP. Dividere le istruzioni dei parametri
TABLEtra loro. -
D: le repliche parallele aumentano il throughput nel database. Qualsiasi percorso può essere letto da uno o più Replicat. Dividere le affermazioni
MAPtra loro.
Linee guida per l'utilizzo di più gruppi di processi
Prima di configurare più gruppi di elaborazione, esaminare le linee guida riportate di seguito per assicurarsi che la configurazione produca i risultati previsti e mantenga l'integrità dei dati.
Gestione dell'integrità dei dati
Non tutti i carichi di lavoro possono essere partizionati tra più gruppi e conservano comunque l'atomicità della transazione originale. È necessario determinare se gli oggetti in un gruppo avranno mai dipendenze su oggetti in qualsiasi altro gruppo, transazionale o altro. Ad esempio, le tabelle per le quali il carico di lavoro aggiorna regolarmente la chiave primaria non possono essere partizionate facilmente in questo modo. La replica DDL (se supportata per il database) non è valida in questa modalità, né l'uso di alcune funzioni SQLEXEC o EVENTACTIONS che basano le proprie azioni su un record specifico.
Se le tabelle non dispongono di dipendenze di chiave esterna o aggiornamenti alle chiavi primarie, è possibile utilizzare più processi. Mantieni il DML correlato insieme nello stesso flusso di processi per garantire l'integrità dei dati.
Numero di gruppi
Il numero di gruppi di processi Extract e Replicat concorrenti che possono essere eseguiti su un sistema dipende dalla quantità di memoria di sistema disponibile. Ogni processo Extract e Replicat classico richiede circa 25-55 MB di memoria o più, a seconda della dimensione delle transazioni e del numero di transazioni concorrenti. L'interfaccia dei comandi di Oracle GoldenGate supporta in modo completo fino a 5.000 gruppi Extract e Replicat concorrenti (combinati) per ogni istanza di Oracle GoldenGate. Al livello supportato è possibile controllare e visualizzare tutti i gruppi in maniera completa mediante comandi quali INFO e STATUS
Oltre il livello supportato, le informazioni sul gruppo non vengono visualizzate e potrebbero verificarsi errori. Oracle GoldenGate consiglia di mantenere il numero di gruppi Extract e Replicat (combinati) a un livello più gestibile, ad esempio 100 o inferiore, per gestire l'ambiente in modo efficace. Il numero massimo di gruppi è controllato dal parametro MAXGROUPS, che ha un valore predefinito di 1000.
Per gli ambienti Windows Server, il numero di gruppi di processi che è possibile eseguire è strettamente associato alle impostazioni di memoria heap del desktop Windows "non interattivo". Le impostazioni predefinite per l'heap desktop di Windows possono essere sufficienti per eseguire un numero molto ridotto di gruppi di processi, ma man mano che ci si avvicina a grandi quantità di gruppi di processi, più di 60 o giù di lì, sarà necessario regolare il ' valore non interattivo del campo SharedSection nel registro, basato su queste informazioni di Microsoft (memoria heap desktop Windows), o aumentare il numero di home Oracle GoldenGate e distribuire il numero totale di gruppi di processi desiderati in queste home. Nota: per ulteriori informazioni sulla modifica della memoria heap di Windows Desktop, consultare il documento della Oracle Knowledge Base riportato di seguito (ID documento 2056225.1).
Memoria
Il sistema deve disporre di spazio di swap sufficiente per ogni processo Extract e Replicat di Oracle GoldenGate in esecuzione. Per determinare lo spazio di swap richiesto:
-
Avviare un Extract o Replicat.
-
Esegui client di amministrazione.
-
Visualizzare il file del report e trovare la riga
PROCESS VM AVAIL FROM OS (min). -
Arrotonda il valore al gigabyte completo successivo, se necessario. Ad esempio, arrotondare per eccesso 1.76GB a 2 GB.
-
Moltiplicare tale valore per il numero di processi Extract e Replicat che verranno eseguiti. Il risultato è la quantità massima di spazio di swap che potrebbe essere richiesta
Per ulteriori informazioni sulla gestione della memoria, vedere il parametro CACHEMGR in Parameters and Functions Reference for Oracle GoldenGate.
Isolamento di tabelle estese all'elaborazione
È possibile utilizzare più gruppi di processi per supportare determinati tipi di tabelle che tendono a interferire con l'elaborazione normale e a generare latenza sulla destinazione. Ad esempio:
-
Potrebbe essere necessario eseguire un recupero dal database a causa del tipo di dati della colonna, a causa delle specifiche dei parametri o per eseguire procedure SQL. Quando i dati devono essere recuperati dal database, influiscono sulle prestazioni di Extract. È possibile ottenere le statistiche di recupero dal comando
STATS EXTRACTse si include il parametroSTATOPTIONS REPORTFETCHnel file dei parametri Extract. È quindi possibile isolare tali tabelle nei propri gruppi Extract, supponendo che sia possibile mantenere l'integrità transazionale. -
Nella sua modalità classica, il processo Replicat può essere una fonte di colli di bottiglia delle prestazioni perché è un processo a thread singolo che applica le operazioni una alla volta utilizzando SQL normale. Anche se
BATCHSQLè abilitato (vedere Riferimento parametri e funzioni per Oracle GoldenGate) Replicat può richiedere più tempo per elaborare le tabelle con transazioni di grandi dimensioni o con tempi di esecuzione lunghi, volumi elevati, un numero molto elevato di colonne che cambiano e dati LOB. È quindi possibile isolare tali tabelle nei propri gruppi Replicat, supponendo che sia possibile mantenere l'integrità transazionale.