Logo Oracle Deutschland   DBA Community  -  Mai 2013
Oracle Enterprise Manager Cloud Control 12c: Änderungen bei Datenbankobjekten verwalten, vergleichen und ausgleichen
von Ralf Durben, Oracle Deutschland B.V. & Co. KG

Mit Cloud Control können Sie die Definition von Datenbank Objekten miteinander vergleichen und Unterschiede ausgleichen. Auch Inhalte von Datenbankabellen können miteinander verglichen werden. Diese Funktionalität wurde in früheren Versionen von Enterprise Manager im Rahmen des Change Management Packs zur Verfügung gestellt. Seit Cloud Control 12c ist diese Funktionalität Bestandteil des Lifecycle Management Packs.

Die Anwendungsmöglichkeiten sind vielfältig:

  • Prüfen, ob ein Datenmodell in einer Produktionsumgebung noch den zertifizierten Vorgaben entspricht.
  • Prüfen, ob die Datenbankobjekte von Datenbankkopien wirklich noch gleich definiert sind.
  • Einspielen einer neuen Version eines Datenmodells in der Produktionsumgebung durch Generierung von Änderungsskripten.
  • Kontrolle, ob Prozeßsteuerungsdaten verändert wurden
  • uvm.
In diesem Zusammenhang bietet Cloud Control fünf Aktionen an: die in diesem Tipp vorgestellt werden und deren Nutzung anhand eines Beispiels erklärt wird.

Schema Baselines

Eine Schema Baseline ist eine aufgezeichnete Version Objektdefinitionen. Diese Objekte können sowohl Schema- als auch Nicht-Schema Objekte sein.

Schema Objekte sind Objekte, die einem Schema zugeordnet sind, also zum Beispiel

  • Tabellen
  • Views
  • Gespeichertes PL/SQL (Prozeduren, Funktionen, Packages)
  • Indizes
  • ...
Nicht-Schema Objekte sind keinem Schema zugeordnet, also globaleDatenbankobjekte. Dazu gehören
  • Tablespaces
  • Benutzer, Rollen, Profile
  • Privilegien
  • ...
Obwohl also von "Schema Baselines", "Schema Vergleiche", usw. gesprochen wird, kann diese Funktionalität auch auf Nicht-Schema Objekte angewendet werden.

In einer Baseline wird die Definition solcher Objekte als Snapshot aufgenommen und gespeichert. Später kann dann zum Beispiel der dann aktuelle Stand der Objektdefinition mit der in der Baseline verglichen werden. Eine Schema Baseline kann aber auch dazu genutzt werden, um Datenbank Objekte in anderen Datenbanken neu zu erstellen und die dafür notwendigen DDL-Kommandos zu generieren.

Eine Baseline kann recht einfach erstellt werden. Dazu gibt es grundsätzlich zwei Navigationsmöglichkeiten.

Navigieren Sie zu "Targets"->"Databases" und öffnen Sie das Menü "Database Features"

Navigieren Sie zu einer Homepage einer Datenbank. Öffnen Sie das Menü "Schema"->"Change Management"

Wählen Sie den Menüpunkt "Schema Baselines". Sie gelangen zur Übersicht über die bereits erstellten Baselines (hier noch leer). Sie erstellen eine neue Baseline mit einem Klick auf "Create".



Geben Sie nun einen Namen für die neue Baseline an. Wählen Sie die Quelldatenbank aus und geben eventuell noch eine Beschreibung an. Klicken Sie dann auf "Next".



Melden Sie sich an die Datenbank an.



Wählen Sie nun die Datenbank Objekte aus, deren Definition in der Baseline aufgezeichnet werden soll. Bei den Schema Objekten können Sie angeben, welche Schemata einbezogen werden sollen. Im hier verwendeten Beispiel sollen alle Nicht-Schema Objekte und die Schemata WDG und WDG1 aufgezeichnet werden.

Unter "Objekt Prefix" können Sie noch Prefixe für die Objektnamen eingeben, die in der Aufzeichnung einbezogen werden sollen. Auch die Instanzparameter können mit einer Aktivierung der Checkbox "Database Attributes"->"Initialization Parameters" berücksichtigt werden. Es geht weiter im Wizard mit "Next".



Als nächstes geben Sie an, wann der Job zum Erstellen der Baseline ausgeführt werden soll. Sie können die Aufzeichnung der Definitionen somit auch regelmäßig wiederholen.

Im oberen Feld müssen Sie auch noch das passende Credential für den Datenbank Benutzer angeben, unter dem der Job laufen soll.

Weiter geht es mit "Next".



Sie starten den Job mit "Submit".



