22
Özgür Umut VURGUN Özgür Umut VURGUN 12c Pluggable Database Hands-On 16 Ocak 2014 www.ozgurumutvurgun.com TROUG Ankara Bulusmasi

Oracle12c Pluggable Database Hands On - TROUG 2014

Embed Size (px)

Citation preview

Page 1: Oracle12c Pluggable Database Hands On - TROUG 2014

Özgür Umut VURGUNÖzgür Umut VURGUN

12c Pluggable Database Hands-On

16 Ocak 2014www.ozgurumutvurgun.com

TROUG Ankara Bulusmasi

Page 2: Oracle12c Pluggable Database Hands On - TROUG 2014

AjandaAjanda

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

Oracle Kronoloji

Oracle 12c Pluggable Database

Container Database

CDB$ROOT

Pluggable Database

Oracle 12c Yeni Kullanıcılar ve Haklar

Oracle 12c Hands On

Lab 1: Drop / Unplug PDB

Lab 2: Plug / Clone PDB

Lab 3: CLONE PDB FROM REMOTE CDB

Lab 4: CLONE PDB FROM REMOTE CDB with DB Link

Lab 5: Non CDB to CDB with Data Pump Transportable Export / Import

Page 3: Oracle12c Pluggable Database Hands On - TROUG 2014

Oracle KronolojiOracle Kronoloji

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

Real Application Cluster

Grid

Manage changing

Page 4: Oracle12c Pluggable Database Hands On - TROUG 2014

Pre - Oracle 12cPre - Oracle 12c

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

Oracle 12c öncesi veritabanı yapısını inceleyecek olursak …

- Background Proses çokluğu

- Yüksek memory paylaşımı

- Birden çok Oracle Medata zorunluluğu

Page 5: Oracle12c Pluggable Database Hands On - TROUG 2014

Oracle 12c Pluggable DatabaseOracle 12c Pluggable Database

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

CoContainer Database (CDB)ntainer Database (CDB)

Birden fazla veri tabanının çalıştığı ana yapı.

PluggablePluggable Database ( Database (PPDB)DB)

Taşınabilir özelliği olan ve normal işlemlerin yürütüldüğü veri tabanları

Non ContainerNon Container Database Database

Oracle 12c yapısı dışında kullanılan veri tabanları

PDB$SEEDPDB$SEED

Container DB üzerinde bulunan template PDB

CDB ve PDB üzerinde yeni kullanıcılar. Common Role &Users , Local Role & Users

User & GrantsUser & Grants

Page 6: Oracle12c Pluggable Database Hands On - TROUG 2014

Container Database (CDB)Container Database (CDB)

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

• ROOT yapısı altında ‘Oracle System Metada’ ve ve işlemlerinin yapıldığı alandır.

• Oracle Metadata

• ‘Common Users’ yönetiminin yapıldığı

• Instance mantığında memory ve proses yönetiminin yapıldığı alandır.

Page 7: Oracle12c Pluggable Database Hands On - TROUG 2014

CDB$ROOT / Root FilesCDB$ROOT / Root Files

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

• SYSTEM – SYSAUX - UNDO ve USERS tablespace’leri

• Oracle Sistem Medata

• Redolog

[oracle@test1 scripts]$ sqlplus / as sysdba

SQL> @tablespace CON_ID Status Name Type Size (M) ---------- ----- ------------------------------ --------------------- -------------- 1 ONLINE SYSTEM PERMANENT 790.000 1 ONLINE SYSAUX PERMANENT 1,470.000 1 ONLINE UNDOTBS1 UNDO 250.000 1 ONLINE USERS PERMANENT 5.000 2 ONLINE SYSTEM PERMANENT 250.000 2 ONLINE SYSAUX PERMANENT 590.000 5 ONLINE ABYS_DATA PERMANENT 161.250 5 ONLINE SYSAUX PERMANENT 820.000 5 ONLINE USERS PERMANENT 38.750 5 ONLINE SYSTEM PERMANENT 440.000

[oracle@test1 scripts]$ sqlplus sys/Oracle3@abys as sysdba

SQL> @tablespace

CON_ID Status Name Type Extent Man Size (M) ---------- --------- ------------------------------ --------- ---------- -------------- 5 ONLINE USERS PERMANENT 38.750 5 ONLINE ABYS_DATA PERMANENT 161.250 5 ONLINE TEMP TEMPORARY 506.000 5 ONLINE SYSTEM PERMANENT 440.000 5 ONLINE SYSAUX PERMANENT 820.000

• Default temp

• PLSQL shared package(dbms_sql)

Page 8: Oracle12c Pluggable Database Hands On - TROUG 2014

