Anuj Mohan
Oracle ACE , Founder Oracle 12c SIG (IOUG)
Technical Account Manager , Data Intensity LLC
Oracle Certified Exadata Implementer
Oracle Certified RAC Expert
Oracle 11g/12c Certified Professional (OCP)
@anujmo
DBA 101: Multitenant for beginners
Broad Portfolio of Solutions and Service Models –
Customized to Your Needs and Your Environment
Databases Applications BI & Analytics
End-to-end solutions
Oracle DB Oracle E-Business Suite Oracle BI
with best-of-breed Engineered Systems Oracle Cloud Applications Tableau
technology, both SQL Server Oracle EPM Suite Informatica
Oracle and non-Oracle, Sybase Oracle Fusion Middleware Microsoft BI
at the core MySQL Oracle Procurement
Postgres Extensions to Oracle
DB2 Procurement
Custom-packaged Apps
Professional Services and Assessments
Quick Start Programs
Consulting
DELIVERY MODELS
Implementation/Upgrades
• Strategy
• Functional
Dedicated Solution and Technology Specialists
• Technical
Managed Services Remote Managed Services
• Technical Private & Public Cloud Managed Services
• Functional
Dedicated Solution and Technology Specialists
Customer Landscape
Delivery and Service Capabilities That Span The Globe
Poland
Customer Solutions Center
London, UK
Regional Office and Support Rostov-on-Don, Russia
Center Customer Solutions Center
Boston, MA
Data Center
Salt Lake City, UT
Data Center
Bedford, MA
Global Headquarters
Hyderabad, India Chennai, India
Customer Solutions Center Regional Office and Support Center
Covington, KY
Regional Office and Atlanta, GA
Operations Center Regional Office and Support
Center
Bengaluru, India
Customer Solutions
Center
Australia
Regional Office and Support Center
500+ Technical Experts
Helping Peers Globally
3 Membership Tiers Connect:
• Oracle ACE Director
[email protected]• Oracle ACE
• Oracle ACE Associate Facebook.com/oracleaces
@oracleace
Nominate yourself or someone you know: acenomination.oracle.com
http://www.oracle.com/technetwork/community/oracle-ace/index.html
AGENDA
• Oracle’s Previous Releases
• CDB/PDB Introduction and Concepts
• Shared / Exclusive components
• Accessing CDB's/PDB's
• Backup and Recovery
• Quick overview: migration options to 18c from previous versions.
• PDB - Explanation of Value (EOV)
04/10/2019 Anuj Mohan Data Intensity LLC 6
• 1982: RSI became Oracle Corporation
• 1983: version 3, supported COMMIT and ROLLBACK functionality for
transactions. extended platform support to include Unix
environments
• 1984: version 4, which supported read-consistency
• 1985: version 5, which supported the client–server
• 1986: Oracle version 5.1 started supporting distributed queries
• 1988: version 6 supported PL/SQL embedded within Oracle Forms v3
(version 6 could not store PL/SQL in the database proper), row-level
locking and hot backups
04/10/2019 Anuj Mohan Data Intensity LLC 7
1992: Oracle version 7 1997: Oracle version 8
• Referential integrity • Object-oriented
• Stored procedures • Multimedia applications
• Triggers.
1999: Oracle8i
2001: Oracle9i
• Internet
• 400+ New features
• Java virtual machine
• Oracle RAC replace OPS
04/10/2019 Anuj Mohan Data Intensity LLC 8
2003: Oracle Database 10g 2007: Oracle Database 11g
• Automatic Storage Management • Database Replay
• Oracle Data Pump • SQL Performance Analyzer
• Virtual Private Database • Active Data Guard
• Automatic Shared Memory • Snapshot Standby
Management • Flashback Data Archives
• ADDM and SQL Tuning Advisor • Edition-Based Redefinition
• Automatic Workload Repository • RAC One Node, and Clusterware
• Automatic Segment Management • Grid Ifrastructure (R2)
• Flashback Table • Data Recovery Advisor
• Few years later EXADATA
04/10/2019 Anuj Mohan Data Intensity LLC 9
2013: Oracle 12c
• Container / Pluggable databases
• Online Datafile and Partition Movement
• Policy-Based Automatic Redaction
• Flex ASM
• SQL Plan Management enhancements
• Information Lifecycle Management (ILM)
• Automatic Data Optimization (ADO)
04/10/2019 Anuj Mohan Data Intensity LLC 10
AGENDA
• Oracle’s Previous Releases
• CDB/PDB Introduction and Concepts
• Shared / Exclusive components
• Accessing CDB's/PDB's
• Backup and Recovery
• Quick overview: migration options to 18c from previous versions.
• PDB - Explanation of Value (EOV)
04/10/2019 Anuj Mohan Data Intensity LLC 11
04/10/2019 Anuj Mohan Data Intensity LLC 12
Understanding in simple words
• CDB is a normal database with additional capability of storing one or more non CDB
• These non CDB's within CDB are called PDB
• PDB's can be plugged and unplugged easily from one container to another container.
In previous example we have two PDBs hrpdb and salespdb
• ***CDB Container database
• ***PDB pluggable database
04/10/2019 Anuj Mohan Data Intensity LLC 13
PDB3
SGA and PGA
BG Processes
and
PDB1
PDB2
Container Instance Pluggable
Database Databases
04/10/2019 Anuj Mohan Data Intensity LLC 14
Option for creating Container Database
04/10/2019 Anuj Mohan Data Intensity LLC 15
PDB using DBCA
04/10/2019 Anuj Mohan Data Intensity LLC 16
PDB using DBCA
04/10/2019 Anuj Mohan Data Intensity LLC 17
Ways to deploy a PDB
• From an existing remote PDB
• From PDB$SEED
• From an existing local PDB
• Unplug from a CDB and plug into another CDB
04/10/2019 Anuj Mohan Data Intensity LLC 18
Ways to deploy a PDB
• Cloning a remote PDB (Clone anuj@CDB1 as mohan@CDB2)
• Connect to CDB1 and place Anuj in read only mode
• Connect to CDB2 as sys and run clone command
(if using a common user you need to grant "create pluggable database" container=all)
▪ create pluggable database mohan from anuj@CDB2_dbl** admin user sys identified by sys_pwd
file_name_convert = (‘/u01/pdbs/anuj’,’/u01/pdbs/mohan’);
▪ alter pluggable database Mohan open;
* Endian format,character set, etc must be compatible between CDBs
** CDB2_dbl is database link used for communication between CDB1 and
CDB2
04/10/2019 Anuj Mohan Data Intensity LLC 19
Ways to deploy a PDB
• Creating an PDB (Anuj) from PDB$SEED
• Set db_file_name_convert
SQL> alter system set PDB_FILE_NAME_CONVERT ='/u01/datafiles/pdbseed/','/u01/datafiles/Anuj/'
scope=both;
• Run create pdb command
SQL> CREATE PLUGGABLE DATABASE Anuj ADMIN USER PDB_Anj IDENTIFIED BY PDB_Anj default tablespace users
datafile ‘/u01/datafiles/Anuj/users_01.dbf’ size
1000M;ROLES=(DBA);
Pluggable database created.
• Open PDB in read write mode
SQL> alter pluggable database Anuj open;
04/10/2019 Anuj Mohan Data Intensity LLC 20
Ways to deploy a PDB
Cloning a PDB (Clone Anuj as Mohan)
Connect to CDB root as sys
Open Anuj in read-only mode and run create pdb
▪ alter pluggable database Anuj close;
▪ alter pluggable database Anuj open read only;
▪ create pluggable database Mohan from Anuj admin user sys identified by
sys_pwd file_name_convert = (‘/u01/pdbs/anuj’,’/u01/pdbs/mohan’);
Open the database
▪ alter pluggable database mohan open;
04/10/2019 Anuj Mohan Data Intensity LLC 21
Ways to deploy a PDB
Unplug and plug
Connect to source(CDB1) as sys
Shut down Anuj
▪ alter pluggable database Anuj close;
▪ alter pluggable database Anuj unplug into ‘/u01/datafiles/Anuj/Anuj.xml’;
• If you do not want to keep this PDB anymore on Current CDB you can drop it
but make a copy of data files before drop.
▪ drop pluggable database Anuj
04/10/2019 Anuj Mohan Data Intensity LLC 22
Ways to deploy a PDB
Unplug and plug continue…
Connect to Destination(CDB2) as sys
▪ select dbms_pdb.check_plug_compatibility( pdb_descr_file=>’/u01/datafiles/Anuj/Anuj.xml’,
store_report=>true) from dual;
Check for errors in pdb_plug_in_violations table
move PDB files and use nocopy
▪ create pluggable database Anuj using ‘/u01/datafiles/Anuj/Anuj.xml’ nocopy;
** Similar to transportable databases
** XML file has PDB metadata
04/10/2019 Anuj Mohan Data Intensity LLC 23
AGENDA
• Oracle’s Previous Releases
• CDB/PDB Introduction and Concepts
• Shared / Exclusive components
• Accessing CDB's/PDB's
• Backup and Recovery
• Quick overview: migration options to 18c from previous versions.
• PDB - Explanation of Value (EOV)
04/10/2019 Anuj Mohan Data Intensity LLC 24
Common Component in Container Databases (CDB’s)
• Background processes –
• Memory areas – buffer cache, log buffer, etc.
• Datafiles (Undo / Redo
• Undo tablespace
• Single ADR location
• PDB’s may have their own datafiles
04/10/2019 Anuj Mohan Data Intensity LLC 25
Common vs. Local Concept
• Common VS Local Concept
o Can be defined on CDB or PDB Level
• Users →Defined on root or local PDB
• Roles →Defined on root or local PDB
• Privileges →Defined on root or local PDB
• Objects →Defined on root or local PDB
04/10/2019 Anuj Mohan Data Intensity LLC 26
Common and Local Privileges
• A common privilege is privilege granted across all containers
• A privilege granted to a single PDB is a local privilege
• Local users can only utilize privileges locally in the current PDB
• Common users can only utilize privileges locally in the current PDB
• Common users connected to the root container can utilize privileges across
container, such as creating a common user
04/10/2019 Anuj Mohan Data Intensity LLC 27
Common and Local Roles
• local user can only create local roles. Local roles can be granted to local or
common users. Local roles can be granted to common roles.
• common user can create common roles and/or local roles. Common roles can
be granted to local or common users. Common roles can be granted to local
roles
▪ SQL> create role c##_bill_master CONTAINER=ALL;
▪ SQL> create role bill_local CONTAINER=CURRENT;
04/10/2019 Anuj Mohan Data Intensity LLC 28
Grant and Revoke Privileges and Roles
• Grant common privilege by common user
▪ SQL> grant prv1 to c##_cm_user CONTAINER=ALL;
• Grant local privilege by common user
▪ SQL> grant prv2 to pdb01_user CONTAINER=CURRENT;
• Grant a local privilege by a local user
▪ SQL> grant prv2 to pdb01_user;
• Revoke common privilege by common user
▪ SQL> revoke prv1 from c##_ cm_user CONTAINER=ALL;
04/10/2019 Anuj Mohan Data Intensity LLC 29
Create Common User
• Connect to CDB and Create Common User
SQL> show con_id
CON_ID
-----------
1
SQL> show con_name
CON_NAME
----------------
CDB$ROOT
SQL> create user C##_main identified by qweasdzxc
container=ALL;
User created.
04/10/2019 Anuj Mohan Data Intensity LLC 30
Grant some role and privilege to common user
SQL> grant dba to C##_main container=ALL;
Grant succeeded.
SQL> grant select any table to C##_main container=ALL;
Grant succeeded.
select grantee, granted_role from dba_role_privs where grantee ='C##_MAIN';
GRANTEE GRANTED_ROLE
--------------------------------------------- ----------------------------------
C##_main DBA
C##_main DBA
select grantee, privilege from dba_sys_privs where grantee ='C##_MAIN';
GRANTEE PRIVILEGE
--------------------------------------------- ----------------------------------
C##_main UNLIMITED TABLESPACE
C##_main SELECT ANY TABLE
C##_main UNLIMITED TABLESPACE
C##_main SELECT ANY TABLE
04/10/2019 Anuj Mohan Data Intensity LLC 31
Common User Information
• Connect to PDB using just created common user
SQL> show con_name
CON_NAME
------------------------------
ANUJPDB
SQL> show con_id
CON_ID
------------------------------
3
SQL> select grantee, granted_role from dba_role_privs where grantee ='C##_MAIN';
GRANTEE GRANTED_ROLE
--------------------------------------------- ----------------------------------
C##_main DBA
SQL> select grantee, privilege from dba_sys_privs where grantee ='C##_MAIN';
GRANTEE PRIVILEGE
--------------------------------------------- ----------------------------------
C##_main UNLIMITED TABLESPACE
C##_main SELECT ANY TABLE
04/10/2019 Anuj Mohan Data Intensity LLC 32
While connected to PDB try to create common user
create user C##_main1 identified by qweasdzxc container=ALL;
create user C##_main1 identified by qweasdzxc container=ALL
*
ERROR at line 1:
ORA-65050: Common DDLs only allowed in CDB$ROOT
create user C##_main1 identified by qweasdzxc
*
ERROR at line 1:
ORA-65094: invalid local user or role name
SQL> create user main1 identified by qweasdzxc; /* User local to PDB */
User created.
SQL> grant dba to main1;
Grant succeeded.
SQL> grant create any table to main1;
Grant succeeded.
04/10/2019 Anuj Mohan Data Intensity LLC 33
Check roles/privileges you just granted
SQL> select grantee, privilege from dba_sys_privs where grantee =‘MAIN1';
GRANTEE PRIVILEGE
--------------------------------------------- ----------------------------------
main1 CREATE ANY TABLE
main1 UNLIMITED TABLESPACE
SQL> select grantee, granted_role from dba_role_privs where grantee =‘MAIN1';
GRANTEE GRANTED_ROLE
--------------------------------------------- ----------------------------------
main1 DBA
04/10/2019 Anuj Mohan Data Intensity LLC 34
Connect to CDB and check privileges of local user we just granted
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> select grantee, privilege from dba_sys_privs where grantee =‘MAIN1';
no rows selected
SQL> select grantee, granted_role from dba_role_privs where grantee =MAIN1';
no rows selected
04/10/2019 Anuj Mohan Data Intensity LLC 35
Connect PDB again and review
SQL> select grantee, granted_role from cdb_role_privs where grantee =‘MAIN1';
GRANTEE GRANTED_ROLE
--------------------------------------------------------------------------------
main1 DBA
SQL> select grantee, privilege from cdb_sys_privs where grantee =‘MAIN1';
GRANTEE PRIVILEGE
----------------------------------------
main1 CREATE ANY TABLE
main1 UNLIMITED TABLESPACE
04/10/2019 Anuj Mohan Data Intensity LLC 36
• USER_%% Show list of all the Objects owned by the current user in a PDB
• ALL_%% Show list of all the Objects accessible by the current user in a PDB
• DBA_%% Show list of all the Objects in the root or a pluggable database
• CDB_%% Show list of all the Objects in the container database. CDB_%% use
new column CON_ID
04/10/2019 Anuj Mohan Data Intensity LLC 37
Creating Objects
• Local object can be created by common and local users
• Common objects can NOT be created by user defined “common users”. To
create Common objects you need to use by Oracle supplied common user
(sys/system)
04/10/2019 Anuj Mohan Data Intensity LLC 38
DBA_USERS
• Name Null? Type
-------------------------------- -------- ----------------------------
USERNAME NOT NULL VARCHAR2(128)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(4000)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(128)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(128)
EXTERNAL_NAME VARCHAR2(4000)
PASSWORD_VERSIONS VARCHAR2(12)
EDITIONS_ENABLED VARCHAR2(1)
AUTHENTICATION_TYPE VARCHAR2(8)
PROXY_ONLY_CONNECT VARCHAR2(1)
COMMON VARCHAR2(3)
LAST_LOGIN TIMESTAMP(9) WITH TIME ZONE
04/10/2019 Anuj Mohan Data Intensity LLC 39
CDB_USERS
o Name Null? Type
------------------------------ -------- ----------------------------
USERNAME NOT NULL VARCHAR2(128)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(4000)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(128)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(128)
EXTERNAL_NAME VARCHAR2(4000)
PASSWORD_VERSIONS VARCHAR2(12)
EDITIONS_ENABLED VARCHAR2(1)
AUTHENTICATION_TYPE VARCHAR2(8)
PROXY_ONLY_CONNECT VARCHAR2(1)
COMMON VARCHAR2(3)
LAST_LOGIN TIMESTAMP(9) WITH TIME ZONE
CON_ID NUMBER
04/10/2019 Anuj Mohan Data Intensity LLC 40
AGENDA
• Oracle’s Previous Releases
• CDB/PDB Introduction and Concepts
• Shared / Exclusive components
• Accessing CDB's/PDB's
• Backup and Recovery
• Quick overview: migration options to 18c from previous versions.
• PDB - Explanation of Value (EOV)
04/10/2019 Anuj Mohan Data Intensity LLC 41
Tools to manage CDBs and PDBs
Your favorite SQL *Plus
12c EM gives dropdown option to select PDB
Sql developer
Any third party software you prefer
▪ Toad
▪ Dbartisan
04/10/2019 Anuj Mohan Data Intensity LLC 42
Connecting CDB and PDB
• [oracle@test121 ~]$ export ORACLE_SID=AnujC
[oracle@test121 ~]$ sqlplus / as sysdba
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
ANUJC READ WRITE
SQL> show con_id
CON_ID
------------------------------
1
SQL> show user
USER is "SYS"
04/10/2019 Anuj Mohan Data Intensity LLC 43
Connecting CDB and PDB continued…
• select pdb_id,pdb_name from cdb_pdbs;
PDB_ID PDB_NAME
---------- ---------------------------------------------
2 PDB$SEED
3 ANUJPDB
4 ANUJP02
There are many ways you can access PDBs
• Using tns
sqlplus C##_MAIN/qweasdzxc@ANUJPDB /* Tnsnames.ora */
SQL> select NAME, OPEN_MODE, CON_ID from V$PDBS;
NAME OPEN_MODE CON_ID
------------------------------ ---------- ----------
ANUJP DB READ WRITE 3
• 04/10/2019 Anuj Mohan Data Intensity LLC 44
Connecting CDB and PDB continued…
• Connect using service name
• Sqlplus C##_MAIN/qweasdzxc@anuj-w530:1521/ANUJPDB /* Service Name */
• Connect using Local/TWO_TASK
• set LOCAL=ANUJPDB /* on windows */
• set TWO_TASK=ANUJPDB /* on unix */
• sqlplus C##_MAIN/qweasdzxc
• How to check which PDB you are connected
• Show CON_ID
• Show CON_NAME
• Using SYS_CONTEXT
select sys_context('userenv','CON_ID') from dual;
04/10/2019 Anuj Mohan Data Intensity LLC 45
CDB Startup stages
• CDB Startup stages
❖ Shutdown
• Instance and database both down
❖ Nomount
• Instance is started. V$ views are accessible
❖ Mount
• CDB control file is opened
• Root is mounted
• PDBs are also in mount stage
❖ Open
• CDB is open for read /write
• PDBs will be still in mount stage by default
04/10/2019 Anuj Mohan Data Intensity LLC 46
PDBs Startup
PDBs Startup
▪ When you open your CDB , that will bring your PDBs to mount stage. At this stage you
can use below options to open your PDBs
• Connect to CDB
• Alter pluggable database pdb_name open;
• Alter pluggable database all open ; /* open all PDBs */
• Select name,open_mode from v$pdbs;
04/10/2019 Anuj Mohan Data Intensity LLC 47
Shutting CDBs and PDBs
• Shutting CDBs and PDBs
▪ To shutdown CDBs you use “shutdown *****” commands
• Shutdown immediate
• Shutdown transactional
• Shutdown abort
▪ Their possible states are MOUNT/OPEN/CLOSE
04/10/2019 Anuj Mohan Data Intensity LLC 48
Closing PDBs
• Closing PDBs
▪ Connect to CDB
• Alter pluggable database all except pdb_name close/open;
• Alter pluggable database pdb_name close immediate;
▪ Connect to PDB
• Username/password@PDB as sysdba
• Shutdown immediate
• OR
• Alter pluggable database close
▪ Connect to CDB and check
• Select name,open_mode from v$pdbs;
04/10/2019 Anuj Mohan Data Intensity LLC 49
Open restrict
• You can Open your PDBs in restricted /read only and read write based on
your requirement
▪ Alter pluggable database open restricted
▪ Alter pluggable database open read only
▪ Alter pluggable database open
04/10/2019 Anuj Mohan Data Intensity LLC 50
AGENDA
• Oracle’s Previous Releases
• CDB/PDB Introduction and Concepts
• Shared / Exclusive components
• Accessing CDB's/PDB's
• Backup and Recovery
• Quick overview: migration options to 18c from previous versions.
• PDB - Explanation of Value (EOV)
04/10/2019 Anuj Mohan Data Intensity LLC 51
Backups
• RMAN Backup Levels
▪ CDB Level backup: All CDB datafiles, PDBs datafiles and controlfile and spfile if control
file autobackup is defined
▪ PDB backup: All PDBs datafiles and controlfile and spfile if control file autobackup is
defined
▪ Tablespace level backup, so you can backup individual tablespace of any pdb
▪ Datafile level backups
04/10/2019 Anuj Mohan Data Intensity LLC 52
Backup…
• You can connect to CDB/PDB to perform backup
• sysdba or sysbackup privilege required to run backup
• RMAN> BACKUP DATABASE;
• BACKUP PLUGGABLE DATABASE pdb1prd, pdb2prd;
• BACKUP TABLESPACE pdb1prd :tbs2;
• BACKUP PLUGGABLE DATABASE "CDB$ROOT";
04/10/2019 Anuj Mohan Data Intensity LLC 53
Recovery options
Media recovery : File loss or damage
▪ CDB level –Entire CDB
▪ PDB level – Entire PDB
▪ Tablespace level: same as for non-CDB.Any tablespace of CDB or PDB
▪ Datafile level recovery option
▪ Data block level recovery
▪ TSPITR for root tablespaces ONLY except SYSTEM, UNDO, SYSAUX
▪ Flashback database
• CDB level
• PDB level
▪ Block recovery: Same as Oracle 11g
*** Instance recovery is not possible on PDB level
04/10/2019 Anuj Mohan Data Intensity LLC 54
Recovery Commands
Loss of system datafile from PDB
• In order to recover from loss of PDB’s system datafile we need to take CDB on mount stage(No
CDB/PDB available to users)
• RMAN> startup mount; (cdb mounted)
• RMAN> restore tablespace pdb1prd :system;
• RMAN> recover tablespace pdb1prd :system;
• RMAN> alter database open; (cdb open)
• RMAN> alter pluggable database all open;
04/10/2019 Anuj Mohan Data Intensity LLC 55
Recovery Commands
Loss of non system datafile of PDB or CDB
• We do not need to take PDB/CDB offline (CDB/PDB available to users except offline tablespace)
• SQL> connect system/12cmanager@ pdb1prd
• SQL> alter tablespace tbs01 offline immediate;
• RMAN> restore tablespace pdb1prd :tbs01;
• RMAN> recover tablespace pdb1prd : tbs01;
• SQL> alter tablespace tbs01 online
04/10/2019 Anuj Mohan Data Intensity LLC 56
Enable Flashback
• Database must be in archivelog mode
• Set Init Parameters
• db_recovery_file_dest_size=xxgb
• db_recovery_file_dest=recovery file location
• Enable on sqlplus
• sql> alter system set db_flashback_retention_target=1440 scope=both;
• sql> alter database flashback on;
04/10/2019 Anuj Mohan Data Intensity LLC 57
Flashback database
• Create Restore points
• sql> create restore point before_upgrade;
• sql>create restore point before_upgrade guarantee flashback database;
• Find out SCN you want to flashback or restore points
• sql> select name, scn, time, database_incarnation#, guarantee_flashback_database,storage_size from
v$restore_point;
OR
• rman> list restore point all;
04/10/2019 Anuj Mohan Data Intensity LLC 58
Flashback database
o sql>startup mount
o flashback database to scn 1809;
OR
o Rman> flashback database to restore point 'before_upgrade';
o rman> alter database open read only;
o Validate recovered information
o rman> shutdown immediate
o rman> startup mount
o flashback database to scn 1809;
OR
o flashback database to restore point 'before_upgrade';
o rman> alter database open resetlogs;
o rman> alter pluggable database all open;
04/10/2019 Anuj Mohan Data Intensity LLC 59
AGENDA
• Oracle’s Previous Releases
• CDB/PDB Introduction and Concepts
• Shared / Exclusive components
• Accessing CDB's/PDB's
• Backup and Recovery
• Quick overview: migration options to 18c from previous versions.
• PDB - Explanation of Value (EOV)
04/10/2019 Anuj Mohan Data Intensity LLC 60
Migration to 18c : Methods
• Expdp / Impdp
• Use of some sort of replication tool
o E.g. GoldenGate , transient logical standby
• Upgrade a pre-18c database to 18c (non cdb)
o Plug-in the non-CDB into a CDB
04/10/2019 Anuj Mohan Data Intensity LLC 61
Migration to 18c : Features
• Helpful features :
oparallel processing to regular upgrades
oManual / dbua generates automatic fixups before upgrade
odbua can use existing rman backups for fall back strategy
oyou can create restore points and do a flashback database
odatapump full transportable (combination of datapump and
transportable tablespace)
04/10/2019 Anuj Mohan Data Intensity LLC 62
Upgrade paths
Source /Lower Version Intermediate Version Final Version
12.2.0.1, None Required 18c
12.1.0.1, 12.1.0.2 None Required 18c
11.2.0.3, 11.2.0.4 None Required 18c
11.2.0.2 or 11.1.0.7 11g release 2 18c
10.2.0.2, 10.2.0.3, 10.2.0.4,10.2.0.5 11.2. or 12.1
or 10.1.0.5 18c
9.2.0.8 11.2.0.3 or 11.2.0.4. 18c
04/10/2019 Anuj Mohan Data Intensity LLC 63
12.2
Multitenant Features :SGA PGA & I/O for PDBs
DB_CACHE_SIZE Sets the minimum, guaranteed buffer cache space for the PDB with
DB_CACHE_SIZE defined on CDB level
SGA_TARGET Sets the maximum SGA size for the PDB with SGA_TARGET in the CDB root
SGA_MIN_SIZE Sets the minimum SGA size for the PDB.
PGA_AGGREGATE_LIMIT Sets the maximum PGA size for the PDB.
PGA_AGGREGATE_TARGET Sets the target aggregate PGA size for the PDB.
Multitenant Features :SGA PGA & I/O for PDBs
MAX_IOPS - number of I/O operations for each second
MAX_MBPS - megabytes I/O operations for each second.
This is not in
Set at PDB Level - Scope will be individual PDB Exadata
Set at CDB Level - Scope will be all PDB’s in container
If it is defined at PDB Level then it takes precedence over the settings in the CDB root
Multitenant Features: Lockdown Profiles
12.2
PDB Lockdown Profiles are new method of restricting/allowing certain access within a role or profile.
You need CREATE LOCKDOWN PROFILE system privilege
CREATE LOCKDOWN PROFILE hr_prof;
alter LOCKDOWN PROFILE hr_prof ENABLE STATEMENT = ('alter SYSTEM') clause = ('flush shared_pool');
alter LOCKDOWN PROFILE hr_prof DISABLE STATEMENT = ('alter SYSTEM');
alter LOCKDOWN PROFILE hr_prof DISABLE FEATURE = ('XDB_PROTOCOLS');
Grant hr_prof to PDB users Disabled alter system but allowed flush
More Reading
AGENDA
• Oracle’s Previous Releases
• CDB/PDB Introduction and Concepts
• Shared / Exclusive components
• Accessing CDB's/PDB's
• Backup and Recovery
• Quick overview: migration options to 18c from previous versions.
• PDB - Explanation of Value (EOV)
04/10/2019 Anuj Mohan Data Intensity LLC 67
Source: Oracle Corporation
04/10/2019 Anuj Mohan Data Intensity LLC 68
Source: Oracle Corporation
04/10/2019 Anuj Mohan Data Intensity LLC 69
Summary and Conclusions
• There is no application change required for using PDBs
• Cloning is very easy . Perfect for creating test/development system quickly
• If file system supports copy-on-change then clones can be done in sub seconds
• PDBs need to be opened explicitly
• One physical database with multiple PDBs - Less DBA Effort to manage
• One set of memory / processes - Less usage means you can deploy more applications per
physical server
• Adding more PDB only requires space
• Upgrade to CDB and plug in PDBs - PDBs are upgraded
• Cloning to remote servers
• Enhanced Resource manager
• No change required in Scripts and applications
• More than One PDB inside a CDB is Extra cost
04/10/2019 Anuj Mohan Data Intensity LLC 70
Explore Oracle Database 18c Learning Resources
Oracle Database 18c Learning Library:
https://docs.oracle.com/en/database/oracle/oracledatabase/18/index.html
Thank you …
• Twitter → @Anujmo
• Blog → http://www.oracle-12c.com/
• LinkedIn Page for SIG → www.linkedin.com/groups?gid=4847720
• If you have further questions or need database assistance, Send me email
[email protected] 04/10/2019 Anuj Mohan Data Intensity LLC 72