Sie bekommen eine entsprechende Rückmeldung und einen Link, um die Ausführungsdetails zu verfolgen.



Nach einiger Zeit sollte der Job erfolgreich beendet sein.



Zurück zur Übersicht der Baselines sehen Sie, dass die neue Baseline als Version 1 definiert ist. Mit einem Klick auf "Recapture now" können Sie jederzeit eine neue Aufzeichnung durchführen, wobei eine neue Version der Baseline erstellt wird. Mit einem Klick auf "View" können Sie sich den Inhalt der Baseline ansehen.



Sie wählen dann die Version der Baseline aus und können mit einem Klick auf die Anzahl der Objekte eine Liste der aufgezeichneten Objekte bekommen.



Die Liste umfasst alle Objekte, die aufgezeichnet wurden. Mit einem Klick auf den Namen



bekommen Sie die jeweilige Definition angezeigt. Hier zum Beispiel der Datenbank Benutzer DBSNMP



oder die PL/SQL Prozedur WDG.INSERT_WICHTIG



In der Versionsübersicht für die Baseline können Sie mit einem Klick auf den Button "Generate DDL" auch sehr schnell die SQL Kommandos erstellen, die die aufgezeichneten Objekte wiederherstellen würden.



Dabei wird ein Job gestartet,



dessen Ergebnisse in der Spalte DDL unter dem Link "Generated" zur Verfügung stehen.



Sie bekommen das erzeugte Skript angezeigt, welches Sie jetzt bequem speichern können.



Zurück zum Anfang

Schema Vergleiche

Schema Vergleiche werden nicht einfach nur ausgeführt, sondern zunächst einmal als definierter Prozeß gespeichert. Dieser gespeicherte Prozeß kannn jederzeit wiederholt werden. Die Definition eines Schema Vergleichs ist recht einfach:

Navigieren Sie zu "Targets"->"Databases" und öffnen Sie das Menü "Database Features"

Navigieren Sie zu einer Homepage einer Datenbank. Öffnen Sie das Menü "Schema"->"Change Management"



Wählen Sie den Menüpunkt "Schema Comparisons". Sie gelangen zur Übersicht über die bereits erstellten Vergleiche (hier noch leer). Sie erstellen einen neuen Schema Vergleich mit einem Klick auf "Create".



Sie geben jetzt einen Namen für den Schema Vergleich und ggf. einen Kommentar an. Dann legen Sie fest, was miteinander verglichen werden soll. In diesem Schritt geben Sie die "linke" Seite des Vergleichs an, welches eine laufende Datenbank oder eine gespeicherte Baseline sein kann. Klicken Sie auf "Next".



Im zweiten Schritt geben Sie die "rechte" Seite des Vergleichs an, also wieder eine laufende Datenbank oder eine Baseline. Bei der Baseline können Sie natürlich unter den vorhandenen Versionen die passende Baseline wählen. Klicken Sie auf "Next".



Falls Sie eine Baseline ausgewählt haben, werden im nächsten Schritt alle in der Baseline verfügbaren Informationsquellen, bzw. die aufgezeichneten Objekte angezeigt. Sie können für Ihren Vergleich daraus auswählen. Falls Sie zwei laufende Datenbanken vergleichen, können Sie natürlich aus dem Vollen schöpfen. Nach Ihrer Auswahl klicken Sie auf "Next".



Sie können im nächsten Schritt noch einige Optionen setzen. Zum Beispiel können die physikalischen Attribute von Tablespaces (Dateipfade,...) ignoriert werden. Klicken Sie auf "Next" um weiterzukommen.



Sie geben im vorletzten Schritt das passende Credential für die Datenbank(en) an und spezifizieren Jobattribute. Sie können diesen Vergleich so auch regelmäßig laufen lassen, um Änderungen an den Datenbank Objekten automatisch aufspüren zu können. Klicken Sie dann weiter auf "Next".



Sie bekommen die Zusammenfassung angezeigt und Sie starten den Job mit "Submit".



Der Job wurde gestartet und Sie bekommen die dazu passende Rückmeldung, sowie einen Link, um die Job Details aufrufen zu können.



Der Job wird als erfolgreich beendet angezeigt...



...und Sie können in der Liste der Schema Vergleiche nun auf die Ergebnisse zugreifen. Sie können diesen Vergleich mit einem Klick auf "Repeat Now" auch jederzeit wiederholen.

Mit einem Klick auf den Namen des Schema Vergleichs



bekommen Sie eine schnelle Übersicht über das Ergebnis mitgeteilt. Im hier vorliegenden Beispiel sind drei Objekte nicht identisch. Die genauen Unterschiede können Sie jetzt schnell ermitteln, indem Sie die Version des Schema Vergleichs auswählen und auf "View" klicken.



