Oracle 12c Multitenant Option DOAG · Ab Oracle 12c unterscheidet man zwischen Oracle Standard...

32
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

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 31

© OPITZ CONSULTING Deutschland GmbH 2014

Fragen und Antworten

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