SlideShare une entreprise Scribd logo
1  sur  35
Oracle 12c Multitenant Option
Konzepte und Einsatzgebiet von Container und Pluggable Databases

DOAG Webinar

Ilgar Machmudov
OPITZ CONSULTING Deutschland GmbH

Kirchstr 6, 51647 Gummersbach, 10.01.2014

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 1
Über OPITZ CONSULTING
Standorte

Unternehmensentwicklung
 Umsatz
 2012: 36,7 Mill. €
 2013: 38,8 Mill. € (Prognose)
 Mitarbeiter
 2012: 382 Mitarbeiter
 2013: 385 Mitarbeiter (Prognose)

Peter Dix (CFO):
„Solides Wirtschaften in Verbindung mit einer
langfristigen kundenorientierten Strategie
garantiert den wirtschaftlichen Erfolg“
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 2
Wie wir aktiv sind – Das Ecosystem
Kunden

Markus Mehrens
Handel/
Logistik

Industrie
Strategische
Beratung

Non-Profit

Head of Accountmanagement, Deutsche Postbank AG

Telko/
Medien

„ Referring to our external partners,
I rarely experienced that project
organisation and project management
have been handled in such perfect
manner.“

Finanzdienstleister
Planung
Design

Realisierung

Marketing

Outtasking
Technologie

Andreas Röttger (COO):
„ Ein ganzheitliches Lösungsangebot
für komplexe und innovative ITLösungen ist nur durch den Mehrwert
einer partnerschaftlichen Zusammenarbeit möglich.“
Jürgen Kunz
Senior Vice President Northern Europe & Managing
Director Oracle Germany

Non-Profit

Methoden

Partner

„ Unser Certified Advantage Partner
OPITZ CONSULTING gehört auf
Grund seiner qualifizierten Mitarbeiter
und herausragenden Projekterfolge zu
unseren privilegierten Partnern.“
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 3
Über mich
 Senior Consultant,
Opitz Consulting Deutschland GmbH
 Arbeit mit Oracle und MS SQL Server seit 2001
 Bei Opitz CONSULTING seit 2012
 Schwerpunkte:
Administration, Oracle und MS-SQL HA-Lösungen

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 4
Agenda









Wesentliche Unterschiede von CDB/PDB zu alten Oracle Strukturen
Bausteine und Hauptkomponenten einer 12c Multitenant Architektur
Neue Dictionary-Informationen zu CDB/PDB
Administration von Multitenant Features
Unplug/Plug und Cloning von PDB
Migrationsleitfaden von Non-CDB 11G zu 12c PDB
Backup-Möglichkeit und Restore-Fähigkeit von CDB/PDB
Lizenzierungsaspekte

Abkürzungen:
CDB: Container Database,
PDB: Pluggable Database,
Non-CDB: Standard Oracle 11g / 12c Datenbank

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 5
Wesentliche Unterschiede
Ab Oracle 12c unterscheidet man zwischen Oracle Standard Non-CDB und CDB.
CDB (Container Database)
Die Container Database stellt die Hauptinstanz für die Seed und die Pluggable Databases (kurz PDB) bereit und
wird intern als CDB$ROOT (Root Container) bezeichnet. CDB stellt die System Global Area (SGA), das
Controlfile, die Redo Logs und das Undo Tablespace für alle PDB„s bereit . In Root Container werden gleichzeitig
zum Beispiel das PL/SQL Data Dictionary und die gemeinsamen Benutzer (Common User) gespeichert. Es sind
maximal 512 Services in der CDB erlaubt.

Seed Database (PDB$SEED)
Jede CDB besitzt eine Seed Database. Die Seed Database kann man als Vorlage beim Erstellen einer neuen
Pluggable Database einsetzen. Die Seed Database wird intern bei Oracle als PDB$SEED bezeichnet und befindet
sich immer in READ/ONLY Modus.
PDB (Pluggable Database)
PDB ist eine Applikation DB und beinhalten die eigentlichen Anwendungsdaten. Während hochfahren teilt sich
PDB die SGA, das Controlfile, die Redo Logs und das Undo Tablespace der CDB. Aber PDB besitzt ein eigenes
SYSTEM und SYSAUX Tablespace und kann über ein eigenes Temporary Tablespace verfügen, oder ein von CDB
verwändet. Gleichzeitig teilen alle PDB‟s gleiche Datenbank Version die von CDB vorgegeben ist. Damit erlaubt
PDB sogenannte Mandantenfähigkeit.
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 6
Wesentliche Unterschiede
Non-CDB
Es handelt sich hierbei um eine Standard 12c Oracle DB.
Eine PDB unterscheidet sich von einer Non-CDB dadurch, dass
sie keine der folgenden eigene(n) Komponenten besitzt:
…Instanz (Memory und Hintergrundprozesse)
…Kontrolldatei

…Redo-Log-Dateien
…Undo Tablespaces

Diese Komponenten werden zentral von der CDB bereitgestellt,
in der die PDBs betrieben werden.

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 7
Wesentliche Unterschiede
 CDB unterstützt bei Oracle Version 12.1.0.1 bis zu 252 PDBs plus Seed
Database
 Hauptspeicher und Prozesse werden nur noch auf Ebene des “Multitenant
Containers” benötigt
 Eine PDB hat die gleiche Funktionalität wie Non-CDB
 Bei der Anmeldung erkennt der Client nicht, ob er an einer PDB oder einer
non-CDB angemeldet ist
 PDB„s können per Links innerhalb eine CDB miteinander kommunizieren
 Vordergrundprozesse (DB Sessions) “sehen” nur die PDB, an der sie
angemeldet sind
 PDBs “teilen sich” SGA und Hintergrundprozesse
 Spfile wird von PDB„s und CDB geteilt

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 8
Wesentliche Unterschiede
 Wenn CDB gepatcht wird, wird diese Änderung gleichzeitig auf PDBs
wirksam
 PDBs können einfach aus Seed Database erzeugt werden
 PDBs können innerhalb der gleichen CDB auch per remote geklont werden
 Alert.log Datei gibt es nur ein Mal für CDB und alle PDBs
 Resource Manager steht jetzt auch auf der Ebene der CDB zur Verfügung
und kann so Ressourcen auch instanzübergreifend zuteilen und begrenzen
 Eine Data Guard Umgebung wird auf der Ebene der CDB erstellt,