Pluggable Database (PDB)Pluggable Database (PDB)

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

SYSTEMSYSTEM SYSAUXSYSAUXUsersUsers

TempTemp

OBJ$ Resource PlanLocal

Privilege

Common RoleCommon Role

Local RoleLocal Role

Common Common UsersUsers

Local Local UsersUsers

• Application Tablespace

• TEMP (lokal)

• Kullanıcılar ve Hakları

• PDB Sistem Metadata

• Application Verisi

• Resource Plan

Page 9: Oracle12c Pluggable Database Hands On - TROUG 2014

TopolojiTopoloji

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

Page 10: Oracle12c Pluggable Database Hands On - TROUG 2014

Oracle 12c InstallationOracle 12c Installation

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

Page 11: Oracle12c Pluggable Database Hands On - TROUG 2014

Users and RolesUsers and Roles

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

Common Users Local UsersLocal Users

Root Container’dan yönetilir

C## ön adıyla başlamak zorundadır.

CDB üzerindeki her PDB’de geçerlidir.

Unique User

CONTAINER=ALL

Pre – Oracle 12c

PDB User

Multiple User

CommonRole

CommonRole

Local Role

Root Container’dan yönetilir

CREATE ROLE – SET CONTAINER

C## ön adıyla başlamak zorundadır.

CONTAINER=ALL ile kullanılır.

PDB’den yönetilir.

CREATE ROLE

Oluşturulduğu PDB üzerinde

geçerlidir.

CDB$ROOT PDB

Page 12: Oracle12c Pluggable Database Hands On - TROUG 2014

Users and GrantsUsers and Grants

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

CDB$ROOTCDB$ROOTSYSSYS C##DBAC##DBA

SYSSYS

C##DBAC##DBA NATNAT

HRHR SYSSYS

C##DBAC##DBA NATNAT

HRHR

SYS

C##DBA

HR

HR

Sqlplus sys/Oracle3@pdbtst1 as sysdba;Sqlplus sys/Oracle3@pdbtst2 as sysdba;

NAT

NAT

pdbtst1 pdbtst2

Create user c##dba identified by test1 container=ALL;Grant create session to c##dba container=ALL;

Grant select any table to c##dba container=ALL;

Page 13: Oracle12c Pluggable Database Hands On - TROUG 2014

CREATE PDBsCREATE PDBs

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

1. FILE_NAME_CONVERT olmadan PDB oluşturma

SQL> CREATE PLUGGABLE DATABASE PDBTST1 ADMIN USER PDBTST1_ADMIN IDENTIFIED BY oracleROLES = (connect,resource);

Pluggable database created.

CREATE PLUGGABLE DATABASE PDBTST1 ADMIN USER PDBTST1_ADMIN IDENTIFIED BY oracleFILE_NAME_CONVERT = ('/disk2/app/oracle/oradata/orcl/pdbseed','/disk2/dbf');

2. FILE_NAME_CONVERT ile PDB oluşturma

SQL> select NAME, OPEN_MODE, CON_ID from V$PDBS;NAME OPEN_MODE CON_IDPDB$SEED READ ONLY 2PDBORCL MOUNTED 3PDBTST1 MOUNTED 7

**** alter session set pdb_file_name_convert='pdb','pdb_test';

Page 14: Oracle12c Pluggable Database Hands On - TROUG 2014

PDB Open / ClosePDB Open / Close

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

SHUTDOWNSHUTDOWN

NOMOUNTNOMOUNT

MOUNTMOUNT

OPENOPEN

PDB OPENPDB OPEN ALTER PLUGGABLE DATABASE pdbtst1 OPEN; ALTER PLUGGABLE DATABASE ALL OPEN;

ALTER DATABASE OPEN;STARTUP

ALTER DATABASE MOUNT;STARTUP MOUNT

ALTER PLUGGABLE DATABASE pdb1 CLOSE IMMEDIATE;ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE;ALTER PLUGGABLE DATABASE ALL CLOSE;ALTER PLUGGABLE DATABASE CLOSE;SHUTDOWN IMMEDIATE

STARTUP NOMOUNT SQL> alter database mount;Database altered.

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODE------------------------------ ----------PDB$SEED MOUNTEDPDBORCL MOUNTEDPDBTST1 MOUNTED

SQL> alter database mount;Database altered.

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODE------------------------------ ----------PDB$SEED MOUNTEDPDBORCL MOUNTEDPDBTST1 MOUNTED

SQL> startupORACLE instance started.Database opened.

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODE------------------------------ ----------PDB$SEED READ ONLYPDBORCL MOUNTEDPDBTST1 MOUNTED

