Oracle Database 12c: DBCA oder Skript zum CREATE DATABASE?

In früheren Versionen war meine Antwort an der Stelle eindeutig: Skript! Der größte Vorteil der Skript-Lösung ist die Log-Datei, die alle Details der erstellten Datenbank nachvollziehbar macht. Was also könnte der Grund sein, in 12c von der Skript-Lösung abzuweichen?

Die Antwort ist: die Multitenant Option (a.k.a. Pluggable Databases). Setzt man Pluggable Databases (PDBs) ein, so erstellt man zunächst eine Container-Datenbank (CDB). Aus der Architektur ergibt sich, dass die CDB alle möglichen Data Dictionary-Komponenten enthalten muss — sonst würde beim späteren Plugin einer DB ggfs. eine Komponente fehlen.

Hinzu kommt, dass Katalogskripte für CDBs nicht wie sonst üblich mit SQL*Plus, sondern über das Perl-Skript catcon.pl eingespielt werden. (Man darf sich nicht vom Administrator’s Guide in die Irre führen lassen: Auf Seite 37-15 steht, dass man das Skript catcdb.sql mit SQL*Plus ausführen soll. In Oracle Support Bug 17316776 ist dann aber erklärt, dass das Skript leider fehlt und erst ab Version 12.2 mitgeliefert wird.)

Um sich einen Überblick zu verschaffen kann man nun eine CDB-Erstellung mit dem DBCA angehen und am Schluß lediglich die Skripterstellung auswählen. Schaut man sich dann die dokumentierten Optionen des catcon.pl-Skripts sowie die verwendeten Aufrufe der vom DBCA generierten Skripte an, so stellt man fest, dass vom DBCA Optionen verwendet werden, die nicht dokumentiert sind. Sollte man diese in selbst erstellten Skripten verwenden?

Letztendlich lautet die Empfehlung zur Erstellung von Container-Datenbanken, den DBCA zu nutzen, da diese Methode in der momentan unübersichtlichen Lage als einzige sicherstellt, dass alle benötigten Komponenten sauber in der Datenbank landen. Zur Erinnerung: Besondere Sorgfalt sollte bei der Auswahl des Zeichensatzes und der Blockgröße angewandt werden: Diese gelten auch für alle PDBs, die in die CDB eingesteckt werden.

Nicht-CDBs können natürlich weiterhin per Skript und mit SQL*Plus erstellt werden. Dies gilt natürlich auch für die diversen Varianten, PDBs innerhalb einer Container-Datenbank anzulegen.

Schreibe einen Kommentar