Oracle12c Pluggable Database Hands On - TROUG 2014

Preview:

Citation preview

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

12c Pluggable Database Hands-On

16 Ocak 2014www.ozgurumutvurgun.com

TROUG Ankara Bulusmasi

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

Oracle KronolojiOracle Kronoloji

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

Real Application Cluster

Grid

Manage changing

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

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

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.

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)

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

TopolojiTopoloji

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

Oracle 12c InstallationOracle 12c Installation

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com16 Ocak 2014

TROUG Ankara Bulusmasi

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

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;

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';

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

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

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

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 * oracle@192.168.4.61:/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

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

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" …………………..

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';……………………..

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

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

ozgurumutvurgun@gmail.comozgurumutvurgun@gmail.com

www.ozgurumutvurgun.comwww.ozgurumutvurgun.com

www.turkceoracle.com