Blog 
Lohnen sich Datenbank Templates

Wenn man mit dem Oracle dbca (Database Configuration Assistant) eine Datenbank erstellt, werden im Schritt 3 zwei Templates (Data Warehouse und General Purpose or Transaction Processing) angeboten. Bei beiden ist Include datafiles gesetzt. Wählt man eine dieser beiden Prototypen aus, ist die Erstellung der Datenbank ein Kinderspiel und in ca. 5 Minuten hat man eine fertige Datenbank.

Warum nicht?

Zunächst einmal stellt sich die Frage (zumindest mir), worin unterscheiden sich die beiden Prototypen?

Database Templates
Vordefinierte Oracle Datenbank Templates

Dafür sehen wir uns einmal die Dateien im Verzeichnis $ORACLE_HOME/assistants/dbca/templates genauer an:

-rw-r-----. 1 oracle oinstall     10772 Apr  5  2019 New_Database.dbt
-rw-r-----. 1 oracle oinstall  86548480 Apr 17  2019 pdbseed.dfb
-rw-r-----. 1 oracle oinstall 274554880 Apr 17  2019 Seed_Database.dfb
-rw-r-----. 1 oracle oinstall  18726912 Apr 17  2019 Seed_Database.ctl
-rw-r-----. 1 oracle oinstall      4888 Apr 17  2019 Data_Warehouse.dbc
-rw-r-----. 1 oracle oinstall      4768 Apr 17  2019 General_Purpose.dbc
-rw-r-----. 1 oracle oinstall      6611 Apr 17  2019 pdbseed.xml

Es gibt zwei dbc Dateien, die eine gewisse Ähnlichkeit zu den Auswahlmöglichkeiten im dbca aufweisen. Dabei handelt es sich um XML-Strukturen, die die Struktur und Informationen zu den Datendateien enthalten.

Des Weiteren befinden sich zwei Dateien mit der Endung dfb in dem Verzeichnis. Dabei geht es nicht um den Deutschen Fußball Bund sondern um ein komprimiertes RMAN Backup der Datafiles. D.h. es gibt das Backup der Datafiles der CDB sowie das Backup der Datafiles der PDB$SEED. Für die PDB$SEED gibt es dann noch ein Manifest (pdbseed.xml), um die PDB in die CDB einzuhängen. Den Abschluss bildet das Backup der Controfiles (Seed_Database.ctl). Der Name Seed_Database hat hierbei übrigens nichts mit der PDB$SEED zu tun, sondern kennzeichnet den Namen des Templates. Die noch verbliebene Datei New_Database.dbt hat mit den besprochenen Templates zunächst nichts zu tun, sondern gehört zur Custom Database.

Was fällt auf?

Es gibt für zwei Datenbank-Templates nur einen Satz an Datafiles. D.h. die Datenbanken Data Warehouse und General Purpose unterscheiden sich nur in einem (!) einzigen Parameter: Beim Data Warehouse Template ist star_transformation_enabled=TRUE gesetzt. Okay, bei Sample Schema ist noch der Tablespace EXAMPLE angegeben, aber der hat keine Relevanz, weil die Option auf FALSE steht.

Das bedeutet praktisch, dass es überhaupt keinen Unterschied zwischen den beiden Templates gibt. Den Parameter kann man später immer noch setzen. Dafür braucht man nicht einmal die Datenbank neu zu starten.

Sollte man dieses Template verwenden?

NEIN!

Warum nicht?

Weil in dem Template sämtliche Optionen inklusive der geliebten OJVM enthalten sind. Sie haben nur die Möglichkeit, Optionen, die Sie nicht wollen oder nicht lizenziert haben, später zu deinstallieren. Daher ist es sinnvoller, den umständlicheren Weg über die Custom Database zu gehen und dann die Optionen und Konfigurationen auszuwählen, die man wirklich benötigt.

Bei einer einmaligen Erstellung einer Datenbank, wie es im Produktionsumfeld vorkommt, ist es meist unerheblich, ob man dafür eine Stunde oder 5 Minuten benötigt.

Aber was macht man bei Testumgebungen, wo man ggf. schnell mal eine neue Datenbank braucht? Und was ist mit den Unternehmensstandards? Wäre es nicht sinnvoll, diese direkt mit zu generieren?

Hier bieten sich eigene Templates an.

Zunächst wird eine Datenbank angelegt (natürlich über die Custom Database) und dann alle notwendigen Schritte durchgeführt, bis die Datenbank den eigenen Anforderungen genügt. Dazu gehört die Erstellung von eigene Rollen, Usern und Profiles. Und natürlich verwenden Sie die Rollen DBA, RESOURCE und CONNECT genau so wenig wie das DEFAULT Profile!?

Dann ruft man den dbca aus und geht auf den Punkt Manage Templates

Create Template Step 1
Template Name und Verzeichnis
Create Template Step 2
Quelle für das Template (hier Datenbank PAUL)
Create Template Step 3
Oracle Managed Files oder nicht

Es ist an dieser Stelle unerheblich ob man eine Konvertierung in Oracle Managed Files (OMF) macht oder nicht. Bei der späteren Erstellung der Datenbank hat man immer noch die Wahl.

Meine Erfahrung hat gezeigt, dass es nicht hilfreich ist, ein PDB Template mit anzulegen, daher werden keine Anwendungen oder Anwendungsdaten gespeichert. Der Grund ist, dass die Erstellung einer PDB mit CREATE PLUGGABLE DATABASE nur wenige Sekunden dauert. 

Eine Anmerkungen noch

Der Speicherort für das Templates sollte möglichst auf einem Share / NFS Verzeichnis erfolgen. Damit kann man dann mit einem einzigen Template arbeiten und muss nicht aufwändig kopieren. Allerdings Vorsicht: die Lage der Dateien wird als Parameter LOCAL in der Datei <Templatename>.dbc gespeichert. Wenn man also nachträglich den Pfad ändern möchte, muss man hier den Pfad ebenfalls anpassen.

Ansonsten heißt es in Zukunft: Erstelle mir eine CDB, wie sie unseren Richtlinien entspricht in 5 Minuten – kein Problem.

Keine Kommentare zu “Lohnen sich Datenbank Templates

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Was kann CarajanDB für Sie tun?