O'Reilly logo

Oracle 12c - Das umfassende Handbuch by Lutz Fröhlich

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

395
Kapitel 17
Pluggable Database (PDB)
administrieren
Die Pluggable Database, auch Multitenant-Architektur genannt, ist das zentrale
neue Feature in der Version 12c. Es ist eine besondere Form der Datenbankkonso-
lidierung, die ohne signifikanten Mehraufwand eine beachtliche Reduzierung an
Kosten und Administrationsaufwand verspricht. Für die Administration einer sol-
chen Umgebung gibt es jedoch das eine oder andere zu beachten. Dieses Kapitel
beschäftigt sich mit den alltäglichen Administrationsaufgaben für eine Multi-
tenant-Umgebung. Der deutsche Begriff für PDB ist »Integrierbare Datenbank«.
17.1 Die Strukturen
Setzen Sie die Umgebung und verbinden Sie sich zur CDB. Prüfen Sie die Daten-
bank. Wichtig ist festzustellen, ob es sich überhaupt um eine CDB handelt und
welchen Status die PDBs haben.
$ . oraenv
ORACLE_SID = [TEST] ? MITPCDB
The Oracle base has been set to /opt/oracle
$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on So Apr 20 13:02:49 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Verbunden mit:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing
options
SQL> SELECT cdb FROM v$database;
CDB
---
YES
SQL> SELECT name,cdb,con_id FROM v$database;
NAME CDB CON_ID
--------- --- ----------
MITPCDB YES 0
SQL> SELECT instance_name,status FROM v$instance;
INSTANCE_NAME STATUS
---------------- ------------
MITPCDB OPEN
Kapitel 17
Pluggable Database (PDB) administrieren
396
Wenn Sie sich die Services des Listeners anschauen, werden Sie feststellen, dass
nicht nur ein Service für die CDB, sondern auch für jede PDB existiert.
Die PDB_ID wird fortlaufend vergeben. Die Nummer zwei ist stets der Seed-
Datenbank vorbehalten, die Nummer eins erhält die Container-Datenbank. Beach-
ten Sie auch, dass jede PDB eine eigene Datenbank-ID besitzt.
PDB_NAME STATUS
-------------------- -------------
PDB$SEED NORMAL
MITP1 NORMAL
MITP2 NORMAL
SQL> SELECT con_id,name,open_mode FROM v$pdbs;
CON_ID NAME OPEN_MODE
---------- ------------------------------ ----------
2 PDB$SEED READ ONLY
3 MITP1 MOUNTED
4 MITP2 MOUNTED
Listing 17.1: Die Umgebung für die CDB setzen und prüfen
$ lsnrctl services LISTENER_12C
LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 20-APR-2014 13:08:27
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Anmeldung bei
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=serv7.dbexperts.com)(PORT=1523)))
Services Übersicht...
Dienst "MITPCDB.world" hat 1 Instanzen.
Instanz "MITPCDB", Status READY, hat 1 Handler für diesen Dienst...
Handler:
"DEDICATED" festgelegt:49 abgelehnt:0 Status:ready
LOCAL SERVER
Dienst "mitp1.world" hat 1 Instanzen.
Instanz "MITPCDB", Status READY, hat 1 Handler für diesen Dienst...
Handler:
"DEDICATED" festgelegt:49 abgelehnt:0 Status:ready
LOCAL SERVER
Dienst "mitp2.world" hat 1 Instanzen.
Instanz "MITPCDB", Status READY, hat 1 Handler für diesen Dienst...
Handler:
"DEDICATED" festgelegt:49 abgelehnt:0 Status:ready
LOCAL SERVER
Der Befehl wurde erfolgreich ausgeführt.
Listing 17.2: Die Dienste des Listeners
SQL> SELECT pdb_id,pdb_name,dbid,con_id FROM cdb_pdbs;
PDB_ID PDB_NAME DBID CON_ID
------- -------- ---------- -------
2 PDB$SEED 4084596187 1
17.1
Die Strukturen
397
Betrachten Sie den View »V$DATAFILE«. Unter anderem ist die Container-ID
(CON_ID) als neue Spalte hinzugekommen.
Schauen Sie sich den View »DBA_DATA_FILES« an. Er ist identisch zu einer nor-
malen Datenbank. Wenn Sie die beiden Views abfragen, werden Sie feststellen,
dass »V$DATAFILE« alle Datafiles einschließlich der PDB-Datenbanken anzeigt.
Dagegen zeigt »DBA_DATA_FILES« nur die Datafiles der CBD an, also der Daten-
bank, mit der man aktuell verbunden ist.
3 MITP1 245500767 1
4 MITP2 627095983 1
Listing 17.3: Die PDB_ID abfragen
Hinweis
Beachten Sie, dass sich die V$-Views einer Container-Datenbank von denen
einer normalen Datenbank unterscheiden. Sie enthalten zusätzliche Spalten, um
die Objekte der PDBs aufnehmen zu können.
SQL> DESC v$datafile
Name Null? Typ
----------------------------------------- -------- ---------------------------
. . .
FOREIGN_DBID NUMBER
FOREIGN_CREATION_CHANGE# NUMBER
FOREIGN_CREATION_TIME DATE
PLUGGED_READONLY VARCHAR2(3)
PLUGIN_CHANGE# NUMBER
PLUGIN_RESETLOGS_CHANGE# NUMBER
PLUGIN_RESETLOGS_TIME DATE
CON_ID NUMBER
Listing 17.4: Neue Spalten in V$-Views
SQL> SELECT con_id,name,status FROM v$datafile;
CON_ID NAME STATUS
---------- -------------------------------------------------- -------
1 /opt/oracle/oradata/MITPCDB/system01.dbf SYSTEM
2 /opt/oracle/oradata/MITPCDB/pdbseed/system01.dbf SYSTEM
1 /opt/oracle/oradata/MITPCDB/sysaux01.dbf ONLINE
2 /opt/oracle/oradata/MITPCDB/pdbseed/sysaux01.dbf ONLINE
1 /opt/oracle/oradata/MITPCDB/undotbs01.dbf ONLINE
1 /opt/oracle/oradata/MITPCDB/users01.dbf ONLINE
3 /opt/oracle/oradata/MITP1/pdbseed/system01.dbf SYSTEM
3 /opt/oracle/oradata/MITP1/pdbseed/sysaux01.dbf ONLINE
4 /opt/oracle/oradata/MITPCDB/mitp2/system01.dbf SYSTEM
4 /opt/oracle/oradata/MITPCDB/mitp2/sysaux01.dbf ONLINE
SQL> SELECT file_name,status FROM dba_data_files;
Kapitel 17
Pluggable Database (PDB) administrieren
398
Verbinden Sie sich nun zur PDB und fragen Sie den View »DBA_DATA_FILES«
ab. Sie werden feststellen, dass genau die Datafiles angezeigt werden, die zur PDB
gehören.
Neu sind ebenfalls die Views, die mit CDB_ beginnen und Informationen über die
CDB enthalten. Sie sind Bestandteil des Datenbankkatalogs der Container-Daten-
bank. Schauen Sie sich die temporären Dateien von CDB und PDB an.
FILE_NAME STATUS
-------------------------------------------------- ---------
/opt/oracle/oradata/MITPCDB/system01.dbf AVAILABLE
/opt/oracle/oradata/MITPCDB/sysaux01.dbf AVAILABLE
/opt/oracle/oradata/MITPCDB/undotbs01.dbf AVAILABLE
/opt/oracle/oradata/MITPCDB/users01.dbf AVAILABLE
Listing 17.5: Abfrage der Datafiles
SQL> CONN system/manager@mitp1
Connect durchgeführt.
SQL> SHOW con_name
CON_NAME
------------------------------
MITP1
SQL> SELECT file_name,status FROM dba_data_files;
FILE_NAME STATUS
-------------------------------------------------- ---------
/opt/oracle/oradata/MITP1/pdbseed/system01.dbf AVAILABLE
/opt/oracle/oradata/MITP1/pdbseed/sysaux01.dbf AVAILABLE
Listing 17.6: Abfrage DBA_DATA_FILES auf einer PDB
Wichtig
An diesem Beispiel spiegelt sich das Konzept der Multitenant-Datenbank wider.
In vielen Bereichen verhält sich eine PDB nach außen wie eine herkömmliche
Oracle-Datenbank. Auch die lokalen DBA-, USER- und ALL-Views sind weitge-
hend kompatibel. Dies ist wichtig, um Applikationen problemlos auf PDB
migrieren zu können.
SQL> SELECT con_id,file_id,tablespace_name,file_name
2 FROM cdb_temp_files
3 ORDER BY con_id;
CON_ID FILE_ID TABL FILE_NAME
---------- ---------- ---- --------------------------------------------------
1 1 TEMP /opt/oracle/oradata/MITPCDB/temp01.dbf
2 2 TEMP /opt/oracle/oradata/MITPCDB/pdbseed/temp01.dbf
3 3 TEMP /opt/oracle/oradata/MITP1/pdbseed/temp01.dbf
4 4 TEMP /opt/oracle/oradata/MITPCDB/mitp2/temp01.dbf
Listing 17.7: Die Tempfiles von CDB und PDB

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required