SQL> startupORACLE instance started.Database opened.

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODE------------------------------ ----------PDB$SEED READ ONLYPDBORCL MOUNTEDPDBTST1 MOUNTED

SQL> alter pluggable database all open;Pluggable databases opened.

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODE------------------------------ ----------PDB$SEED READ ONLYPDBORCL READ WRITEPDBTST1 READ WRITE

SQL> alter pluggable database all open;Pluggable databases opened.

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODE------------------------------ ----------PDB$SEED READ ONLYPDBORCL READ WRITEPDBTST1 READ WRITE

Page 15: Oracle12c Pluggable Database Hands On - TROUG 2014

Lab1: UNPLUG / Lab1: UNPLUG / DROP DROP PDBsPDBs

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

ALTER PLUGGABLE DATABASE PDBORCL CLOSE;

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODEPDB$SEED READ ONLYPDBORCL MOUNTPDBTST1 READ WRITEROOTROOT

1 CLOSE PDB

2 UNPLUG PDB

ROOTROOT

ALTER PLUGGABLE DATABASE PDBORCL UNPLUG INTO '/DISK2/SETUP_FILES/PDBORCL.XML';

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODEPDB$SEED READ ONLYPDBTST1 READ WRITE

3 DROP PDB

ROOTROOT XMLXML

DBFDBF

DROP PLUGGABLE DATABASE PDBORCL;

DROP PLUGGABLE DATABASE PDBORCL KEEP DATAFILES;

DROP PLUGGABLE DATABASE PDBORCL INCLUDING DATAFILES

Page 16: Oracle12c Pluggable Database Hands On - TROUG 2014

Lab2 : PLUG / Clone PDB Lab2 : PLUG / Clone PDB

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

2 CLONE PDB

ALTER PLUGGABLE DATABASE TST07 OPEN READ ONLY;

CREATE PLUGGABLE DATABASE TST08 FROM TST07 FILE_NAME_CONVERT=(……………);

ALTER PLUGGABLE DATABASE TST07 OPEN READ WRITE;ALTER PLUGGABLE DATABASE TST08 OPEN READ WRITE;

ROOTROOT

ROOTROOT

CREATE PLUGGABLE DATABASE PDBORCLUSING '/disk2/setup_files/pdborcl.xml‘FILE_NAME_CONVERT=(…………………………);

CREATE PLUGGABLE DATABASE PDBORCL USING '/disk2/setup_files/pdborcl.xml' NOCOPY || COPY || MOVE TEMPFILE REUSE;

SQL> SELECT name,open_mode FROM v$pdbs;NAME OPEN_MODEPDB$SEED READ ONLYPDBORCL MOUNTEDTST1 READ WRITE

1 PLUG PDB XMLXML

Page 17: Oracle12c Pluggable Database Hands On - TROUG 2014

Lab 3 : CLONE PDB FROM REMOTE CDBLab 3 : CLONE PDB FROM REMOTE CDB

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

ROOTROOT

1 Create PDB CDB to CDB

ROOTROOT

CDBIST

CDBANK

XML ve DBF -> Target OSXML ve DBF -> Target OS

scp -r * [email protected]:/disk2/setup_files/datafiles

CDB’de PDB’lerin kontrolüCDB’de PDB’lerin kontrolü

SQL> select pdb_name, status from CDB_PDBS;PDB_NAME STATUSPDB$SEED NORMALPDB01 NORMALPDB05 NORMAL

PDB OluşturalımPDB Oluşturalım