unabhängig von der Anzahl der dort betriebenen PDBs
 Beim Stoppen von CDB werden alle PDB„s gleichzeitig runtergefahren
 Beim Starten von CDB werden alle PDBs nur in Mount Modus gesetzt
 Beim Löschen von CDB werden alle PDBs incl. Seed Database gelöscht

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 9
Bausteine und Hauptkomponente
User Berechtigungen bei CDB und PDB
CDB haben sogenannte „Common-User“ und PDB „Local User“:
Ein “common user” ist im “root” definiert und wird in jeder PDB repräsentiert
…Ein “common user” kann sich an jede PDB anmelden, nur wenn er “Create Session”-Privileg hat
…kann diese auch administrieren
…In der CDB können Administratoren definiert werden
…CDB Administratoren können Zugriff auf alle oder nur auf bestimmte PDB haben
…ist Besitzer von Oracle Systemobjekten / Metadaten und Oracle System Benutzer / Rollen
…Einem “common user” können Privilegien lokal für eine PDB (oder “root”) zugewiesen werden
…sind in jedem Container unterschiedlich

…“common user” kann System-Privilegien auch allgemein erhalten
...der Grant gilt dann im root und jeder PDB

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 10
Bausteine und Hauptkomponente
User Berechtigungen bei CDB und PDB
CDB haben sogenannte „Common-User“ und PDB „Local User“:

“Local User” entsprechen einem User der innerhalb PDB definiert wurde
…sind nur in einer PDB definiert
…können eine PDB administrieren
…„Local User“ hat keinen Zugriff auf PDBs, die in der gleichen CDB betrieben werden.
…“Local User” entsprechen selbst erstellten Nutzern in einer non-CDB

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 11
Neue Dictionary-Informationen zu CDB/PDB
Data Dictionary wurde um neue CDB View-Ebene erweitert
…Neue Dictionary Tabellen: z.B. cdb_pdbs, cdb_dba, pdb_dba, dba_pdbs, v$pdbs
…In der CDB steht damit eine Sicht über alle PDBs hinweg zur Verfügung
CDB und DBA_PDB„s View sind nur in der CDB verfügbar
CDB_pdbs:

All PDBS within CDB

CDB_tablespaces : All tablespaces within CDB
CDB_users :

All users within CDB (common and local)

…Jede View wurde um die Spalte CON_ID erweitert
sql>select username,con_id from cdb_users;
…Container_ID=1 steht immer für die CDB selbst
…CDB_xxx sind alle Objekte in der mandantenfähigen Container-Datenbank über alle PDBs
…PDB Id„s werden wie folgt ermittelt

sql> select name,con_id from v$pdbs;
…Im Gegensatz zu CDB, werden nur die Data-Dictionary-Informationen zu der jeweilige PDB angezeigt
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 12
Neue Dictionary-Informationen zu CDB/PDB
Parametrisierung
…Es besteht die Möglichkeit, Einstellungen für PDB auf einmal zu setzen
Für alle PDBs

sql>alter system set resource_limit=true container=all;

Für bestimmte PDB sql>alter system set resource_limit=true container=current;
Oder wenn man an bestimmte PDB angemeldet ist sql>alter system set resource_limit=true;

…Alle PDB Parameter, die mittels „alter system set“ gesetzt sind, werden beim Unplug/Plug mit berücksichtigt

…PDB Init Parameter anzeigen
sql>select name,value from v$system_parameter where ispdb_modifiable=‚TRUE‘;

…CDB Init Parameter ermitteln
sql>select name,value from v$system_parameter where ispdb_modifiable=‚FALSE;
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 13
Neue Dictionary-Informationen zu CDB/PDB
…PDBs laufen in MOUNTED, READ WRITE oder READ ONLY (steht für geöffneten Status) Modus

…Grundsätzlich gibt das Data Dictionary innerhalb einer PDB nur die lokale Sicht wider
…Folgende Tabellen zeigen aktueller Status v on Datenbanken

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 14
Administration von Multitenant Features
CDB erstellen/verwalten
…per DBCA

…per Oracle Cloud Control
ab Version 12.1.0.3

…per Sqlplus
a) Init Datei wird um Parameter „ENABLE_PLUGGABLE_DATABASE = TRUE“ erweitert
b) Datenbank wird in „Nomount“ Modus gesetzt
c) Container DB erstellen

sql>create database CDB enable pluggable database …
seed file_name_convert ('/oracle/dbs','/oracle/seed');

d) Seed PDB wird gestoppt / gestartet and post-creation scripts ausgeführt
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 15
Administration von Multitenant-Features
PDB erstellen/verwalten
…per DBCA

…per Sqlplus und Oracle Cloud Control ab Version 12.1.0.3

Beim Erstellen von PDB muss User Berechtigung „CREATE PLUGGABLE DATABASE“ haben
…Erstellen einer PDB mit der Seed-DB
…Erstellen einer PDB durch Klonen einer anderen PDB
…Migration einer Non-CDB zu einer PDB
Hinweis! Nachdem PDB erstellt wurde, tnsnames.ora um neuen Eintrag erweitern und Full Backup von CDB durchführen
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 16
Administration von Multitenant-Features
Zugriff auf PDB einrichten
…Mit dem Eintrag in tnsnames.ora

sqlplus system/oracle@pdb1
oder wenn man grade beim CDB angemeldet ist
sql>alter session set container=pdb1

…Ohne Eintrag in tnsnames.ora
Hierbei ist der Port optional, wenn der Listener den Default Port verwendet:
sqlplus system/oracle@localhost:1521/pdb1
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 17
Administration von Multitenant Feature
…Ermitteln, ob CDB Option aktiviert ist sql>show parameter enable_pluggable_database
…Anmeldung an CDB

sql>alter session set container = cdb$root;

…Alle PDBs anzeigen

…PDB stoppen/starten
sql>alter pluggable database pdb1 close;
sql>alter pluggable database pdb1 open;
…Ermitteln, an welche DB (PDB oder CDB) User gerade angemeldet ist
sql>show con_name
…PDB löschen (PDB Seed kann nicht gelöscht werden) sql>alter pluggable database pdb1 close;
Hinweis! Auch per DBCA möglich

sql>drop pluggable database pdb1 [INCLUDING DATAFILES];

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 18
PDB klonen
PDBs werden per SQL Plus, SQL Developer und Cloud Control ab Version 12.1.0.3 geklont
Manuell: Per SQL Plus oder Per DB Link (remote)

Achtung! Haupt PDB wird dabei runtergefahren! Deswegen erst APP beenden und Backup erstellen.
a) Haupt PDB wird geschlossen und in Read-Only-Modus gesetzt
sql>alter pluggable database pdb1 close;
sql>alter pluggable database pdb1 open read only;
b) Ordner für neue PDB Files erstellen
c) Sich an CDB anmelden und PDB2 als PDB1 clonen
sql>create pluggable database pdb2 from pdb1;
d) PDB in Read-Write-Modus setzen
sql>alter pluggable database pdb1 read write;

