Oracle 12c Multitenant Option DOAG · Ab Oracle 12c unterscheidet man zwischen Oracle Standard...
Transcript of Oracle 12c Multitenant Option DOAG · Ab Oracle 12c unterscheidet man zwischen Oracle Standard...
Seite 1
© OPITZ CONSULTING Deutschland GmbH 2014
DOAG Webinar
Ilgar Machmudov
Opitz Consulting Deutschland GmbH
Konzepte und Einsatzgebiet von Container und Pluggable Databases
Kirchstr 6, 51647 Gummersbach 10.01.2014
Oracle 12c Multitenant Option
Seite 2
© OPITZ CONSULTING Deutschland GmbH 2014
� Umsatz� 2012: 36,7 Mill. €
� 2013: 38,8 Mill. € (Prognose)
� Mitarbeiter� 2012: 382 Mitarbeiter
� 2013: 385 Mitarbeiter (Prognose)
Konzepte und Einsatzgebiet von Container und
Pluggable Databases
Peter Dix (CFO):
„Solides Wirtschaften in Verbindung mit einer langfristigen kundenorientierten Strategie garantiert den wirtschaftlichen Erfolg“
Standorte Unternehmensentwicklung
Seite 3
© OPITZ CONSULTING Deutschland GmbH 2014
Outtasking
Wie wir aktiv sind – Das Ecosystem
Kunden
Partner
StrategischeBeratung
Planung Design Realisierung
Industrie Finanzdienstleister
Non-ProfitHandel/Logistik
Jürgen KunzSenior Vice President Northern Europe & Managing Director Oracle Germany
„ Unser Certified Advantage PartnerOPITZ CONSULTING gehört auf Grund seiner qualifizierten Mitarbeiter und herausragenden Projekterfolge zu unseren privilegierten Partnern.“
Andreas Röttger (COO):„ Ein ganzheitliches Lösungsangebot
für komplexe und innovative IT-Lösungen ist nur durch den Mehrwert einer partnerschaftlichen Zusammen-arbeit möglich.“
Markus MehrensHead of Accountmanagement, Deutsche Postbank AG
„ Referring to our external partners, I rarely experienced that projectorganisation and project managementhave been handled in such perfectmanner.“
Telko/ Medien
Technologie
Methoden
Marketing
Non-Profit
Seite 4
© OPITZ CONSULTING Deutschland GmbH 2014
� Senior Consultant, Opitz Consulting Deutschland GmbH
� Arbeit mit Oracle und MS SQL Server seit 2001
� Bei Opitz seit 2012
� Schwerpunkte:
Administration, Oracle und MS-SQL HA Lösungen
Über mich
Seite 5
© OPITZ CONSULTING Deutschland GmbH 2014
� Wesentliche Unterschiede von CDB / PDB zu alten Oracle Strukturen
� Bausteine und Hauptkomponente einer 12c Multitenant Architektur
� Neue Dictionary Informationen zu CDB / PDB
� Administration von Multitenant Feature
� Unplug / Plug und Cloning von PDB‘s
� Migrationsleitfaden von Non-CDB 11G zu 12c PDB
� Backup Möglichkeit und Restore Fähigkeit von CDB / PDB
� Lizensierung Aspekte
Abkürzungen:
CDB - Container Database
PDB - Pluggable Database
Non-CDB – Standard Oracle 11g / 12c Datenbank
Agenda
Seite 6
© OPITZ CONSULTING Deutschland GmbH 2014
� Ab Oracle 12c unterscheidet man zwischen Oracle Standard Non-CDB und CDB
CDB (Container Database)
…wird intern als CDB$ROOT (Root Container) bezeichnet
…CDB stellt SGA, Controlfiles, Redo Logs und Undo bereit
Seed Database (PDB$SEED)
…Gibt’s nur ein Mal pro CDB
…Dient als Vorlage beim erstellen von neue PDB
PDB (Pluggable Database)
…Ist eine Applikation DB, die Ressourcen von CDB nutzt
…Besitzt aber eigene System , Sysaux und Temp Tablespace
Non-CDB
…Eine Standard Oracle 12c Datenbank
Wesentliche Unterschiede
Seite 7
© OPITZ CONSULTING Deutschland GmbH 2014
� CDB unterstützt bei Oracle Version 12.1.0.1 bis zu 252 PDBs plus Seed Database
� PDB‘s können per Links innerhalb eine CDB mit einander kommunizieren
� Wenn CDB gepatcht wird, wird diese Änderung gleichzeitig auf PDB‘s wirksam
� Spfile wird von PDB‘s und CDB geteilt
� Alert.log Datei gibt es nur ein Mal für CDB und alle PDB‘s
� Beim stoppen von CDB werden alle PDB‘s gleichzeitig runtergefahren
� Beim löschen von CDB werden alle PDB‘s incl. Seed Database gelöscht
Wesentliche Unterschiede
Seite 8
© OPITZ CONSULTING Deutschland GmbH 2014
� 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 mit „Create Session“-Privileg an jede PDB anmelden
…ist Besitzer von Oracle Systemobjekten
…hat „common grants“ Berechtigungen
…CDB Administratoren können Zugriff auf alle oder nur auf bestimmte PDB haben
“ 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
…hat „local grants“ Berechtigungen
Bausteine und Hauptkomponente
Seite 9
© OPITZ CONSULTING Deutschland GmbH 2014
� Data Dictionary wurde um neue CDB View-Ebene erweitert
…Neue Dictionary Tabellen: z.B. cdb_pdbs, cdb_dba, pdb_dba, dba_pdbs, v$pdbs
…CDB und DBA_PDB‘s View sind nur in der CDB verfügbar
…Jede View wurde um die Spalte CON_ID erweitert
sql>select username,con_id from cdb_users;
… PDB Id‘s werden wie folgt ermittelt
sql> select name,con_id from v$pdbs;
… Gegensatz zu CDB, werden nur die Data Dictionary Informationen zu der jeweilige PDB angezeigt
Neue Dictionary Informationen zu CDB / PDB
Seite 10
© OPITZ CONSULTING Deutschland GmbH 2014
� Parametrisierung
…Es besteht die Möglichkeit Einstellung 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 mitberü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;
Neue Dictionary Informationen zu CDB / PDB
Seite 11
© OPITZ CONSULTING Deutschland GmbH 2014
…Gegensatz zu CDB, laufen alle PDB‘s in MOUNTED, READ WRITE oder READ ONLY Modus
…Folgende Tabellen zeigen aktueller Status von Datenbanken
Neue Dictionary Informationen zu CDB / PDB
Seite 12
© OPITZ CONSULTING Deutschland GmbH 2014
� CDB erstellen / verwalten
…per DBCA
…per Oracle Cloud Control
…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 und post-creation scripts ausgeführt
Administration von Multitenant Feature
Seite 13
© OPITZ CONSULTING Deutschland GmbH 2014
� PDB erstellen / verwalten
…per DBCA
…per Sqlplus, SQL Developer 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
Administration von Multitenant Feature
Seite 14
© OPITZ CONSULTING Deutschland GmbH 2014
� 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
sqlplus system/oracle@localhost:1521/pdb1
Administration von Multitenant Feature
Seite 15
© OPITZ CONSULTING Deutschland GmbH 2014
…Ermitteln ob CDB Option aktiviert ist sql>show parameter enable_pluggable_database
…Anmeldung an CDB sql>alter session set container = cdb$root;
…Alle PDB‘s anzeigen
…PDB stoppen / starten
sql>alter pluggable database pdb1 close;
sql>alter pluggable database pdb1 open;
…Ermitteln an welche DB (PDB oder CDB) User grade angemeldet ist
sql>show con_name
…PDB löschen sql>alter pluggable database pdb1 close;
sql>drop pluggable database pdb1 [INCLUDING DATAFILES];
Administration von Multitenant Feature
Seite 16
© OPITZ CONSULTING Deutschland GmbH 2014
� PDB werden per SQL Plus, SQL Developer und Cloud Control ab Version 12.1.0.3 geklont
Manuel:
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) Full CDB Backup ausführen
PDB Klonen
Seite 17
© OPITZ CONSULTING Deutschland GmbH 2014
� Unplug / Plug per DBCA
Unplug
…PDB mindestens ein Mal in Read Write Modus öffnen
…Wird XML Konfiguration File, mit allen Informationen zu PDB, erstellt
…Eine “ausgeklinkte” PDB beinhaltet Infos zu opatch, encryption keys, patchstand und etc.
Plug
…Xml und erstellte .dbf Backup Files werden verschoben oder kopiert
…Und PDB wird als Clone per DBCA erstellt
…Neue PDB wird automatisch von DBCA geöffnet
….Nach dem neue PDB registriert Full CDB Backup ausführen
Unplug / Plug von PDB‘s
Seite 18
© OPITZ CONSULTING Deutschland GmbH 2014
� Unplug / Plug per Sqlplus
Unplug
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';
c) Empfehlung! Löschen Sie die PDB ohne Datendateien:
sql> drop pluggable database pdb1;
Unplug / Plug von PDB‘s
Seite 19
© OPITZ CONSULTING Deutschland GmbH 2014
� Unplug / Plug per Sqlplus
Plug: Vorbereitung
a) Datendateien und die XML-Datei werden auf den Zielserver kopiert
b) Sich an CDB mit Privileg SYSDBA / SYSOPER anmelden
c) Prüfen Sie, ob die PDB kompatibel zur CDB ist:
d) Wenn die Speicherpfade der Datendateien gleich bleiben, dann reicht ein:
sql>create pluggable database pdb2 using '/tmp/oracle/pdb1.xml’ nocopy tempfile reuse;
Unplug / Plug von PDB‘s
Seite 20
© OPITZ CONSULTING Deutschland GmbH 2014
� Unplug / Plug per Sqlplus
Plug: Durchführung
a) Wenn Speicherpfade sich unterscheiden, dann wird SOURCE_FILE_NAME_CONVERT verwändet.
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) Nach dem neue PDB registriert wurde Full CDB Backup ausführen
Unplug / Plug von PDB‘s
Seite 21
© OPITZ CONSULTING Deutschland GmbH 2014
Per Sqlplus: Vorbereitung
Hinweis! Es wird erst 12c DB erstellt und Inhalt per exp/imp von 11G importiert
a) Pfade zu DB Files ermitteln
b) Erstellen Sie ein Backup der Non-CDB
c) Non-CDB wird im READ ONLY-Modus geöffnet
d) Starten Sie die Prozedur DBMS_PDB.DESCRIBE in der Non-CDB (nur bei 12c möglich):
Migration von Non-CDB 11G zu 12c PDB
Seite 22
© OPITZ CONSULTING Deutschland GmbH 2014
Per Sqlplus: Durchführung
a) Non-CDB wird gestoppt
b) Alle .dbf und erstellte XML Files werden in erstellte PDB Ordner bei neu erstellte CDB kopiert
c) Neu PDB wird mit Hilfe von XML erstellt
d) Tnsnames.ora mit neuen Eintrag erweitern
e) Bei PDB Script $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql ausführen
f) Jetzt kann PDB ganz normal gestoppt und geöffnet werden
sql>alter pluggable database pdb2 close;
sql>alter pluggable database pdb2 open;
g) Full CDB Backup ausführen
Migration von Non-CDB 11G zu 12c PDB
Seite 23
© OPITZ CONSULTING Deutschland GmbH 2014
Per Exp/Imp
a) In CDB leere PDB erstellen
b) Tnsnames.ora mit dem 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
Migration von Non-CDB 11G zu 12c PDB
Seite 24
© OPITZ CONSULTING Deutschland GmbH 2014
� Backup CDB / PDB
…ARCHIVELOG Modus, LOG_ARCHIVE_DEST_n und RECOVERY_FILE_DEST nur auf CDB-Ebene Möglich
…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 nur zur bestimmte PDB gesichert
rman target sys/oracle@localhost/cdb
rman target=sys@pdb1
Mehrere PDB gleichzeitig aus CDB raus sichern
rman>backup pluggable database pdb1,pdb2 plus archivelog;
Backup und Restore von CDB / PDB
Seite 25
© OPITZ CONSULTING Deutschland GmbH 2014
� Restore CDB
…Wenn CDB restored wird sind gleichzeitig alle PDB‘s getroffen
…CDB wird standardmäßig wie Non-CDB wiederhergestellt
…Es besteht die Möglichkeit korrupte Root Datenbank restoren, wird aber CDB dabei runtergefahren
rman target /
rman>run{
shutdown immediate;
startup mount;
restore database root;
recover database root;
alter database open;
alter pluggable database all open;
}
Backup und Restore von CDB / PDB
Seite 26
© OPITZ CONSULTING Deutschland GmbH 2014
� Restore PDB
…Bevor PDB wiederhergestellt wird, soll erst Backup verifiziert werden
rman target sys/oracle@localhost/pdb1
rman>validate pluggable database pdb1;
rman>restore pluggable database pdb1 validate;
…Beim restoren werden nur bestimmte PDB wiederhergestellt
rman>alter pluggable database pdb1 close;
rman>run{
restore pluggable database pdb1;
recover pluggable database pdb1;
alter pluggable database pdb1 open;
}
…Incarnation abfragen sql>select * from v$pdb_incarnation;
Backup und Restore von CDB / PDB
Seite 27
© OPITZ CONSULTING Deutschland GmbH 2014
� Bei Oracle Standard Edition und Standard One ist nur eine PDB erlaubt
� Ab Oracle Enterprise Edition sind 252 PDB‘s möglich
� Bei Oracle Enterprise Edition wird Multitenant Option als extra Option Lizensiert
Lizensierung Aspekte
Seite 28
© OPITZ CONSULTING Deutschland GmbH 2014
� Verlust von PDB System Tablespace führt zu dem Absturtz 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ürtz sind folgende Fehlermeldungen in Alert.log Datei zu finden:
Sonstiges
Seite 29
© OPITZ CONSULTING Deutschland GmbH 2014
� 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
Sonstiges
Seite 30
© OPITZ CONSULTING Deutschland GmbH 2014
� 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
…Lizensierung
http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf
http://docs.oracle.com/cd/E16655_01/license.121/e17614.pdf
Quelle
Seite 32
© OPITZ CONSULTING Deutschland GmbH 2014
Kontakt
Ilgar MachmudovOracle & SQL Server DBA
OPITZ CONSULTING Deutschland GmbHKirchstr. 6 | 51647 GummersbachTel. +49 (2261) 60 [email protected]
youtube.com/opitzconsulting
@OC_WIRE
slideshare.net/opitzconsulting
xing.com/net/opitzconsulting