Download presentation
Presentation is loading. Please wait.
Published bySabina O’Neal’ Modified over 8 years ago
1
5 th October, 2015 Anuj Mohan Database enthusiast, Public speaker and founder of Oracle12cSIG(IOUG) Technical Account Manager Data Intensity LLC Oracle certified Exadata Implementer Oracle Certified RAC Expert Oracle 11g Certified Professional (OCP) Oracle 12c Certified Professional (OCP) 10/05/2015 Anuj Mohan NKU-2015 Oracle Database 12c Key feature sets
2
# Application Management - Cloud # Application Management - Remote # Database Management - Cloud # Database Management - Remote # Consulting and Professional Services
3
A World Class Customer List
4
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 4 10/05/2015 Anuj Mohan Data Intensity NKU-2015
5
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 5 10/05/2015 Anuj Mohan Data Intensity NKU-2015
6
6 1999: Oracle8i Internet Java virtual machine 1992: Oracle version 7 Referential integrity Stored procedures Triggers. 2001: Oracle9i 400+ New features Oracle RAC replace OPS 1997: Oracle version 8 Object-oriented Multimedia applications 10/05/2015 Anuj Mohan Data Intensity NKU-2015
7
2003: Oracle Database 10g Automatic Storage Management Oracle Data Pump Virtual Private Database Automatic Shared Memory Management ADDM and SQL Tuning Advisor Automatic Workload Repository Automatic Segment Management Flashback Table 2007: Oracle Database 11g Database Replay SQL Performance Analyzer Active Data Guard Snapshot Standby Flashback Data Archives Edition-Based Redefinition RAC One Node, and Clusterware Grid Ifrastructure (R2) Data Recovery Advisor Few years later EXADATA 7 10/05/2015 Anuj Mohan Data Intensity NKU-2015
8
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) 8 10/05/2015 Anuj Mohan Data Intensity NKU-2015
9
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 9 10/05/2015 Anuj Mohan Data Intensity NKU-2015
10
Some New RMAN Enhancements SQL statements can be run in RMAN without the ‘SQL’ prefix SYSBACKUP Administration Role – You do not need to use SYSDBA role anymore You can restore and recover a single table. See how in next slide. 10 10/05/2015 Anuj Mohan Data Intensity NKU-2015
11
Restore and Recover a Single Table A Great Oracle 12c Feature, You can use this If : You want to restore one or few tables out of many tables of tablespace logical corruption or records wrongly purged Not enough undo data available to FLASHBACK TABLE or FLASHBACK TABLE not implemented Some of the requirements Initialization parameter compatible is set to 12.0 or higher Database is running in archive log mode Control file auto backup is enabled before level 0 backup Retention Policy is set Table should not be residing in system table space Level 0 backup and all desired backups are available 11 10/05/2015 Anuj Mohan Data Intensity NKU-2015
12
Prior to Oracle 12c this was done as follows (obviously a tedious process) Identify data files holding lost /corrupted tables Identify free space for system/sysaux and datafiles of step 1 TSPITR Export table data Import in database 12 10/05/2015 Anuj Mohan Data Intensity NKU-2015
13
Few Examples Recover table Anuj.UserData until scn 23324435436 auxiliary destination ‘/u01/temp_restore ' ; RECOVER TABLE Anuj.UserData UNTIL TIME 'SYSDATE-3' AUXILIARY DESTINATION ‘/u01/temp_restore ' DATAPUMP DESTINATION ‘/U01/DP_loc’ DUMP FILE ‘UserData_dump.dat' REMAP TABLE 'Anuj'. ' UserData':‘UserDataORIG'; --NOTABLEIMPORT; Reference: http://oracle-12c.com/docs/Oracle%2012c%20-Table%20Recovery%20from%20RMAN%20Backups.pdf http://oracle-12c.com/docs/Oracle%2012c%20-Table%20Recovery%20from%20RMAN%20Backups.pdf 13 10/05/2015 Anuj Mohan Data Intensity NKU-2015
14
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 14 10/05/2015 Anuj Mohan Data Intensity NKU-2015
15
Invisible Column The new 12c feature allows you to hide columns If you select ALL columns from a table the invisible columns will NOT be displayed. If you selects column specifically then the column WILL be displayed in the output You can set column(s) to be visible/invisible with an alter table : SQL> ALTER TABLE CUSTOMER MODIFY (CUST_AGE INVISIBLE); Table altered. 15 10/05/2015 Anuj Mohan Data Intensity NKU-2015
16
Invisible Column Demonstration SQL> create table customer (cust_id number,cust_name varchar2(80),cust_age number); Table created. SQL> alter table customer modify (cust_age invisible); Table altered. SQL> insert into customer values (1,'Anuj',39); insert into customer values (1,'Anuj',39) * ERROR at line 1: ORA-00913: too many values SQL> alter table customer modify (cust_age visible); Table altered. 16 10/05/2015 Anuj Mohan Data Intensity NKU-2015
17
Invisible Column Demonstration Cont.. SQL> insert into customer values (1,'Anuj',39); 1 row created. SQL> alter table customer modify (cust_age invisible); Table altered. SQL> select * from customer; CUST_ID CUST_NAME ----------------------- 1 Anuj SQL> select cust_name,cust_age from customer; CUST_NAME CUST_AGE ---------- Anuj 39 17 10/05/2015 Anuj Mohan Data Intensity NKU-2015
18
Invisible Column Demonstration Cont.. SQL> alter table customer modify (cust_age visible); Table altered. SQL> select * from customer; CUST_ID CUST_NAME CUST_AGE ---------- 1 Anuj 39 18 10/05/2015 Anuj Mohan Data Intensity NKU-2015
19
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 19 10/05/2015 Anuj Mohan Data Intensity NKU-2015
20
Oracle 12c ILM : Using In-Database Row Archiving Enable row archival for table It will create a hidden column ora_archive_state in table with default value of 0 Update ora_archive_state to non zero value to archive row in the table Set row archival visibility = active/all on session level to show or hide rows SQL> select ORA_ARCHIVE_STATE,PRODUCT_ID,ENTRY_DATE from product; ORA_ARCHIV PRODUCT_ID ENTRY_DAT ---------- ---------- ------------------- ---------- --------- 0 3 01-JAN-83 0 4 01-JAN-84 0 4 01-JAN-85 0 7 01-JAN-92 0 8 01-JAN-97 0 8.1 01-JAN-99 0 9 01-JAN-01 7 rows selected. 20 10/05/2015 Anuj Mohan Data Intensity NKU-2015
21
In-Database Row Archiving Example… Enable row archiving for table alter table product row archival; Update criteria for archival SQL> update product 2 set ora_archive_state=dbms_ilm.archivestatename(1) 3 where ENTRY_DATE< sysdate -7300 --20years; 4 rows updated. SQL> select ORA_ARCHIVE_STATE,PRODUCT_ID,ENTRY_DATE from product; ORA_ARCHIV PRODUCT_ID ENTRY_DAT ---------- ---------- --------- 0 8 01-JAN-97 0 8.1 01-JAN-99 0 9 01-JAN-01 21 10/05/2015 Anuj Mohan Data Intensity NKU-2015
22
In-Database Row Archiving Example… Set visibility to all SQL> alter session set row archival visibility = all; Session altered. SQL> select ORA_ARCHIVE_STATE,PRODUCT_ID,ENTRY_DATE from product; ORA_ARCHIV PRODUCT_ID ENTRY_DAT ---------- ---------- --------- 1 3 01-JAN-83 1 4 01-JAN-84 1 4 01-JAN-85 1 7 01-JAN-92 0 8 01-JAN-97 0 8.1 01-JAN-99 0 9 01-JAN-01 7 rows selected. 22 10/05/2015 Anuj Mohan Data Intensity NKU-2015
23
In-Database Row Archiving Example… Set visibility to active SQL> alter session set row archival visibility =active; Session altered. SQL> select ORA_ARCHIVE_STATE,PRODUCT_ID,ENTRY_DATE from product; ORA_ARCHIV PRODUCT_ID ENTRY_DAT ---------- ---------- --------- 0 8 01-JAN-97 0 8.1 01-JAN-99 0 9 01-JAN-01 23 10/05/2015 Anuj Mohan Data Intensity NKU-2015
24
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 24 10/05/2015 Anuj Mohan Data Intensity NKU-2015
25
ADO and Heat Map Automatic Data Optimization (ADO) and Heat Map works together allows us to create policies at the tablespace, object and even row level you can plan when data will be moved or compressed based on statistics related to the data usage. Data access statistics are collected in memory in the V$HEAT_MAP_SEGMENT view DBMS_SCHEDULER_JOBS transfer then to dba views like DBA_HEAT_MAP_SEG_HISTOGRAM and DBA_HEAT_MAP_SEGMENT. 25 10/05/2015 Anuj Mohan Data Intensity NKU-2015
26
Steps for implementing ADO and Heat Maps Enable heat map SQL> alter system set heat_map=on scope=both; Set the heat map tracking start time. statistics logged after this time are valid and considered by Automatic Data Optimization (ADO). SQL> exec dbms_ilm_admin.set_heat_map_start(start_date => sysdate ) Add a compression policy on table. SQL> ALTER TABLE Anuj.mytable ILM ADD POLICY ROW STORE SQL> COMPRESS ADVANCED SEGMENT AFTER 90 DAYS OF NO MODIFICATION; Validate if Policy was added check view user_ilmdatamovementpolicies 26 10/05/2015 Anuj Mohan Data Intensity NKU-2015
27
Steps for implementing ADO and Heat Maps Cont… Query user_ilmobjects to check if it shows the object you just set If there was no modification on this table in 90 day it will qualify for compression user_ilmtasks will have a job for this task Usually they run in the maintenance window You can manually execute by using procedure DBMS_ILM.EXECUTE_ILM DECLARE v_executionid number; BEGIN dbms_ilm.execute_ILM (ILM_SCOPE => dbms_ilm.SCOPE_SCHEMA, execution_mode => dbms_ilm.ilm_execution_offline, task_id => v_executionid); END; / Reference: http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm/compression_tiering/compression_tiering.html http://www.oracle.com/technetwork/database/automatic-data-optimization-wp-12c-1896120.pdfhttp://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm/compression_tiering/compression_tiering.html http://www.oracle.com/technetwork/database/automatic-data-optimization-wp-12c-1896120.pdf 27 10/05/2015 Anuj Mohan Data Intensity NKU-2015
28
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 28 10/05/2015 Anuj Mohan Data Intensity NKU-2015
29
Oracle database 12c In-Memory option Traditionally, Oracle stores data in tables in form of rows. This new feature will allow to store data in memory in columnar format. Storing data in columnar format give multiple times performance gain for DSS systems where you tend to retrieve fewer columns with multiple rows and this performance enhancement is further multiplied when you retrieve that data from memory instead of slower disks. 29 10/05/2015 Anuj Mohan Data Intensity NKU-2015
30
Steps for implementing in-memory Define parameter INMEMORY_SIZE in MB/GB in init.ora Change tables attribute to in-memory and validate SQL> alter table anuj.people2 inmemory; Table altered. SQL> select TABLE_NAME, cache,INMEMORY_PRIORITY,INMEMORY from user_tables where table_name like 'PEO%'; TABLE_NAME CACHE INMEMORY_PRIORITY INMEMORY ---------------------------------------- ----- ------------------------- ------------------------- PEOPLE2 N NONE ENABLED 30 10/05/2015 Anuj Mohan Data Intensity NKU-2015
31
Steps for implementing in-memory Cont… Run a sample query to populate table in In-memory column store SQL> select /*+ full(ppl) noparallel (ppl) */ count(*) from anuj.people2 ppl; COUNT(*) ---------- 100000 Run sample query to see In-Memory operation SQL> set autotrace on SQL> select distinct count(last_name) from anuj.people2 where sal between 100000 and 100100; COUNT(LAST_NAME) ---------------- 2 31 10/05/2015 Anuj Mohan Data Intensity NKU-2015
32
Steps for implementing in-memory Cont… Execution Plan ---------------------------------------------------------- Plan hash value: 3468796632 --------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 30 | 409 (0)| 00:00:01 | | 1 | SORT AGGREGATE | | 1 | 30 | | | |* 2 | TABLE ACCESS INMEMORY FULL| PEOPLE2 | 2 | 60 | 409 (0)| 00:00:01 | --------------------------------------------------------------------------------------- 32 10/05/2015 Anuj Mohan Data Intensity NKU-2015
33
33 10/05/2015 Anuj Mohan Data Intensity NKU-2015
34
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 34 10/05/2015 Anuj Mohan Data Intensity NKU-2015
35
35 10/05/2015 Anuj Mohan Data Intensity NKU-2015
36
Understanding in simple words CDB is a normal database with additional capability of storing one or more 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 36 10/05/2015 Anuj Mohan Data Intensity NKU-2015
37
37 SGA and PGA SGA and PGA and and BG Processes BG Processes SGA and PGA SGA and PGA and and BG Processes BG Processes Instance Container Database PDB2 PDB3 PDB1 Pluggable Databases 10/05/2015 Anuj Mohan Data Intensity NKU-2015
38
Option for creating Container Database 38 10/05/2015 Anuj Mohan Data Intensity NKU-2015
39
PDB using DBCA 39 10/05/2015 Anuj Mohan Data Intensity NKU-2015
40
PDB using DBCA 40 10/05/2015 Anuj Mohan Data Intensity NKU-2015
41
Ways to get a PDB inside CDB From an existing remote PDB From PDB$SEED From an existing local PDB Unplug from a CDB and plug into another CDB 41 10/05/2015 Anuj Mohan Data Intensity NKU-2015
42
Ways to get a PDB inside CDB 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 42 10/05/2015 Anuj Mohan Data Intensity NKU-2015
43
Ways to get a PDB inside CDB 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; System altered. 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; 43 10/05/2015 Anuj Mohan Data Intensity NKU-2015
44
Ways to get a PDB inside CDB 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; 44 10/05/2015 Anuj Mohan Data Intensity NKU-2015
45
Ways to get a PDB inside CDB 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 45 10/05/2015 Anuj Mohan Data Intensity NKU-2015
46
Ways to get a PDB inside CDB 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 46 10/05/2015 Anuj Mohan Data Intensity NKU-2015
47
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 47 10/05/2015 Anuj Mohan Data Intensity NKU-2015
48
Common Component in Container Databases (CDB’s) Background processes – Memory areas – buffer cache, log buffer, etc. Datafiles (Undo / Redo /system Undo tablespace Single ADR location PDB’s may have their own datafiles 48 10/05/2015 Anuj Mohan Data Intensity NKU-2015
49
Common vs. Local Concept Common VS Local Concept 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 49 10/05/2015 Anuj Mohan Data Intensity NKU-2015
50
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 50 10/05/2015 Anuj Mohan Data Intensity NKU-2015
51
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; 51 10/05/2015 Anuj Mohan Data Intensity NKU-2015
52
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; 52 10/05/2015 Anuj Mohan Data Intensity NKU-2015
53
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. 53 10/05/2015 Anuj Mohan Data Intensity NKU-2015
54
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 54 10/05/2015 Anuj Mohan Data Intensity NKU-2015
55
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 55 10/05/2015 Anuj Mohan Data Intensity NKU-2015
56
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. 56 10/05/2015 Anuj Mohan Data Intensity NKU-2015
57
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 57 10/05/2015 Anuj Mohan Data Intensity NKU-2015
58
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 58 10/05/2015 Anuj Mohan Data Intensity NKU-2015
59
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'; GRANTEEPRIVILEGE ---------------------------------------- main1 CREATE ANY TABLE main1 UNLIMITED TABLESPACE 59 10/05/2015 Anuj Mohan Data Intensity NKU-2015
60
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 60 10/05/2015 Anuj Mohan Data Intensity NKU-2015
61
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) 61 10/05/2015 Anuj Mohan Data Intensity NKU-2015
62
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 62 10/05/2015 Anuj Mohan Data Intensity NKU-2015
63
CDB_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 CON_ID NUMBER 63 10/05/2015 Anuj Mohan Data Intensity NKU-2015
64
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 64 10/05/2015 Anuj Mohan Data Intensity NKU-2015
65
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 65 10/05/2015 Anuj Mohan Data Intensity NKU-2015
66
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" 66 10/05/2015 Anuj Mohan Data Intensity NKU-2015
67
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 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 67 10/05/2015 Anuj Mohan Data Intensity NKU-2015
68
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; 68 10/05/2015 Anuj Mohan Data Intensity NKU-2015
69
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 69 10/05/2015 Anuj Mohan Data Intensity NKU-2015
70
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; 70 10/05/2015 Anuj Mohan Data Intensity NKU-2015
71
Shutting CDBs and PDBs To shutdown CDBs you use “shutdown *****” commands Shutdown immediate Shutdown transactional Shutdown abort Their possible states are MOUNT/OPEN/CLOSE 71 10/05/2015 Anuj Mohan Data Intensity NKU-2015
72
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; 72 10/05/2015 Anuj Mohan Data Intensity NKU-2015
73
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 73 10/05/2015 Anuj Mohan Data Intensity NKU-2015
74
Init Parameters Parameter file is defined at CDB level i.e one parameter file per CDB There are some parameter which can be defined for PDB but it will be defined in init.ora of CDB hosting that pdb v$parameter (ISPDB_MODIFIABLE='TRUE') select ispdb_modifiable,count(*) from v$parameter group by ispdb_modifiable ; ISPDB COUNT(*) ----- ---------- TRUE 151 FALSE 213 SQL> select name from v$parameter where ispdb_modifiable=‘TRUE’ and rownum<4; NAME -------------------------------------------------------------------------------- timed_statistics timed_os_statistics resource_limit Change in PDB parameter value becomes effective after CDB restart or close and open of PDB 74 10/05/2015 Anuj Mohan Data Intensity NKU-2015
75
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 75 10/05/2015 Anuj Mohan Data Intensity NKU-2015
76
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 76 10/05/2015 Anuj Mohan Data Intensity NKU-2015
77
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"; 77 10/05/2015 Anuj Mohan Data Intensity NKU-2015
78
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 78 10/05/2015 Anuj Mohan Data Intensity NKU-2015
79
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; 79 10/05/2015 Anuj Mohan Data Intensity NKU-2015
80
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 80 10/05/2015 Anuj Mohan Data Intensity NKU-2015
81
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; 81 10/05/2015 Anuj Mohan Data Intensity NKU-2015
82
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; 82 10/05/2015 Anuj Mohan Data Intensity NKU-2015
83
Flashback database sql>startup mount flashback database to scn 1809; OR Rman> flashback database to restore point 'before_upgrade'; rman> alter database open read only; Validate recovered information rman> shutdown immediate rman> startup mount flashback database to scn 1809; OR flashback database to restore point 'before_upgrade'; rman> alter database open resetlogs; rman> alter pluggable database all open; 83 10/05/2015 Anuj Mohan Data Intensity NKU-2015
84
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 84 10/05/2015 Anuj Mohan Data Intensity NKU-2015
85
Migration to 12c : Method 1 Create a Container database Create a pluggable database inside the container Take export of source db (10g/11g expdp) Import in pluggable or container database (12c impdp) 85 10/05/2015 Anuj Mohan Data Intensity NKU-2015
86
Migration to 12c : Method 2 Use of some sort of replication tool Source : 10g/11g Destination : 12c E.g. GoldenGate, transient logical standby 86 10/05/2015 Anuj Mohan Data Intensity NKU-2015
87
Migration to 12c : Method 3 Upgrade a pre-12c database to 12c (non cdb) Plug-in the non-CDB into a CDB Helpful features : parallel processing to regular upgrades Manual / dbua generates automatic fixups before upgrade dbua can use existing rman backups for fall back strategy you can create restore points and do a flashback database datapump full transportable (combination of datapump and transportable tablespace) 87 10/05/2015 Anuj Mohan Data Intensity NKU-2015
88
Direct upgrade path 88 10/05/2015 Anuj Mohan Data Intensity NKU-2015
89
Indirect upgrade path 89 10/05/2015 Anuj Mohan Data Intensity NKU-2015
90
AGENDA Oracle’s Previous Releases Oracle 12c Key New Features/Enhancements RMAN Enhancements Hide Column / Set Invisible ILM :In-Database Row Archiving ADO and Heat Map In-Memory Option Oracle Multitenant CDB/PDB Introduction and Concepts Shared / Exclusive components Accessing CDB's/PDB's Backup and Recovery Quick overview: migration options to 12c from previous versions PDB - Explanation of Value (EOV) 90 10/05/2015 Anuj Mohan Data Intensity NKU-2015
91
91 10/05/2015 Anuj Mohan Data Intensity NKU-2015 Source: Oracle Corporation
92
92 10/05/2015 Anuj Mohan Data Intensity NKU-2015 Source: Oracle Corporation
93
252 open PDBs with 8GB SGA in container SQL> show parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------- lock_sga boolean FALSE pre_page_sga boolean TRUE sga_max_size big integer 8000M sga_target big integer 8000M SQL> select open_mode,count(*) from v$pdbs group by open_mode; OPEN_MODE COUNT(*) ---------- ---------- READ ONLY 1 READ WRITE 252 93 10/05/2015 Anuj Mohan Data Intensity NKU-2015
94
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 94 10/05/2015 Anuj Mohan Data Intensity NKU-2015
95
Explore Oracle Database 12c Learning Resources Oracle Database 12c Learning Library: http://www.oracle.com/oll/database http://www.oracle.com/oll/database 95 10/05/2015 Anuj Mohan Data Intensity NKU-2015
96
Thank you … LinkedIn Page for SIG www.linkedin.com/groups?gid=4847720 www.linkedin.com/groups?gid=4847720 If you have further questions or need database assistance, Send me email Anuj.Mohan@dataintensity.comAnuj.Mohan@dataintensity.com 96 10/05/2015 Anuj Mohan Data Intensity NKU-2015
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.