e) Tnsames.ora Eintrag erstellen und Full CDB Backup ausführen

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 19
Unplug/Plug von PDBs
Unplug/Plug kann entweder per DBCA passieren
Unplug

…PDB soll mindestens ein Mal in Read-Write-Modus geöffnet werden
…DB wird vollständig nach dieser Aktion von DB deregestriert, DB Files bleiben aber erhalten
…Während Unplug wird XML Konfiguration File, mit allen Informationen zu PDB, erstellt
…Für Erstellung von .dbf Backup muss genug Platz vorhanden sein
…Alte DB Files können erst, nachdem CDB gestoppt wurde, gelöscht werden
…Eine “ausgeklinkte” PDB beinhaltet Infos zu opatch, encryption keys, patchstand und etc.
Plug
…Xml und erstellte .dbf Backup Files werden in einen neu erstellten Ordner verschoben oder kopiert
…Und PDB wird als Clone per DBCA erstellt

…Neue PDB wird automatisch von DBCA geöffnet
…Nachdem die neue PDB registriert wurde, sollte Full CDB Backup durchgeführt werden
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 20
Unplug/Plug von PDBs
Unplug/Plug per Sqlplus
Unplug
…PDB soll mindestens ein Mal in Read Write Modus geöffnet werden
…Für Erstellung von .dbf Backup muss genug Platz vorhanden sein.
a) PDB wird gestoppt
sql> alter pluggable database pdb1 close;
b) Unplug wird in CDB Sitzung mit Privileg SYSDBA / SYSOPER durchgeführt.
sql> alter pluggable database pdb1 unplug into '/tmp/oracle/pdb1.xml';
Die ausgeklinkte PDB ist bei der CDB in der View V$PDBS sichtbar, kann aber nicht mehr geöffnet werden.
Dabei werden aber die Datafiles physikalisch nicht gelöscht.
c) Löschen Sie die PDB ohne Datendateien:
sql> drop pluggable database pdb1;
Hinweis! Alte DB Files können nur nach dem CDB gestoppt wurde gelöscht werden
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 21
Unplug/Plug von PDBs
Unplug/Plug per Sqlplus
Plug: Vorbereitung

a) Datendateien und die XML-Datei werden in neu erstellten Ordner auf den Zielserver kopiert
b) Sich an CDB mit Privileg SYSDBA / SYSOPER anmelden
c) Prüfen Sie, ob die PDB kompatibel zur CDB ist:
Wenn die Ausgabe „YES“ ist, ist die PDB
kompatibel zur CDB und kann eingeklinkt
werden.

d) Wenn die Speicherpfade der Datendateien gleich bleiben, dann reicht ein:

sql>create pluggable database pdb2 using '/tmp/oracle/pdb1.xml’ nocopy tempfile reuse;

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 22
Unplug/Plug von PDBs
Unplug/Plug per Sqlplus
Plug: Durchführung

a) Wenn Speicherpfade sich unterscheiden, wird SOURCE_FILE_NAME_CONVERT verwendet.
sql>create pluggable database pdb2 using '/tmp/oracle/pdb1.xml’ nocopy
SOURCE_FILE_NAME_CONVERT= (‘/oracle/oradata/pdb1/', '/oracle/oradata/pdb2/) tempfile reuse;
b) Prüfen Sie das Ergebnis in V$PDBS:

c) PDB wird dann geöffnet
sql>alter pluggable database pdb2 open;
d) Nachdem die neue PDB registriert wurde, sollte Full CDB Backup ausgeführt werden
e) Die neue PDB bekommt automatisch den gleichen Patchstand wie CDB
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 23
Migration von Non-CDB 11G zu 12c PDB
Es gibt drei Möglichkeiten, eine Non-CDB zu einer PDB zu migrieren:
per Sqlplus, Exp/Imp oder Golden Gate
Sqlplus: Vorbereitung
…12c Non-CDB kann nicht direkt in CDB umgewandelt werden
…Die Non-CDB soll die Version 12c tragen, weil PL/SQL-Package DBMS_PDB verwendet wird
…Der Characterset der zukünftigen PDB muss mit dem der CDB kompatibel sein
a) Pfade zu DB Files ermitteln

b) Erstellen Sie ein Backup der Non-CDB
c) Non-CDB wird für einen transaktionskonsistenten Zustand im Read-Only-Modus geöffnet
d) Starten Sie die Prozedur DBMS_PDB.DESCRIBE in der Non-CDB:

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 24
Migration von Non-CDB 11G zu 12c PDB
Sqlplus: Durchführung
a) Non-CDB wird gestoppt

b) Alle .dbf und erstellte XML Files werden in neu erstellte PDB Ordner bei neu erstellte CDB kopiert
Also: nur dbf Files außer Undo.
c) Neu PDB wird mit Hilfe von XML erstellt

Dabei wird die PDB in Mount Modus gesetzt
d) Tnsnames.ora mit neuen Eintrag erweitern
e) Sich an neuen PDB anmelden und $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql ausführen,
bevor PDB geöffnet wird

f) Jetzt kann PDB ganz normal gestoppt und geöffnet werden
g) Full CDB Backup ausführen
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 25
Migration von Non-CDB 11G zu 12c PDB
Exp/Imp
a) In CDB leere PDB erstellen
b) Tnsnames.ora um den neuen Eintrag erweitern
c) PDB wird geöffnet

sql>alter pluggable database pdb1 open;

d) DBA Privileg vergeben

sql>grant dba to pdbadm;

e) Per Data Pump ein Full Database Export der Non-CDB erstellen
expdp system@noncdb directory=expdir dumpfile=noncdb.dmp full=y

f) Es wird in der neuen PDB ein Directory für Data Pump erstellt
g) Daten werden in der Non-CDB mit Data Pump importiert
impdp pdbadm@pdb1 directory=impdir dumpfile=noncdb.dmp full=y
h) Full CDB Backup ausführen
Replikation mit Golden Gate

