Editionsbasierte Neudefinition verwenden
Oracle GoldenGate unterstützt die Verwendung von Edition-based Redefinition (EBR) mit Oracle Databases. So können Sie die Datenbankkomponente einer Anwendung upgraden, während sie verwendet wird, und so Ausfallzeiten minimieren oder eliminieren.
Editionen sind Nicht-Schemaobjekte, zu denen Editioned-Objekte gehören. Editionen können als Eigentümer von Editionsobjekten oder als Namespace betrachtet werden. Jede Datenbank beginnt mit einer Edition namens ORA$BASE, zu der auch aktualisierte Datenbanken gehören. In einer Datenbank können mehrere Editionen vorhanden sein, und jede Edition kann nur ein untergeordnetes Element aufweisen. Beispiel: Wenn Sie drei Editionen nacheinander erstellen, edition1, edition2, edition3, ist edition1 das übergeordnete Element von edition2, das übergeordnete Element von edition3. Dies ist unabhängig von dem Benutzer oder der Datenbanksession, die sie erstellt hat, oder welcher Edition beim Erstellen der neuen Edition aktuell war. Wenn Sie eine Edition erstellen, erbt sie alle Editionen der übergeordneten Objekte. Um Editionen mit Oracle GoldenGate zu verwenden, müssen Sie sie erstellen.
Ein Objekt wird als Edition betrachtet, wenn es sich um einen Edition-fähigen Typ handelt, es mit dem Attribut EDITIONABLE erstellt wird und das Schema für die Editionierung dieses Objekttyps aktiviert ist. Wenn Sie ein Editionsobjekt erstellen, ändern oder löschen, enthält das Redo Log den Namen der Edition, zu der es gehört. In einer Containerdatenbank gehören Editionen zum Container, und jeder Container hat seine eigene Standardedition.
Die CREATE | DROP EDITION-DDLs werden für alle Extract-Konfigurationen erfasst. Sie fallen in die Kategorie OTHER und haben den Optionswert EDITION OBJTYPE zugewiesen. Die Option OBJTYPE kann zum Filtern verwendet werden. Beispiel:
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*
Sie müssen die folgende Syntax verwenden, um eine Edition aus Extract oder Replicat auszuschließen:
EXCLUDE OBJTYPE EDITION, ALLOWEMPTYOWNER OBJNAME *edition_name*
Editionen fallen in die Kategorie OTHER, sodass keine Zuordnung für den Editionsnamen durchgeführt wird. Wenn die Berechtigung USE angewendet wird, wird sie automatisch dem Replicat-Benutzer erteilt. Replicat führt außerdem einen grant use on edition Namen with grant option für den ursprünglichen erstellenden Benutzer aus, wenn dieser Benutzer in der Zieldatenbank vorhanden ist. Da Editionen keine zuordnungsfähigen Vorgänge sind, haben sie keine Eigentümer, sodass die standardmäßige EXCLUDE-Anweisung nicht funktioniert.
Die DDLs, mit denen Editionen erstellt oder geändert werden, aktivieren den Benutzer nicht für Editionen, sondern das Schema für Editionen. Dies ist ein wichtiger Unterschied, da es bedeutet, dass der Replicat-Benutzer nicht für Editionen aktiviert werden muss, um DDLs auf Editionsobjekte anzuwenden. Wenn Replicat eine CREATE EDITION-DDL anwendet, erteilt es die ursprüngliche erstellende Benutzerberechtigung für USE, wenn der ursprüngliche Benutzer in der Zieldatenbank vorhanden ist. Für alle nicht replizierten CREATE EDITION-Anweisungen müssen Sie dem Replicat-Benutzer eine USE WITH GRANT OPTION-Berechtigung erteilen.
Ob Editionen von Objekten erstellt werden können, wird durch das Schema gesteuert, in dem sie angewendet werden. Replicat wechselt die aktuelle Session Edition, bevor eine DDL angewendet wird, wenn das Editionsnamensattribut in der Traildatei vorhanden ist und nicht leer ist.
Containerdatenbankumgebungen werden sowohl für Extract als auch für Replicat unterstützt. Eine zusätzliche Konfiguration ist nicht erforderlich. Das Schema des Replicat-Benutzers kann nicht für Editionen aktiviert werden, wenn es sich um einen allgemeinen Benutzer handelt. Das Schema des Replicat-Benutzers muss nicht für Editionen aktiviert werden, wenn DDLs auf Editionsobjekte in anderen Schemas angewendet werden.
Ab Oracle Database 23ai können zuvor blockierte Online-DDL-Vorgänge ausgeführt werden. Dies bietet zusätzliche Flexibilität für Oracle Application Upgrades, die mit Edition Based Redefinition (EBR) durchgeführt werden. Weitere Informationen finden Sie unter Verwenden der Edition-basierten Neudefinition im Oracle AI Database Development Guide.
Oracle GoldenGate Extract und Replicat können auch die Replikation für solche DDL-Vorgänge verwalten, sodass Änderungen von Oracle-Anwendungsupgrades korrekt repliziert werden. Darüber hinaus können Sie nicht verwendete Spalten online aus Tabellen entfernen, in denen ACDR entfernt wird.