Utilizzo della ridefinizione basata su edizione
Oracle GoldenGate supporta l'uso della ridefinizione basata su Edition (EBR) con i database Oracle che consente di eseguire l'upgrade del componente di database di un'applicazione mentre è in uso, riducendo al minimo o eliminando i tempi di inattività.
Le edizioni sono oggetti non di schema a cui appartengono gli oggetti Editioned. Le edizioni possono essere considerate proprietarie di oggetti in edizione o come uno spazio di nomi. Ogni database inizia con un'edizione denominata ORA$BASE, che include i database aggiornati. In un database possono esistere più edizioni e ciascuna può avere un solo figlio. Ad esempio, se si creano tre edizioni in successione, edition1, edition2, edition3, edition1 è il padre di edition2, ovvero il padre di edition3. Indipendentemente dalla sessione utente o database che li crea o dall'edizione corrente al momento della creazione della nuova. Quando si crea un'edizione, vengono ereditati tutti gli oggetti in edizione del relativo padre. Per utilizzare le edizioni con Oracle GoldenGate, è necessario crearle.
Un oggetto viene considerato edificato se è di tipo edificabile, viene creato con l'attributo EDITIONABLE e lo schema è abilitato per l'edizione di quel tipo di oggetto. Quando si crea, modifica o elimina un oggetto con edizione, il redo log conterrà il nome dell'edizione a cui appartiene. In un container database, le edizioni appartengono al container e ogni container ha la propria edizione predefinita.
Le DDL CREATE | DROP EDITION vengono acquisite per tutte le configurazioni Extract. Essi rientrano nella categoria OTHER e hanno assegnato un valore di opzione OBJTYPE pari a EDITION. L'opzione OBJTYPE può essere utilizzata per filtrare, ad esempio:
DDL EXCLUDE OBJTYPE EDITION
DDL EXCLUDE OBJTYPE EDITION OPTYPE CREATE
DDL EXCLUDE OBJTYPE EDITION OPTYPE DROP
DDL EXCLUDE OBJTYPE EDITION OPTYPE DROP ALLOWEMPTYOWNER OBJNAME *edition_name*
Per escludere un'edizione da Extract o Replicat, è necessario utilizzare la sintassi seguente:
EXCLUDE OBJTYPE EDITION, ALLOWEMPTYOWNER OBJNAME *edition_name*
Le edizioni rientrano nella categoria OTHER, pertanto non viene eseguita alcuna mappatura sul nome dell'edizione. Quando viene applicata, l'autorizzazione USE viene concessa automaticamente all'utente Replicat. Replicat eseguirà anche un grant use on edition nome with grant option per l'utente di creazione originale se tale utente esiste nel database di destinazione. Poiché le edizioni non sono operazioni mappabili, non dispongono di proprietari, l'istruzione EXCLUDE standard non funziona.
Le DDL utilizzate per creare o modificare le edizioni non abilitano l'utente per le edizioni, ma abilitano lo schema per le edizioni. Questa è una distinzione importante perché significa che l'utente Replicat non deve essere abilitato per le edizioni per applicare DDL agli oggetti con edizione. Quando Replicat applica una DDL CREATE EDITION, concede all'utente di creazione originale l'autorizzazione per USE, se l'utente originale esiste nel database di destinazione. Per qualsiasi istruzione CREATE EDITION non replicata, è necessario concedere un'autorizzazione USE WITH GRANT OPTION all'utente Replicat.
Il fatto che un oggetto edificabile venga o meno edificato è controllato dallo schema in cui viene applicato. Replicat cambia l'edizione della sessione corrente prima di applicare una DDL se l'attributo nome edizione esiste nel file trail e non è vuoto.
Gli ambienti di container database sono supportati sia per Extract che per Replicat. Non è necessaria alcuna configurazione aggiuntiva. Lo schema dell'utente Replicat non può essere abilitato per le edizioni se si tratta di un utente comune. Non è necessario che lo schema dell'utente Replicat sia abilitato per le edizioni quando si applicano DDL a oggetti con edizioni in altri schemi.
Da Oracle Database 23ai in poi, è possibile eseguire le operazioni DDL online precedentemente bloccate. Ciò offre ulteriore flessibilità per gli upgrade delle applicazioni Oracle eseguiti con la ridefinizione basata su edizione (EBR). Per informazioni dettagliate, vedere Using Edition-Based Redefinition in Oracle AI Database Development Guide.
Oracle GoldenGate Extract e Replicat sono anche in grado di gestire la replica per tali operazioni DDL in modo che le modifiche apportate agli upgrade dell'applicazione Oracle vengano replicate correttamente. Inoltre, sarà possibile eseguire il DROP delle colonne inutilizzate in linea dalle tabelle in cui viene rimosso ACDR.