a) In der CDB wird dann eine neue (leere) PDB erzeugt
b) Inhalt der Non-CDB mittels Replikation über Golden Gate übetragen
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 26
Backup und Restore von CDB/PDB
Backup CDB/PDB
…ARCHIVELOG Modus wird nur auf CDB-Ebene eingeschaltet
…Parameter LOG_ARCHIVE_DEST_n und RECOVERY_FILE_DEST werden auch nur auf CDB-Ebene gesetzt
…Beim sichern von CDB werden gleichzeitig alle PDB„s mitgesichert
…CDB RMAN Backup wird mit Standard Befehl rman>backup database plus archivelog; durchgeführt
…Bei CDB sollte auch Root Datenbank täglich mitgesichert werden
rman>backup as compressed backupset database root;
…Um PDB zu sichern benötigt User SYSBACKUP Privileg
…Bei PDB Backup werden Informationen (Datendateien) nur zur bestimmte PDB gesichert
rman target sys/oracle@localhost/cdb
rman target=sys@pdb1

-> über CDB sichern
-> über PDB direkt

Mehrere PDB gleichzeitig aus der CDB heraus sichern
rman>backup pluggable database pdb1,pdb2 plus archivelog;
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 27
Backup und Restore von CDB/PDB
Restore CDB
…Wenn CDB restored wird sind gleichzeitig alle PDBs getroffen
…CDB wird standardmäßig wie Non-CDB wiederhergestellt
…Es besteht die Möglichkeit korrupte Root Datenbank restoren, wird aber CDB dabei runtergefahren
export ORACLE_SID=cdb

-> Es empfiehlt sich auch der Einsatz des Data Recovery Advisors

rman target /
rman>shutdown immediate;

rman>startup mount;
rman>restore database root;
rman>recover database root;
rman>alter database open;
rman>alter pluggable database all open;

Hinweis! Es wird seitens Oracle empfohlen gleichzeitig alle PDB, nach dem Root wieder da ist, zu restoren
Diese Reihenfolge ist langsamer als bei der Wiederherstellung mit RESTORE DATABASE und RECOVER DATABASE CDB
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 28
Backup und Restore von CDB/PDB
Restore PDB
…Bevor PDB wiederhergestellt wird, soll erst ein Backup verifiziert werden
rman target sys/oracle@localhost/pdb1
rman>validate pluggable database pdb1;
rman>restore pluggable database pdb1 validate;
…Beim restore werden nur bestimmte PDB wiederhergestellt
Hinweis! Einzelne PDB DB Files könnten auch „restored“ werden

rman>alter pluggable database pdb1 close;
rman>run{
Restore pluggable database pdb1; or Restore pluggable database pdb1,pdb2;
Recover pluggable database pdb1; or Recover pluggable database pdb1,pdb2;
}

rman>alter pluggable database pdb1 open; (oder open resetlogs)
…Incarnation abfragen

sql>select * from v$pdb_incarnation;
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 29
Lizenzierungsaspekte
 Bei Oracle Standard Edition und Standard One ist nur eine PDB erlaubt
 Ab Oracle Enterprise Edition sind 252 PDBs möglich

 Bei Oracle Enterprise Edition wird Multitenant als extra Option lizenziert

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 30
Sonstiges
Verlust von PDB System Tablespace führt zum Absturz von CDB
…Offizielle Aussage von Oracle Support zu dem Oracle 12.1.0.1 Multitenant Bug
“CDB must be restarted if PDB system datafile is lost. For non-SYSTEM datafiles, you can offline, restore, recover, and
online them…all while CDB is online. We plan to address the lost system datafile scenario in a future release.”
…Wenn CDB abstürtzt sind folgende Fehlermeldungen in Alert.log Datei zu finden:

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 31
Sonstiges
Temporary Lösung
a) CDB „mounten“

sql>startup mount

b) System Datafile von PDB „restoren“ und „recovern“
rman target sys/oracle@localhost/pdb1
rman>run{
alter database datafile 8 offline;
restore datafile 8;
recover datafile 8;
alter database datafile 8 online;
}
c) Container Datenbank öffnen

sql>alter database open;

d) Pluggable Database öffnen

sql>alter pluggable database pdb1 open;

e) Full Backup für CDB starten
© OPITZ CONSULTING Deutschland GmbH 2014
Seite 32
Quelle
Oracle Dokumentation

…Multitenant Administration
http://docs.oracle.com/cd/E16655_01/server.121/e17633/cdbovrvw.htm#CNCPT89234
http://docs.oracle.com/cd/E16655_01/server.121/e17633/cdblogic.htm#CNCPT89248
http://docs.oracle.com/cd/E16655_01/server.121/e17636/part_cdb.htm
http://docs.oracle.com/cd/E16655_01/backup.121/e17630/rcmbckba.htm#BRADV428
http://docs.oracle.com/cd/E16655_01/backup.121/e17630/rcmresind.htm#BEIBHHGC

…Lizenzierung
http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf
http://docs.oracle.com/cd/E16655_01/license.121/e17614.pdf

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 33
Fragen und Antworten

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 34
Kontakt
Ilgar Machmudov
Oracle & SQL Server DBA

OPITZ CONSULTING Deutschland GmbH
Kirchstr. 6 | 51647 Gummersbach
Tel. +49 (2261) 60 01-0
ilgar.machmudov@opitz-consulting.com

youtube.com/opitzconsulting
@OC_WIRE
slideshare.net/opitzconsulting
xing.com/net/opitzconsulting

© OPITZ CONSULTING Deutschland GmbH 2014
Seite 35

Contenu connexe

Plus de OPITZ CONSULTING Deutschland

OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OPITZ CONSULTING Deutschland
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OPITZ CONSULTING Deutschland
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungOPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOPITZ CONSULTING Deutschland
 
Oracle-Lizenzierung bei Virtualisierung und in der Cloud
Oracle-Lizenzierung bei Virtualisierung und in der CloudOracle-Lizenzierung bei Virtualisierung und in der Cloud
Oracle-Lizenzierung bei Virtualisierung und in der CloudOPITZ CONSULTING Deutschland
 
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...OPITZ CONSULTING Deutschland
 
Handlungsoptionen bei der Modernisierung von Legacy-Systemen
Handlungsoptionen bei der Modernisierung von Legacy-SystemenHandlungsoptionen bei der Modernisierung von Legacy-Systemen
Handlungsoptionen bei der Modernisierung von Legacy-SystemenOPITZ CONSULTING Deutschland
 

Plus de OPITZ CONSULTING Deutschland (20)

10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
 
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
 
OC|Weekly Talk Remote Design Thinking
OC|Weekly Talk Remote Design ThinkingOC|Weekly Talk Remote Design Thinking
OC|Weekly Talk Remote Design Thinking
 
OC|Webcast Smart Innovation am 7. April 2020
OC|Webcast Smart Innovation am 7. April 2020OC|Webcast Smart Innovation am 7. April 2020
OC|Webcast Smart Innovation am 7. April 2020
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
 