Sie bekommen die Unterschiede angezeigt. Es gibt dabei vier mögliche Vergleichsergebnisse

  • Identisch
  • Nicht Identisch
  • Nur auf rechter Seite vorhanden
  • Nur auf linker Seite vorhanden
Entsprechend können Sie die Anzeige wählen. So können Sie durchaus eine Liste aller Objekte, auch der identischen, erstellen. Im vorliegenden Beispiel wurde der Datenbank Benutzer WDG1 gelöscht.

Wenn Sie Details zu einem Status sehen möchten klicken Sie auf das Ergebnis-Symbol, hier zum Beispiel auf das "Ungleich" der Tabelle WICHTIG.



Im vorliegenden Beispiel wurde der Tabelle WICHTIG also eine neue Spalte KOMMENTAR hinzugefügt.



Auch der Source Code der PL/SQL Prozedur INSERT_WICHTIG hat sich geändert.



Zurück zum Anfang

Schema Synchronisationen

Die in einem Schema Vergleich ermittelten Unterschiede können Sie mit einer Schema Synchronisation auch wieder entfernen. Im vorliegenden Beispiel kann der Zustand der Baseline wiederhergestellt werden.

Eine Schema Synchronisation kann recht einfach erstellt werden. Dazu gibt es grundsätzlich zwei Navigationsmöglichkeiten.

Navigieren Sie zu "Targets"->"Databases" und öffnen Sie das Menü "Database Features"

Navigieren Sie zu einer Homepage einer Datenbank. Öffnen Sie das Menü "Schema"->"Change Management"



Wählen Sie den Menüpunkt "Schema Synchronizations". Sie gelangen zur Übersicht über die bereits erstellten Synchronisations Definitionen (hier noch leer). Sie erstellen eine neue Synchronisation mit einem Klick auf "Create".



Geben Sie nun einen Namen, eine Beschreibung und die Quelle an, aus der Sie die Objekte wiederherstellen möchten. Diese Quelle kann eine Datenbank, Baseline, oder ein Change Plan sein. Change Pläne werden im Folgenden noch beschrieben.

Wenn Sie die Angaben gemacht haben, klicken Sie auf "Next".



Geben Sie das Ziel Ihrer Synchronisation an. Dieses muss eine laufende Datenbank sein.



Sie wählen im nächsten Schritt aus, welche Objekte synchronisiert werden sollen. Im vorliegenden Beispiel soll alles wieder zurückgesetzt werden.



Sie geben wieder die gleichen Optionen wie bei dem Schema Vergleich an und klicken auf "Next".



Die Synchronisation kann interaktiv oder im Hintergrund erfolgen. Im zweiten Fall müssen Sie im folgenden Schritt die passenden Host Credentials angeben. Im vorliegenden Beispiel soll die Synchronisation ohne Interaktion erfolgen. Klicken Sie dann auf "Next".



Als letztes geben Sie die passenden Datenbank Credentials ein, sowie die Einstellungen für den Job, der die Synchronisation durchführt.



Sie bekommen eine Zusammenfassung angezeigt und starten den Job mit einem Klick auf "Submit".



Sie bekommen eine passende Rückmeldung angezeigt, sowie einen Link zur Anzeige der Job Details.



Der Job ist nach einiger Zeit beendet.



Zur Kontrolle können Sie jetzt den gespeicherten Schema Vergleich neu durchführen.

Zurück zum Anfang

Schema Change Pläne

Änderungen, die durch eine Schema Synchronisation ausgeglichen werden sollen, können auch in einem Schema Change Plan definiert werden.

Ein solcher Change Plan kann recht einfach erstellt werden. Dazu gibt es grundsätzlich zwei Navigationsmöglichkeiten.

Navigieren Sie zu "Targets"->"Databases" und öffnen Sie das Menü "Database Features"

Navigieren Sie zu einer Homepage einer Datenbank. Öffnen Sie das Menü "Schema"->"Change Management"



Wählen Sie den Menüpunkt "Schema Change Plans". Sie gelangen zur Übersicht über die bereits erstellten Change Plans (hier noch leer). Sie erstellen einen neuen Plan mit einem Klick auf "Create".



Geben Sie dem neuen Change Plan einen Namen und eine Beschreibung. Klicken Sie auf "OK".



Sie fügen dem Change Plan jetzt die einzelnen Änderungen zu, die "Change Items" genannt werden. Diese Change Items werden aus einem Schema Vergleich entnommen. Im vorliegenden Beispiel wird wieder auf den oben definierten und ausgeführten Schema Vergleich zurückgegriffen. Klicken Sie auf "Create from Comparison".