create pluggable database PDBCDR using '/disk2/setup_files/ pdborcl.xml' source_file_name_convert (‘……, ……') nocopy tempfile reuse;

Oluşan PDB’in durumu Oluşan PDB’in durumu

SQL> select pdb_name, status from CDB_PDBS; PDB_NAME STATUSPDB$SEED NORMALPDBTST1 NORMALPDBCDR UNPLUG

SQL> select name, open_mode from V$PDBS; NAME OPEN_MODEPDB$SEED READ ONLYPDBCDR MOUNTEDPDBTST1 READ WRITE

Page 18: Oracle12c Pluggable Database Hands On - TROUG 2014

Lab 4 : CLONE PDB FROM REMOTE CDB with DB LINKLab 4 : CLONE PDB FROM REMOTE CDB with DB LINK

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

ROOTROOT

4 Create PDB CDB to CDB

ROOTROOT

CDBIST

CDBANK

DB Link

PDB Read OnlyPDB Read Only

SQL> alter pluggable database PDBCDR close immediate; SQL> alter pluggable database PDBCDR open read only;

DB LinkDB Link

create database link pdbcdr _lnk connect to SYSTEM identified by Oracle3 using '192.168.4.61:1521/pdbcdr';

create pluggable database pdbcdr _rmt from pdbcdr @ pdbcdr _lnk file_name_convert=('/disk2/app/oracle/oradata/orcl/','/disk2/app/oracle/oradata/orcl/remotedb');

PDB OluşturmaPDB Oluşturma

SQL> select name, open_mode from V$PDBS; NAME OPEN_MODEPDB$SEED READ ONLYPDBCDR MOUNTEDPDBTST1 READ WRITE

* BUG 15931910 * BUG 15931910

Page 19: Oracle12c Pluggable Database Hands On - TROUG 2014

Lab 5 : Move Non CDB to CDB Lab 5 : Move Non CDB to CDB

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

ABYS

ROOTROOT

CDBANK

OS : Windows 7 32bitDB : Oracle 11.2.0.3

OS : Centos Linux 64bitDB : Oracle 12.1.0.1

Bu yöntemi uygulamak için ;

**** Non CDB veritabanı 11.2.0.3 olmak zorunda

**** Compatible Parametresi = 11.2.0.3

**** Karakter setleri aynı olmalıABYSDBABYSDB

DMPDosyası

expdp 'sys/Oracle3 as sysdba' full=y job_name=EXPORT_CDRDB dumpfile=abysdbdb.dmp DIRECTORY=EXP_DATA_PUMP_DIR LOGFILE=exp_abysdb.log VERSION=12 transportable=always

2. Non CDB, Data Pump Transportable Export

1. Tablespace Read Only

Alter tablespace ABYS read only;

Alter tablespace USERS read only;

3. RMAN Backup DBF

rman target /Run {CONVERT DATAFILE 'D:\APP\197278\ORADATA\ORCL\ABYS.DBF' DB_FILE_NAME_CONVERT="D:\APP\197278\ORADATA\ORCL\ABYS.DBF","D:\orabkup\ABYS.DBF" …………………..

Page 20: Oracle12c Pluggable Database Hands On - TROUG 2014

Lab 5 : Move Non CDB to CDB Lab 5 : Move Non CDB to CDB

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

ABYS

ROOTROOT

CDBANK

OS : Windows 7 32bitDB : Oracle 11.2.0.3

OS : Centos Linux 64bitDB : Oracle 12.1.0.1

ABYSDBABYSDB

4. Dosyaların Transferi

CREATE PLUGGABLE DATABASE abysADMIN USER admin IDENTIFIED BY abysROLES = (connect,resource);

Alter pluggable database ABYS open read write ;

DMPDosyası

5. Pluggable DB Oluşturma

FTP ile kopyalama

*** $scp –r exp_files oracle@test2:/disk2/backup

6. Restore Datafiles

run{CONVERT DATAFILE '/disk2/exp/ABYS.dbf' DB_FILE_NAME_CONVERT="/disk2/exp/import/ABYS.dbf","/disk2/app/oracle/oradata/orcl/abys_a/ABYS.dbf" FORMAT='/disk2/app/oracle/oradata/orcl/abys_a/ABYS.dbf';……………………..

Page 21: Oracle12c Pluggable Database Hands On - TROUG 2014

Lab 5: Move Non CDB to CDB Lab 5: Move Non CDB to CDB

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

ROOTROOT

CDBANKOS : Centos Linux 64bitDB : Oracle 12.1.0.1

ABYSOS : Windows 7 32bitDB : Oracle 11.2.0.3

ABYSDBABYSDB

7. Import

DMPDosyası

8. PDB Status

SQL> select CON_ID, NAME, OPEN_MODE from V$PDBS;

CON_ID NAME OPEN_MODE 2 PDB$SEED READ ONLY4 ABYS READ WRITE

impdp \'sys/Oracle3@abyspdb AS SYSDBA\' full=y DIRECTORY=IMP_DATA_PUMP_DIR dumpfile=DATAPUMP_DEV2DB.DMP LOGFILE=imp_abys.log VERSION=12 TRANSPORT_DATAFILES=USERS01.DBF_2 job_name=imp_ABYSdb parallel=2 REMAP_TABLESPACE='ABYS':'ABYS_DATA'

9. Tablo Kontrolü

[oracle@test1]$ sqlplus / as sysdba

SQL > conn sys/Oracle3@abysdb as sysdbaConnectted.

SQL> select count(*) from abys.abone;COUNT(*)6597

Page 22: Oracle12c Pluggable Database Hands On - TROUG 2014

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

TeşekkürlerÖzgür Umut VurgunÖzgür Umut Vurgun

Bilgisayar MühendisiBilgisayar MühendisiOracle 10g OCA/OCP Oracle 10g OCA/OCP

[email protected]@gmail.com

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com

www.turkceoracle.com