Oracle-Lizenzierung bei Virtualisierung und in der Cloud
Oracle-Lizenzierung bei Virtualisierung und in der CloudOracle-Lizenzierung bei Virtualisierung und in der Cloud
Oracle-Lizenzierung bei Virtualisierung und in der Cloud
 
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
 
Handlungsoptionen bei der Modernisierung von Legacy-Systemen
Handlungsoptionen bei der Modernisierung von Legacy-SystemenHandlungsoptionen bei der Modernisierung von Legacy-Systemen
Handlungsoptionen bei der Modernisierung von Legacy-Systemen
 

Oracle 12c Multitenant Option: Konzepte und Einsatzgebiet von Container Databases

  • 1. Oracle 12c Multitenant Option Konzepte und Einsatzgebiet von Container und Pluggable Databases DOAG Webinar Ilgar Machmudov OPITZ CONSULTING Deutschland GmbH Kirchstr 6, 51647 Gummersbach, 10.01.2014 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 1
  • 2. Über OPITZ CONSULTING Standorte Unternehmensentwicklung  Umsatz  2012: 36,7 Mill. €  2013: 38,8 Mill. € (Prognose)  Mitarbeiter  2012: 382 Mitarbeiter  2013: 385 Mitarbeiter (Prognose) Peter Dix (CFO): „Solides Wirtschaften in Verbindung mit einer langfristigen kundenorientierten Strategie garantiert den wirtschaftlichen Erfolg“ © OPITZ CONSULTING Deutschland GmbH 2014 Seite 2
  • 3. Wie wir aktiv sind – Das Ecosystem Kunden Markus Mehrens Handel/ Logistik Industrie Strategische Beratung Non-Profit Head of Accountmanagement, Deutsche Postbank AG Telko/ Medien „ Referring to our external partners, I rarely experienced that project organisation and project management have been handled in such perfect manner.“ Finanzdienstleister Planung Design Realisierung Marketing Outtasking Technologie Andreas Röttger (COO): „ Ein ganzheitliches Lösungsangebot für komplexe und innovative ITLösungen ist nur durch den Mehrwert einer partnerschaftlichen Zusammenarbeit möglich.“ Jürgen Kunz Senior Vice President Northern Europe & Managing Director Oracle Germany Non-Profit Methoden Partner „ Unser Certified Advantage Partner OPITZ CONSULTING gehört auf Grund seiner qualifizierten Mitarbeiter und herausragenden Projekterfolge zu unseren privilegierten Partnern.“ © OPITZ CONSULTING Deutschland GmbH 2014 Seite 3
  • 4. Über mich  Senior Consultant, Opitz Consulting Deutschland GmbH  Arbeit mit Oracle und MS SQL Server seit 2001  Bei Opitz CONSULTING seit 2012  Schwerpunkte: Administration, Oracle und MS-SQL HA-Lösungen © OPITZ CONSULTING Deutschland GmbH 2014 Seite 4
  • 5. Agenda         Wesentliche Unterschiede von CDB/PDB zu alten Oracle Strukturen Bausteine und Hauptkomponenten einer 12c Multitenant Architektur Neue Dictionary-Informationen zu CDB/PDB Administration von Multitenant Features Unplug/Plug und Cloning von PDB Migrationsleitfaden von Non-CDB 11G zu 12c PDB Backup-Möglichkeit und Restore-Fähigkeit von CDB/PDB Lizenzierungsaspekte Abkürzungen: CDB: Container Database, PDB: Pluggable Database, Non-CDB: Standard Oracle 11g / 12c Datenbank © OPITZ CONSULTING Deutschland GmbH 2014 Seite 5
  • 6. Wesentliche Unterschiede Ab Oracle 12c unterscheidet man zwischen Oracle Standard Non-CDB und CDB. CDB (Container Database) Die Container Database stellt die Hauptinstanz für die Seed und die Pluggable Databases (kurz PDB) bereit und wird intern als CDB$ROOT (Root Container) bezeichnet. CDB stellt die System Global Area (SGA), das Controlfile, die Redo Logs und das Undo Tablespace für alle PDB„s bereit . In Root Container werden gleichzeitig zum Beispiel das PL/SQL Data Dictionary und die gemeinsamen Benutzer (Common User) gespeichert. Es sind maximal 512 Services in der CDB erlaubt. Seed Database (PDB$SEED) Jede CDB besitzt eine Seed Database. Die Seed Database kann man als Vorlage beim Erstellen einer neuen Pluggable Database einsetzen. Die Seed Database wird intern bei Oracle als PDB$SEED bezeichnet und befindet sich immer in READ/ONLY Modus. PDB (Pluggable Database) PDB ist eine Applikation DB und beinhalten die eigentlichen Anwendungsdaten. Während hochfahren teilt sich PDB die SGA, das Controlfile, die Redo Logs und das Undo Tablespace der CDB. Aber PDB besitzt ein eigenes SYSTEM und SYSAUX Tablespace und kann über ein eigenes Temporary Tablespace verfügen, oder ein von CDB verwändet. Gleichzeitig teilen alle PDB‟s gleiche Datenbank Version die von CDB vorgegeben ist. Damit erlaubt PDB sogenannte Mandantenfähigkeit. © OPITZ CONSULTING Deutschland GmbH 2014 Seite 6
  • 7. Wesentliche Unterschiede Non-CDB Es handelt sich hierbei um eine Standard 12c Oracle DB. Eine PDB unterscheidet sich von einer Non-CDB dadurch, dass sie keine der folgenden eigene(n) Komponenten besitzt: …Instanz (Memory und Hintergrundprozesse) …Kontrolldatei …Redo-Log-Dateien …Undo Tablespaces Diese Komponenten werden zentral von der CDB bereitgestellt, in der die PDBs betrieben werden. © OPITZ CONSULTING Deutschland GmbH 2014 Seite 7
  • 8. Wesentliche Unterschiede  CDB unterstützt bei Oracle Version 12.1.0.1 bis zu 252 PDBs plus Seed Database  Hauptspeicher und Prozesse werden nur noch auf Ebene des “Multitenant Containers” benötigt  Eine PDB hat die gleiche Funktionalität wie Non-CDB  Bei der Anmeldung erkennt der Client nicht, ob er an einer PDB oder einer non-CDB angemeldet ist  PDB„s können per Links innerhalb eine CDB miteinander kommunizieren  Vordergrundprozesse (DB Sessions) “sehen” nur die PDB, an der sie angemeldet sind  PDBs “teilen sich” SGA und Hintergrundprozesse  Spfile wird von PDB„s und CDB geteilt © OPITZ CONSULTING Deutschland GmbH 2014 Seite 8
  • 9. Wesentliche Unterschiede  Wenn CDB gepatcht wird, wird diese Änderung gleichzeitig auf PDBs wirksam  PDBs können einfach aus Seed Database erzeugt werden  PDBs können innerhalb der gleichen CDB auch per remote geklont werden  Alert.log Datei gibt es nur ein Mal für CDB und alle PDBs  Resource Manager steht jetzt auch auf der Ebene der CDB zur Verfügung und kann so Ressourcen auch instanzübergreifend zuteilen und begrenzen  Eine Data Guard Umgebung wird auf der Ebene der CDB erstellt, unabhängig von der Anzahl der dort betriebenen PDBs  Beim Stoppen von CDB werden alle PDB„s gleichzeitig runtergefahren  Beim Starten von CDB werden alle PDBs nur in Mount Modus gesetzt  Beim Löschen von CDB werden alle PDBs incl. Seed Database gelöscht © OPITZ CONSULTING Deutschland GmbH 2014 Seite 9
  • 10. Bausteine und Hauptkomponente User Berechtigungen bei CDB und PDB CDB haben sogenannte „Common-User“ und PDB „Local User“: Ein “common user” ist im “root” definiert und wird in jeder PDB repräsentiert …Ein “common user” kann sich an jede PDB anmelden, nur wenn er “Create Session”-Privileg hat …kann diese auch administrieren …In der CDB können Administratoren definiert werden …CDB Administratoren können Zugriff auf alle oder nur auf bestimmte PDB haben …ist Besitzer von Oracle Systemobjekten / Metadaten und Oracle System Benutzer / Rollen …Einem “common user” können Privilegien lokal für eine PDB (oder “root”) zugewiesen werden …sind in jedem Container unterschiedlich …“common user” kann System-Privilegien auch allgemein erhalten ...der Grant gilt dann im root und jeder PDB © OPITZ CONSULTING Deutschland GmbH 2014 Seite 10
  • 11. Bausteine und Hauptkomponente User Berechtigungen bei CDB und PDB CDB haben sogenannte „Common-User“ und PDB „Local User“: “Local User” entsprechen einem User der innerhalb PDB definiert wurde …sind nur in einer PDB definiert …können eine PDB administrieren …„Local User“ hat keinen Zugriff auf PDBs, die in der gleichen CDB betrieben werden. …“Local User” entsprechen selbst erstellten Nutzern in einer non-CDB © OPITZ CONSULTING Deutschland GmbH 2014 Seite 11
  • 12. Neue Dictionary-Informationen zu CDB/PDB Data Dictionary wurde um neue CDB View-Ebene erweitert …Neue Dictionary Tabellen: z.B. cdb_pdbs, cdb_dba, pdb_dba, dba_pdbs, v$pdbs …In der CDB steht damit eine Sicht über alle PDBs hinweg zur Verfügung CDB und DBA_PDB„s View sind nur in der CDB verfügbar CDB_pdbs: All PDBS within CDB CDB_tablespaces : All tablespaces within CDB CDB_users : All users within CDB (common and local) …Jede View wurde um die Spalte CON_ID erweitert sql>select username,con_id from cdb_users; …Container_ID=1 steht immer für die CDB selbst …CDB_xxx sind alle Objekte in der mandantenfähigen Container-Datenbank über alle PDBs …PDB Id„s werden wie folgt ermittelt sql> select name,con_id from v$pdbs; …Im Gegensatz zu CDB, werden nur die Data-Dictionary-Informationen zu der jeweilige PDB angezeigt © OPITZ CONSULTING Deutschland GmbH 2014 Seite 12
  • 13. Neue Dictionary-Informationen zu CDB/PDB Parametrisierung …Es besteht die Möglichkeit, Einstellungen für PDB auf einmal zu setzen Für alle PDBs sql>alter system set resource_limit=true container=all; Für bestimmte PDB sql>alter system set resource_limit=true container=current; Oder wenn man an bestimmte PDB angemeldet ist sql>alter system set resource_limit=true; …Alle PDB Parameter, die mittels „alter system set“ gesetzt sind, werden beim Unplug/Plug mit berücksichtigt …PDB Init Parameter anzeigen sql>select name,value from v$system_parameter where ispdb_modifiable=‚TRUE‘; …CDB Init Parameter ermitteln sql>select name,value from v$system_parameter where ispdb_modifiable=‚FALSE; © OPITZ CONSULTING Deutschland GmbH 2014 Seite 13
  • 14. Neue Dictionary-Informationen zu CDB/PDB …PDBs laufen in MOUNTED, READ WRITE oder READ ONLY (steht für geöffneten Status) Modus …Grundsätzlich gibt das Data Dictionary innerhalb einer PDB nur die lokale Sicht wider …Folgende Tabellen zeigen aktueller Status v on Datenbanken © OPITZ CONSULTING Deutschland GmbH 2014 Seite 14
  • 15. Administration von Multitenant Features CDB erstellen/verwalten …per DBCA …per Oracle Cloud Control ab Version 12.1.0.3 …per Sqlplus a) Init Datei wird um Parameter „ENABLE_PLUGGABLE_DATABASE = TRUE“ erweitert b) Datenbank wird in „Nomount“ Modus gesetzt c) Container DB erstellen sql>create database CDB enable pluggable database … seed file_name_convert ('/oracle/dbs','/oracle/seed'); d) Seed PDB wird gestoppt / gestartet and post-creation scripts ausgeführt © OPITZ CONSULTING Deutschland GmbH 2014 Seite 15
  • 16. Administration von Multitenant-Features PDB erstellen/verwalten …per DBCA …per Sqlplus und Oracle Cloud Control ab Version 12.1.0.3 Beim Erstellen von PDB muss User Berechtigung „CREATE PLUGGABLE DATABASE“ haben …Erstellen einer PDB mit der Seed-DB …Erstellen einer PDB durch Klonen einer anderen PDB …Migration einer Non-CDB zu einer PDB Hinweis! Nachdem PDB erstellt wurde, tnsnames.ora um neuen Eintrag erweitern und Full Backup von CDB durchführen © OPITZ CONSULTING Deutschland GmbH 2014 Seite 16
  • 17. Administration von Multitenant-Features Zugriff auf PDB einrichten …Mit dem Eintrag in tnsnames.ora sqlplus system/oracle@pdb1 oder wenn man grade beim CDB angemeldet ist sql>alter session set container=pdb1 …Ohne Eintrag in tnsnames.ora Hierbei ist der Port optional, wenn der Listener den Default Port verwendet: sqlplus system/oracle@localhost:1521/pdb1 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 17
  • 18. Administration von Multitenant Feature …Ermitteln, ob CDB Option aktiviert ist sql>show parameter enable_pluggable_database …Anmeldung an CDB sql>alter session set container = cdb$root; …Alle PDBs anzeigen …PDB stoppen/starten sql>alter pluggable database pdb1 close; sql>alter pluggable database pdb1 open; …Ermitteln, an welche DB (PDB oder CDB) User gerade angemeldet ist sql>show con_name …PDB löschen (PDB Seed kann nicht gelöscht werden) sql>alter pluggable database pdb1 close; Hinweis! Auch per DBCA möglich sql>drop pluggable database pdb1 [INCLUDING DATAFILES]; © OPITZ CONSULTING Deutschland GmbH 2014 Seite 18
  • 19. PDB klonen PDBs werden per SQL Plus, SQL Developer und Cloud Control ab Version 12.1.0.3 geklont Manuell: Per SQL Plus oder Per DB Link (remote) Achtung! Haupt PDB wird dabei runtergefahren! Deswegen erst APP beenden und Backup erstellen. a) Haupt PDB wird geschlossen und in Read-Only-Modus gesetzt sql>alter pluggable database pdb1 close; sql>alter pluggable database pdb1 open read only; b) Ordner für neue PDB Files erstellen c) Sich an CDB anmelden und PDB2 als PDB1 clonen sql>create pluggable database pdb2 from pdb1; d) PDB in Read-Write-Modus setzen sql>alter pluggable database pdb1 read write; e) Tnsames.ora Eintrag erstellen und Full CDB Backup ausführen © OPITZ CONSULTING Deutschland GmbH 2014 Seite 19
  • 20. Unplug/Plug von PDBs Unplug/Plug kann entweder per DBCA passieren Unplug …PDB soll mindestens ein Mal in Read-Write-Modus geöffnet werden …DB wird vollständig nach dieser Aktion von DB deregestriert, DB Files bleiben aber erhalten …Während Unplug wird XML Konfiguration File, mit allen Informationen zu PDB, erstellt …Für Erstellung von .dbf Backup muss genug Platz vorhanden sein …Alte DB Files können erst, nachdem CDB gestoppt wurde, gelöscht werden …Eine “ausgeklinkte” PDB beinhaltet Infos zu opatch, encryption keys, patchstand und etc. Plug …Xml und erstellte .dbf Backup Files werden in einen neu erstellten Ordner verschoben oder kopiert …Und PDB wird als Clone per DBCA erstellt …Neue PDB wird automatisch von DBCA geöffnet …Nachdem die neue PDB registriert wurde, sollte Full CDB Backup durchgeführt werden © OPITZ CONSULTING Deutschland GmbH 2014 Seite 20
  • 21. Unplug/Plug von PDBs Unplug/Plug per Sqlplus Unplug …PDB soll mindestens ein Mal in Read Write Modus geöffnet werden …Für Erstellung von .dbf Backup muss genug Platz vorhanden sein. a) PDB wird gestoppt sql> alter pluggable database pdb1 close; b) Unplug wird in CDB Sitzung mit Privileg SYSDBA / SYSOPER durchgeführt. sql> alter pluggable database pdb1 unplug into '/tmp/oracle/pdb1.xml'; Die ausgeklinkte PDB ist bei der CDB in der View V$PDBS sichtbar, kann aber nicht mehr geöffnet werden. Dabei werden aber die Datafiles physikalisch nicht gelöscht. c) Löschen Sie die PDB ohne Datendateien: sql> drop pluggable database pdb1; Hinweis! Alte DB Files können nur nach dem CDB gestoppt wurde gelöscht werden © OPITZ CONSULTING Deutschland GmbH 2014 Seite 21
  • 22. Unplug/Plug von PDBs Unplug/Plug per Sqlplus Plug: Vorbereitung a) Datendateien und die XML-Datei werden in neu erstellten Ordner auf den Zielserver kopiert b) Sich an CDB mit Privileg SYSDBA / SYSOPER anmelden c) Prüfen Sie, ob die PDB kompatibel zur CDB ist: Wenn die Ausgabe „YES“ ist, ist die PDB kompatibel zur CDB und kann eingeklinkt werden. d) Wenn die Speicherpfade der Datendateien gleich bleiben, dann reicht ein: sql>create pluggable database pdb2 using '/tmp/oracle/pdb1.xml’ nocopy tempfile reuse; © OPITZ CONSULTING Deutschland GmbH 2014 Seite 22
  • 23. Unplug/Plug von PDBs Unplug/Plug per Sqlplus Plug: Durchführung a) Wenn Speicherpfade sich unterscheiden, wird SOURCE_FILE_NAME_CONVERT verwendet. sql>create pluggable database pdb2 using '/tmp/oracle/pdb1.xml’ nocopy SOURCE_FILE_NAME_CONVERT= (‘/oracle/oradata/pdb1/', '/oracle/oradata/pdb2/) tempfile reuse; b) Prüfen Sie das Ergebnis in V$PDBS: c) PDB wird dann geöffnet sql>alter pluggable database pdb2 open; d) Nachdem die neue PDB registriert wurde, sollte Full CDB Backup ausgeführt werden e) Die neue PDB bekommt automatisch den gleichen Patchstand wie CDB © OPITZ CONSULTING Deutschland GmbH 2014 Seite 23
  • 24. Migration von Non-CDB 11G zu 12c PDB Es gibt drei Möglichkeiten, eine Non-CDB zu einer PDB zu migrieren: per Sqlplus, Exp/Imp oder Golden Gate Sqlplus: Vorbereitung …12c Non-CDB kann nicht direkt in CDB umgewandelt werden …Die Non-CDB soll die Version 12c tragen, weil PL/SQL-Package DBMS_PDB verwendet wird …Der Characterset der zukünftigen PDB muss mit dem der CDB kompatibel sein a) Pfade zu DB Files ermitteln b) Erstellen Sie ein Backup der Non-CDB c) Non-CDB wird für einen transaktionskonsistenten Zustand im Read-Only-Modus geöffnet d) Starten Sie die Prozedur DBMS_PDB.DESCRIBE in der Non-CDB: © OPITZ CONSULTING Deutschland GmbH 2014 Seite 24
  • 25. Migration von Non-CDB 11G zu 12c PDB Sqlplus: Durchführung a) Non-CDB wird gestoppt b) Alle .dbf und erstellte XML Files werden in neu erstellte PDB Ordner bei neu erstellte CDB kopiert Also: nur dbf Files außer Undo. c) Neu PDB wird mit Hilfe von XML erstellt Dabei wird die PDB in Mount Modus gesetzt d) Tnsnames.ora mit neuen Eintrag erweitern e) Sich an neuen PDB anmelden und $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql ausführen, bevor PDB geöffnet wird f) Jetzt kann PDB ganz normal gestoppt und geöffnet werden g) Full CDB Backup ausführen © OPITZ CONSULTING Deutschland GmbH 2014 Seite 25
  • 26. Migration von Non-CDB 11G zu 12c PDB Exp/Imp a) In CDB leere PDB erstellen b) Tnsnames.ora um den neuen Eintrag erweitern c) PDB wird geöffnet sql>alter pluggable database pdb1 open; d) DBA Privileg vergeben sql>grant dba to pdbadm; e) Per Data Pump ein Full Database Export der Non-CDB erstellen expdp system@noncdb directory=expdir dumpfile=noncdb.dmp full=y f) Es wird in der neuen PDB ein Directory für Data Pump erstellt g) Daten werden in der Non-CDB mit Data Pump importiert impdp pdbadm@pdb1 directory=impdir dumpfile=noncdb.dmp full=y h) Full CDB Backup ausführen Replikation mit Golden Gate a) In der CDB wird dann eine neue (leere) PDB erzeugt b) Inhalt der Non-CDB mittels Replikation über Golden Gate übetragen © OPITZ CONSULTING Deutschland GmbH 2014 Seite 26
  • 27. Backup und Restore von CDB/PDB Backup CDB/PDB …ARCHIVELOG Modus wird nur auf CDB-Ebene eingeschaltet …Parameter LOG_ARCHIVE_DEST_n und RECOVERY_FILE_DEST werden auch nur auf CDB-Ebene gesetzt …Beim sichern von CDB werden gleichzeitig alle PDB„s mitgesichert …CDB RMAN Backup wird mit Standard Befehl rman>backup database plus archivelog; durchgeführt …Bei CDB sollte auch Root Datenbank täglich mitgesichert werden rman>backup as compressed backupset database root; …Um PDB zu sichern benötigt User SYSBACKUP Privileg …Bei PDB Backup werden Informationen (Datendateien) nur zur bestimmte PDB gesichert rman target sys/oracle@localhost/cdb rman target=sys@pdb1 -> über CDB sichern -> über PDB direkt Mehrere PDB gleichzeitig aus der CDB heraus sichern rman>backup pluggable database pdb1,pdb2 plus archivelog; © OPITZ CONSULTING Deutschland GmbH 2014 Seite 27
  • 28. Backup und Restore von CDB/PDB Restore CDB …Wenn CDB restored wird sind gleichzeitig alle PDBs getroffen …CDB wird standardmäßig wie Non-CDB wiederhergestellt …Es besteht die Möglichkeit korrupte Root Datenbank restoren, wird aber CDB dabei runtergefahren export ORACLE_SID=cdb -> Es empfiehlt sich auch der Einsatz des Data Recovery Advisors rman target / rman>shutdown immediate; rman>startup mount; rman>restore database root; rman>recover database root; rman>alter database open; rman>alter pluggable database all open; Hinweis! Es wird seitens Oracle empfohlen gleichzeitig alle PDB, nach dem Root wieder da ist, zu restoren Diese Reihenfolge ist langsamer als bei der Wiederherstellung mit RESTORE DATABASE und RECOVER DATABASE CDB © OPITZ CONSULTING Deutschland GmbH 2014 Seite 28
  • 29. Backup und Restore von CDB/PDB Restore PDB …Bevor PDB wiederhergestellt wird, soll erst ein Backup verifiziert werden rman target sys/oracle@localhost/pdb1 rman>validate pluggable database pdb1; rman>restore pluggable database pdb1 validate; …Beim restore werden nur bestimmte PDB wiederhergestellt Hinweis! Einzelne PDB DB Files könnten auch „restored“ werden rman>alter pluggable database pdb1 close; rman>run{ Restore pluggable database pdb1; or Restore pluggable database pdb1,pdb2; Recover pluggable database pdb1; or Recover pluggable database pdb1,pdb2; } rman>alter pluggable database pdb1 open; (oder open resetlogs) …Incarnation abfragen sql>select * from v$pdb_incarnation; © OPITZ CONSULTING Deutschland GmbH 2014 Seite 29
  • 30. Lizenzierungsaspekte  Bei Oracle Standard Edition und Standard One ist nur eine PDB erlaubt  Ab Oracle Enterprise Edition sind 252 PDBs möglich  Bei Oracle Enterprise Edition wird Multitenant als extra Option lizenziert © OPITZ CONSULTING Deutschland GmbH 2014 Seite 30
  • 31. Sonstiges Verlust von PDB System Tablespace führt zum Absturz von CDB …Offizielle Aussage von Oracle Support zu dem Oracle 12.1.0.1 Multitenant Bug “CDB must be restarted if PDB system datafile is lost. For non-SYSTEM datafiles, you can offline, restore, recover, and online them…all while CDB is online. We plan to address the lost system datafile scenario in a future release.” …Wenn CDB abstürtzt sind folgende Fehlermeldungen in Alert.log Datei zu finden: © OPITZ CONSULTING Deutschland GmbH 2014 Seite 31
  • 32. Sonstiges Temporary Lösung a) CDB „mounten“ sql>startup mount b) System Datafile von PDB „restoren“ und „recovern“ rman target sys/oracle@localhost/pdb1 rman>run{ alter database datafile 8 offline; restore datafile 8; recover datafile 8; alter database datafile 8 online; } c) Container Datenbank öffnen sql>alter database open; d) Pluggable Database öffnen sql>alter pluggable database pdb1 open; e) Full Backup für CDB starten © OPITZ CONSULTING Deutschland GmbH 2014 Seite 32
  • 34. Fragen und Antworten © OPITZ CONSULTING Deutschland GmbH 2014 Seite 34
  • 35. Kontakt Ilgar Machmudov Oracle & SQL Server DBA OPITZ CONSULTING Deutschland GmbH Kirchstr. 6 | 51647 Gummersbach Tel. +49 (2261) 60 01-0 ilgar.machmudov@opitz-consulting.com youtube.com/opitzconsulting @OC_WIRE slideshare.net/opitzconsulting xing.com/net/opitzconsulting © OPITZ CONSULTING Deutschland GmbH 2014 Seite 35