Geben Sie nun den Schema Vergleich inklusive Version an und wählen Sie die Änderungsrichtung. Bei der Auswahl des Schema Vergleichs wird Ihnen angezeigt, was "Left Side" und was "Right Side" ist.



Sie bekommen jetzt die Unterschiede aus dem Schema Vergleich angezeigt und können auswählen, welche dieser Unterschiede ausgeglichen werden sollen.



Bis hierhin ist dem Leser vielleicht noch nicht klar, wo der Vorteil eines Schema Change Plans liegt, denn letztlich kann eine Synchronisation ja auch direkt auf Basis eines Schema Vergleichs erfolgen. Bei genauerer Betrachtung fällt aber auf, dass ein Schema Change Plan die Ergebnisse mehrerer Schema Vergleiche berücksichtigen kann und so auch eine Synchronisation für mehrere Schema Vergleiche in einem Schritt möglich ist.

Wenn der Schema Change Plan soweit definiert ist, kann aus der Liste der Change Pläne direkt eine Synchronisation erfolgen durch den Button "Create Synchronisation from Change Plan".



Zurück zum Anfang

Schema Change Pläne

Sie können auch die Daten von Tabellen miteinander vergleichen. Dieses wird in der Praxis hauptsächlich für statische Daten, wie zum Beispiel zur Prozeßsteuerung, interessant sein. Der Vergleich kann nur in laufenden Datenbanken und nicht in Baselines stattfinden. Dabei ist zu beachten, dass eine der beiden Datenbanken mindestens eine Oracle Database 11g sein muss, und die andere mindestens eine Oracle Database 10g.

Sie haben zur Nutzung dieser Funktionalität wieder zwei Navigationsmöglichkeiten.

Navigieren Sie zu "Targets"->"Databases" und öffnen Sie das Menü "Database Features"

Navigieren Sie zu einer Homepage einer Datenbank. Öffnen Sie das Menü "Schema"->"Change Management"



Wählen Sie den Menüpunkt "Data Comparisons". Sie gelangen zur Übersicht über die bereits erstellten Vergleichsdefinitionen (hier noch leer). Sie erstellen einen neuen Vergleich mit einem Klick auf "Create".



Geben Sie einen Namen und ggf. eine Beschreibung an. Desweiteren legen Sie jetzt fest in welchen Datenbanken der Vergleich durchgeführt werden soll. Dabei wird unterschieden zwischen Referenz-Datenbank (muss mindestens eine Oracle Database 11g sein) und Kandidat-Datenbank (muss mindestens eine Oracle Database 10g sein).



Geben Sie passenden Datenbank Credentials an. Im vorliegenden Beispiel spielt sich alles in einer Datenbank ab, also wird nur ein Credential angefordert. Klicken Sie auf "Login".



Sie geben jetzt die zu vergleichenden Tabellen an. Unter "Actions" können Sie hier einzelne Tabellenpaare oder mehrere Objekte auswählen.



Wählen Sie die Tabellen und die zu berücksichtigenden Spalten aus. Im vorliegenden Beispiel werden zwei Tabellen mit unterschiedlichen Namen und aus unterschiedlichen Schemas miteinander verglichen.

Sie können den Vergleich auch auf Teilbereiche der Tabelle einschränken, indem Sie eine WHERE Klausel festlegen. Klicken Sie dann auf "OK".



Wenn Sie alle zu vergleichenden Tabellen ausgewählt haben klicken Sie auf "OK".



Die Definition des Datenvergleichs ist abgeschlossen. Sie starten den Vergleich mit einem Klick auf "Submit Comparison Job...".



Sie geben die Datenbank Credentials und Job Optionen an und klicken auf "Submit".



Sie bekommen eine Rückmeldung und gelangen auf die Liste aller Datenvergleichs-Definitionen. Der Job wurde geplant. Klicken Sie auf "Refresh"...



...bis der Job Status "SUCCEEDED" ist. Sie können die Ergebnisse über den Button "View Results" abrufen.



Im vorliegenden Beispiel gibt es eine Zeile, die nur in der Kandidat-Datenbank existiert (bzw. hier im zweiten Schema WDG1). Über den Button "View Row Differences" erfahren Sie Details.



Die zusätzliche Zeile, die nur im Schema WDG1 existiert wird angezeigt.



Zurück zum Anfang

Lizenzhinweis

Die Nutzung der in diesem Tipp beschriebenen Funktionalitäten ist im Rahmen des Lifecycle Management Packs separat lizenzpflichtig.

Weitere Informationen und hilfreiche Links

Weitere Informationen finden Sie unter:


Zurück zum Anfang des Artikels

Zurück zur Community-Seite