Oracle 12c Multitenant Option

Oracle 12c Multitenant Option Konzepte und Einsatzgebiet von Container und Pluggable Databases DOAG Webinar Ilgar Machmudov Opitz Consulting Deutsch...
Author: Caroline Martin
2 downloads 2 Views 1MB Size
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

Konzepte und Einsatzgebiet von Container und Pluggable Databases 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 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 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

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 5

Wesentliche Unterschiede 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

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 6

Wesentliche Unterschiede 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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 7

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 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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 8

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 …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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 9

Neue Dictionary Informationen zu CDB / PDB 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; © OPITZ CONSULTING Deutschland GmbH 2014 Seite 10

Neue Dictionary Informationen zu CDB / PDB …Gegensatz zu CDB, laufen alle PDB‘s in MOUNTED, READ WRITE oder READ ONLY Modus …Folgende Tabellen zeigen aktueller Status von Datenbanken

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 11

Administration von Multitenant Feature 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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 12

Administration von Multitenant Feature 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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 13

Administration von Multitenant Feature 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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 14

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 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]; © OPITZ CONSULTING Deutschland GmbH 2014 Seite 15

PDB Klonen 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

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 16

Unplug / Plug von PDB‘s 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

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 17

Unplug / Plug von PDB‘s 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;

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 18

Unplug / Plug von PDB‘s 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;

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 19

Unplug / Plug von PDB‘s 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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 20

Migration von Non-CDB 11G zu 12c PDB 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):

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 21

Migration von Non-CDB 11G zu 12c PDB 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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 22

Migration von Non-CDB 11G zu 12c PDB 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 © OPITZ CONSULTING Deutschland GmbH 2014 Seite 23

Backup und Restore von CDB / PDB 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;

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 24

Backup und Restore von CDB / PDB 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; } © OPITZ CONSULTING Deutschland GmbH 2014 Seite 25

Backup und Restore von CDB / PDB 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; © OPITZ CONSULTING Deutschland GmbH 2014 Seite 26

Lizensierung Aspekte 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

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 27

Sonstiges 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:

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 28

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 d) Pluggable Database öffnen

sql>alter database open; sql>alter pluggable database pdb1 open;

e) Full Backup für CDB starten © OPITZ CONSULTING Deutschland GmbH 2014 Seite 29

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

…Lizensierung 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 30

Fragen und Antworten

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 31

Kontakt Ilgar Machmudov Oracle & SQL Server DBA

OPITZ CONSULTING Deutschland GmbH Kirchstr. 6 | 51647 Gummersbach Tel. +49 (2261) 60 01-0 [email protected]

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

© OPITZ CONSULTING Deutschland GmbH 2014 Seite 32