db12c: all you need to know about the resource manager

56
DB12C: ALL YOU NEED TO KNOW ABOUT THE RESOURCE MANAGER Māris Elsi ņš Lead Database Consultant Pythian @MarisElsins

Upload: andrejs-vorobjovs

Post on 13-Apr-2017

389 views

Category:

Education


10 download

TRANSCRIPT

Page 1: DB12c: All You Need to Know About the Resource Manager

DB12C: ALL YOU NEED TO KNOW

ABOUT THE RESOURCE MANAGER

Māris ElsiņšLead Database ConsultantPythian

@MarisElsins

Page 2: DB12c: All You Need to Know About the Resource Manager

MARIS ELSINS

Lead Database Consultant at PythianOracle [Apps] DBA since 2005

Speaker at conferences since 2007

@MarisElsins [email protected]

http://bit.ly/getMOSPatch

Page 3: DB12c: All You Need to Know About the Resource Manager

ABOUT PYTHIAN

3

Founded  in  1997,  Pythian  is  a  global  leader  in  data  consulting  and  managed  services  specializing    in  planning,  optimizing,  and  managing  mission-­critical  data  systems

Top  5%  talent  worldwide    

10  Oracle  ACEs

3  Oracle  ACE  Directors

18  years  in  business  

450+  employees

250+  customers  worldwide  

Page 4: DB12c: All You Need to Know About the Resource Manager

AGENDA

• Features of the Resource Manager

• The new 12c-stuff

• Consolidations using Oracle Multitenant

• Overhead of the RM

4

Page 5: DB12c: All You Need to Know About the Resource Manager

FEATURES OF THE RESOURCE MANAGER

5

Page 6: DB12c: All You Need to Know About the Resource Manager

THE PROBLEM

• OS  doesn’t  care  enough  about  DB  sessions/processes  according  to  what  business  requires– Assigns  the  same  priority  to  all  processes– CPU  resources  are  equally  distributed  among  all  processes– Inability  to  manage  DB-­specific  resources/situations

• CPU  distribution  among  sessions,  Parallel  Execution  Servers,  Active  session  Pool  and  Queuing,  Undo  usage,  Runaway  Queries,  Blocking  sessions

– Context  switching  overhead  when  many  processes  running

• Problems  start  when  there’s  not  enough  CPU  for  everyone

• CPU  starvation  can  be  hard  to  recover  from(the  snowball  effect)

• CPU  starvation  makes  online  troubleshooting  hard  to  do

6

Page 7: DB12c: All You Need to Know About the Resource Manager

PROBLEM SCENARIOS - QUIZ TIME!

• Running  reports  causes  too  much  load  on  the  OLTP  system.• One  of  the  sessions  allocate  all  parallel  query  slaves  therefore  other  sessions  don’t  get  any

• Application  support  team  runs  heavy  queries  to  analyze  the  data  leaving  less  resources  for  online  transactions

• Wide  search  criteria  cause  “hangs”  in  the  search  form• 3  of  8  CPU  cores  are  idle,  my  query  runs  without  parallel  execution,  I  could  use  the  idle  CPUs  to  provide  results  faster

• Users  don’t  log  out  and  leave  idle  sessions• My  batch  process  requires  DOP=8  to  complete  in  time,  but  it’s  downgraded  to  smaller  DOP  if  enough  parallel  slaves  are  not  available

• My  query  is  very  important.  It’s  IO  requests  have  to  be  prioritized!• Sessions  with  incomplete  transactions  have  locked  some  rows  and  other  sessions  have  stuck.

7

Page 8: DB12c: All You Need to Know About the Resource Manager

THE BASIC CONCEPTS

• Resource Manager– Included in Oracle EE license– Allows prioritization of sessions according to the defined business

requirements– Allows defining the guaranteed amount of allocated resources for each type

of sessions (consumer group)– Resources not used by higher priority sessions, can be used by lower priority

sessions

• Prioritization is achieved by changing the process states to running/sleeping– DBRM / VKRM (CPU scheduling)– Semaphores (wake up sleeping processes)– CPU quantum (_dbrm_quantum)

• Resource manager does not solve the «lack of CPU resources» problem, it just controls the execution queue

• Resource manager uses some resources too, the last part of the presentation will estimate the overhead

8

Page 9: DB12c: All You Need to Know About the Resource Manager

THE BASIC CONCEPTS

9

• Consumer group – Set of sessions having similar

requirements for server resources– Resources are allocated to the

consumer group, not individual sessions

– DBA_RSRC_CONSUME_GROUPS

• Directives– Rules that define resource allocation

to the consumer group– DBA_RSRC_PLAN_DIRECTIVES

• Resource plan– Set of directives defining the

distribution of resources among consumer groups

– DBA_RSRC_PLANS

Page 10: DB12c: All You Need to Know About the Resource Manager

SQL> select event, count(*) from v$session group by event order by 2 desc;

EVENT COUNT(*)---------------------------------------------------------------- ----------resmgr:cpu quantum 25rdbms ipc message 23Space Manager: slave idle wait 16SQL*Net message from client 9EMON slave idle wait 5DIAG idle wait 2LGWR worker group idle 2GCR sleep 2Streams AQ: waiting for time management or cleanup tasks 1VKTM Logical Idle Wait 1AQPC idle 1Streams AQ: qmn coordinator idle wait 1VKRM Idle 1PING 1...

23 rows selected.

RESMGR:CPU QUANTUM

WHY IS MY SESSION NOT RUNNING?

10

Page 11: DB12c: All You Need to Know About the Resource Manager

RESMGR:CPU QUANTUM

WHY IS MY SESSION NOT RUNNING?SQL> select event, status, count(*) from v$session

where event='resmgr:cpu quantum' group by event, status order by 1,2;

EVENT STATUS COUNT(*)------------------ -------- ----------resmgr:cpu quantum ACTIVE 25

11

Page 12: DB12c: All You Need to Know About the Resource Manager

RESMGR:CPU QUANTUM

WHY IS MY SESSION NOT RUNNING?

12

SQL> select event, status, state, count(*)from v$session where event='resmgr:cpu quantum' group by event, status, state order by 1,2,3;

EVENT STATUS STATE COUNT(*) ------------------ -------- ------------------- ----------resmgr:cpu quantum ACTIVE WAITED KNOWN TIME 7 resmgr:cpu quantum ACTIVE WAITED SHORT TIME 16 resmgr:cpu quantum ACTIVE WAITING 2

Page 13: DB12c: All You Need to Know About the Resource Manager

RESMGR:CPU QUANTUM

WHY IS MY SESSION NOT RUNNING?• EVENT values are often misinterpreted in:

– V$SESSION– V$SESSION_WAIT

• Common mistake is to forget about v$session.STATE!

• If STATE = 'WAITING’, only then the session is waiting– EVENT shows what the session is waiting for– STATUS can be ACTIVE or INACTIVE

• If STATE = 'WAITED % TIME’ ..– and STATUS = 'ACTIVE', the session is ON CPU– and STATUS != 'ACTIVE', the session is not running

THIS IS TRUE FOR ALL WAITEVENTS

13

Page 14: DB12c: All You Need to Know About the Resource Manager

FEATURES9.2 10.2 11.1 11.2 12.1

CPU resource allocation J J J J J

Limit of the degree of parallelism J J J J J

active session pool J J J J J

Automated change of consumer group if session has used or is estimated to use the defined amount of resources

CPU,  Est  CPU

CPU,  Est  CPU

CPU,Est CPU,  IO_MB,  IO_REQ

CPU,Est CPU,  IO_MB,  IO_REQ

CPU,Est  CPU,  IO_MB,  IO_REQ,LIO,Ela,Est  Ela

Limit of estimated execution time J J J J J

Limit size of undo used by uncommitted sessions J J J J J

Termination of idle sessions J J J J

Termination of idle blocking sessions J J J J

L0 70% CPU _ORACLE_BACKGROUND_GROUP_ hidden consumer group for background processes J J J at  90%

Instance caging /CPU_COUNT + resource plan/ J J

Max CPU Utilization limit J J

Parallel Statement Queue J J

LOG_ONLY “switch group” for real-time SQL monitoring J

Simplified automated consumer group switching J

14

Page 15: DB12c: All You Need to Know About the Resource Manager

THE NEW 12C-STUFF

15

Page 16: DB12c: All You Need to Know About the Resource Manager

AUTOMATED CONSUMER GROUP SWITCHING12C: MORE OPTIONS

• Logical IO

• Elapsed time

• Estimated elapsed time

• Real-time SQL monitoring– LOG_ONLY

16

Page 17: DB12c: All You Need to Know About the Resource Manager

17

SELECT executions,end_of_fetch_count,elapsed_time/px_servers elapsed_time,cpu_time /px_servers cpu_time,buffer_gets /executions buffer_gets

FROM(SELECT SUM(executions) AS executions,

sum (CASEWHEN px_servers_executions > 0THEN px_servers_executionsELSE executions

END) AS px_servers,SUM(end_of_fetch_count) AS end_of_fetch_count,SUM(elapsed_time) AS elapsed_time,SUM(cpu_time) AS cpu_time,SUM(buffer_gets) AS buffer_gets

FROM gv$sqlWHERE executions > 0AND sql_id = :1AND parsing_schema_name = :2)

AUTOMATED CONSUMER GROUP SWITCHINGESTIMATED ELAPSED TIME

Page 18: DB12c: All You Need to Know About the Resource Manager

AUTOMATED CONSUMER GROUP SWITCHINGESTIMATED ELAPSED TIME

18

SELECT executions,end_of_fetch_count,elapsed_time/px_servers elapsed_time,cpu_time /px_servers cpu_time,buffer_gets /executions buffer_gets

FROM(SELECT SUM(executions_delta) AS EXECUTIONS,SUM(CASE WHEN px_servers_execs_delta > 0 THEN px_servers_execs_delta ELSE

executions_deltaEND) AS px_servers,SUM(end_of_fetch_count_delta) AS end_of_fetch_count,SUM(elapsed_time_delta) AS ELAPSED_TIME,SUM(cpu_time_delta) AS CPU_TIME,SUM(buffer_gets_delta) AS BUFFER_GETS

FROM DBA_HIST_SQLSTAT s,V$DATABASE d,DBA_HIST_SNAPSHOT sn

WHERE s.dbid = d.dbidAND bitand(NVL(s.flag, 0), 1) = 0AND sn.end_interval_time > (SELECT SYS imestamp at TIME ZONE dbtimezone FROM

dual) - 7AND s.sql_id = :1AND s.snap_id = sn.snap_idAND s.instance_number = sn.instance_numberAND s.dbid = sn.dbidAND parsing_schema_name = :2)

Page 19: DB12c: All You Need to Know About the Resource Manager

REAL-TIME SQL MONITORING IMPROVEMENTSLOG_ONLY – RESERVED CONSUMER GROUP NAME

• Analyze the RM activity (V$SQL_MONITOR)– RM_LAST_ACTION

– RM_LAST_ACTION_REASON– RM_LAST_ACTION_TIME

– RM_CONSUMER_GROUP

• Understand how and why the consumer groups are switched

• V$SQL_MONITOR.QUEUING_TIME

• The RM_% values are not presented in SQL Monitor reports or in EM 12c CC

19

Page 20: DB12c: All You Need to Know About the Resource Manager

CONSUMER GROUP SWITCHINGSIMPLIFIED PRIVILEGES

• In pre-12c any kind of switching required explicit privilege– DBMS_RESOURCE_MANAGER_PRIVS.

GRANT_SWITCH_CONSUMER_GROUP

• 12.1 privileges included for:– Consumer group mappings

– Condition based on SWITCH_GROUP

• What it means to DBAs?– Removes redundant work– Simplicity

– More flexibility as explicit grants can be avoided

20

Page 21: DB12c: All You Need to Know About the Resource Manager

CDB and PDB Resource Plans

CONSOLIDATION USING ORACLE MULTITENANT

21

Page 22: DB12c: All You Need to Know About the Resource Manager

CDB RESOURCE PLAN

• CDB resource plan– Defines how resources are distributed between PDBs– Shares – Minimum portion of resources allocated to the PDB– Additional Limits

• Utilization_limit• Parallel_server_limit (%)

• CDB Plan Directives (in DEFAULT_CDB_PLAN)– ORA$DEFAULT_PDB_DIRECTIVE – default

• Shares=1, utilization_limit=100, parallel_server_limit=100– ORA$AUTOTASK – for autotasks in root container

• Shares=1, utilization_limit=90, parallel_server_limit=100

• User-defined directives for exceptional PDBs

Page 23: DB12c: All You Need to Know About the Resource Manager

PDB RESOURCE PLAN

• Allows to use the resources proportionally to the allocated shares

• Works just like a resource plan for non-CDB

• Few restrictions– A PDB resource plan can't have sub-plans.– A PDB resource plan can have a maximum of eight

consumer groups.– A PDB resource plan cannot have a multi-level scheduling

policy.

• So we need to take action to re-implement the resource plans when we switch from non-CDB to the CDB?– Not always! It happens automatically, but how?

23

Page 24: DB12c: All You Need to Know About the Resource Manager

CONVERTING NON-CDB PLANS TO PDB PLANSMULTI-LEVEL SCHEDULING POLICIES ARE NOT ALLOWER

• Automatically when the non-CDB is converted into PDB– $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

– The original plan and plan directives are saved with STATUS=LEGACY

– A new plan is added with the same name and STATUS={null}

• Algorithm is not documented, but appears to be simple enough:– Adjust allocated CPU% on each level

• Reduce each level to 75% proportionally

• Leave it as is if it’s already lower than 75%– The “free portion” is passed to the lower level and split per

calculated percentages, the remaining portion is passed down– The last level get’s all remaining resources

24

Page 25: DB12c: All You Need to Know About the Resource Manager

CONVERTING NON-CDB TO PDBEXAMPLE 1

25

Page 26: DB12c: All You Need to Know About the Resource Manager

CONVERTING NON-CDB TO PDBEXAMPLE 2

26

Page 27: DB12c: All You Need to Know About the Resource Manager

CONVERTING NON-CDB TO PDBEXAMPLE 3

27

Page 28: DB12c: All You Need to Know About the Resource Manager

OVERHEAD OF THE RM

28

Page 29: DB12c: All You Need to Know About the Resource Manager

• RM requires resources– I’ve heard rumors: 1-10% of CPU

• Testing needed!

NOTHING IS FOR FREE

Page 30: DB12c: All You Need to Know About the Resource Manager

MEASURING THE OVERHEADHOW DO WE TEST?

• HW – ODA V1 (12 Cores With HT => 24 Logical CPUs)– Two 6-core 3.06 GHz Intel Xeon® X5675 processors

• Custom script– “Burns CPU”– Status checks

• work done per session by consumer group • Response time of a non-DB script

• Run 1 to 48 sessions in parallel

• DB versions– 12.1.0.2 non-CDB– 12.1.0.2 CDB (tests executed in 1 PDB)– 11.2.0.4

30

Page 31: DB12c: All You Need to Know About the Resource Manager

TESTING SCRIPTSBURN_CPU.SQL

-- parameter 1 is the thread number-- parameter 2 is the consumer_group name

whenever sqlerror exit success rollbackset ver off

declarernd number;i number;j number;r number;old_group varchar2(30);

begindbms_application_info.set_module('ORM_TEST','THREAD_'||&&1);dbms_random.seed('THREAD_'||&&1);rnd:=dbms_random.value*10000000+1;DBMS_SESSION.SWITCH_CURRENT_CONSUMER_GROUP('&&2', old_group, TRUE);DBMS_LOCK.sleep(5);

for i in 0..1000000loop

for j in 0..1000000loop

r:=sqrt(sqrt(rnd*i*1000000+j+1));dbms_application_info.set_client_info(i*1000000+j);

end loop;end loop;

end;/

31

Page 32: DB12c: All You Need to Know About the Resource Manager

TESTING SCRIPTSSTART_BURN.SH

sqlplus -s rm/rm @burn_cpu.sql 1 L2_GROUP1 &sqlplus -s sys/asdasd as sysdba @../status.sqlsqlplus -s rm/rm @burn_cpu.sql 1 L2_GROUP1 &sqlplus -s sys/asdasd as sysdba @../status.sql...

...sqlplus -s rm/rm @burn_cpu.sql 1 L2_GROUP1 &sqlplus -s sys/asdasd as sysdba @../status.sqlsqlplus -s rm/rm @burn_cpu.sql 1 L2_GROUP1 &sqlplus -s sys/asdasd as sysdba @../status.sqlsqlplus -s rm/rm @burn_cpu.sql 1 L2_GROUP1 &sqlplus -s sys/asdasd as sysdba @../status.sqlwait

32

Page 33: DB12c: All You Need to Know About the Resource Manager

TESTING SCRIPTSSTATUS.SQLDECLARE

TYPE t_progr IS TABLE OF NUMBER INDEX BY VARCHAR2(64);pre_work t_progr;pre_sess t_progr;post_work t_progr;post_sess t_progr;pre_ts timestamp;post_ts timestamp;cursor c is select current_timestamp ts , nvl(RESOURCE_CONSUMER_GROUP,'{null}')||' / '||action RESOURCE_CONSUMER_GROUP,

count(*) sessions, sum(CLIENT_INFO) WORK_DONE from v$session where module='ORM_TEST' group by current_timestamp, nvl(RESOURCE_CONSUMER_GROUP,'{null}')||' / '||action order by 2;

c1 c%rowtype;c2 c%rowtype;l_key varchar2(100);work_done number;

beginfor c1 in c looppre_ts:=c1.ts;pre_work(c1.RESOURCE_CONSUMER_GROUP):=c1.WORK_DONE;pre_sess(c1.RESOURCE_CONSUMER_GROUP):=c1.sessions;

end loop;dbms_lock.sleep(30);for c2 in c looppost_ts:=c2.ts;post_work(c2.RESOURCE_CONSUMER_GROUP):=c2.WORK_DONE;post_sess(c2.RESOURCE_CONSUMER_GROUP):=c2.sessions;

end loop;

l_key := pre_work.first;LOOP

EXIT WHEN l_key IS NULL;work_done:=round((post_work(l_key)-pre_work(l_key))/(extract(minute from (post_ts-pre_ts))*60+extract(second from (post_ts-

pre_ts))),3);dbms_output.put_line(rpad(l_key,60,' ')||': '||rpad(post_work(l_key),16,' ')||' - '||rpad(pre_work(l_key),16,' ')||' =

'||rpad(post_work(l_key)-pre_work(l_key)||' / '||(extract(minute from (post_ts-pre_ts))*60+extract(second from (post_ts-pre_ts)))||'s',40,' ')||' ==> '||work_done||' w/s (with '||post_sess(l_key)||' sessions) ' || (work_done/post_sess(l_key))||' w/s per session');

l_key := pre_work.next(l_key);END LOOP;

end;/

33

Page 34: DB12c: All You Need to Know About the Resource Manager

TESTING SCRIPTS! /USR/BIN/TIME ../RESPONSE.SH

for i in {1..5000}do

echo "sqrt($i)" | bc > /dev/nulldone

34

Page 35: DB12c: All You Need to Know About the Resource Manager

TEST1NO RESOURCE MANAGER

• Init parameters:– resource_limit=true

– cpu_count=24

– resource_manager_plan='FORCE:’

• CDB– resource_manager_plan='FORCE:’ was set in all PDBs

and ROOT.

– ! Having a RM plan enabled in one PDB caused the whole CDB to be managed by the Resource Manager

35

Page 36: DB12c: All You Need to Know About the Resource Manager

TEST1NO RESOURCE MANAGER

36

What’s  wrong  here?§ 12c  CDB  behaves  normally

§ Performance  degrades  starting  from  6-­7  parallel  sessions  on:-­ non-­CDB-­ 11gR2

Page 37: DB12c: All You Need to Know About the Resource Manager

TEST1NO RESOURCE MANAGER

37

We’re  sleeping  for  Latch  Gets

Page 38: DB12c: All You Need to Know About the Resource Manager

TEST2BURN_CPU.SQL V2whenever sqlerror exit success rollbackset ver off

declarernd number;i number;j number;r number;old_group varchar2(30);begindbms_application_info.set_module('ORM_TEST','THREAD_'||&&1);dbms_random.seed('THREAD_'||&&1);rnd:=dbms_random.value*10000000+1;DBMS_SESSION.SWITCH_CURRENT_CONSUMER_GROUP('&&2', old_group, TRUE);DBMS_LOCK.sleep(5);

for i in 0..1000000loop

for j in 0..1000000loop

r:=sqrt(sqrt(rnd*i*1000000+j+1));if mod(j,1000)=0 then

dbms_application_info.set_client_info(i*1000000+j);end if;

end loop;end loop;end;/

38

Page 39: DB12c: All You Need to Know About the Resource Manager

TEST2NO RESOURCE MANAGER – BURN_CPU.SQL V2

39

§ 12c  CDB  shows  2x  higher  results  compared  to  TEST1  (it  didn’t  behave  normally!)

§ 11gR2  performs  worse  compared  to  12c

Page 40: DB12c: All You Need to Know About the Resource Manager

TEST2NO RESOURCE MANAGER – BURN_CPU.SQL V2

40

§ OS  script  response  is:-­ 5  – 9  s  for  1-­23  sessions-­ 70  – 90  s  for  24-­48  sessions  (14x  slower  )

Page 41: DB12c: All You Need to Know About the Resource Manager

TEST3SIMPLE RESOURCE PLAN

• The resource plan– SYS_GROUP = 1% at L1

– OTHER_GROUP = 1% at L1

– L2_GROUP1 = 1% at L1

• All sessions will be in L2_GROUP1

41

Page 42: DB12c: All You Need to Know About the Resource Manager

TEST3SIMPLE RESOURCE PLAN

42

§ Very  similar  results  to  TEST2  (no  RM)

Page 43: DB12c: All You Need to Know About the Resource Manager

TEST3SIMPLE RESOURCE PLAN

43

§ Even  a  very  simple  RM  plan  throttles  sessions  instead  of  letting  them  saturate  the  servers

§ Spike  at  exactly  24  active  sessions  is  caused  by  the  fact  the  RM  is  not  yet  throttling  sessions  and  all  Logical  CPUs  are  used

What  is  that  spike?

Page 44: DB12c: All You Need to Know About the Resource Manager

TEST450% RESOURCE PLAN

• The resource plan– SYS_GROUP = 5% at L1

– OTHER_GROUP = 45% at L1

– L2_GROUP1 = 50% at L1

• 1-18 sessions will be started in L2_GROUP1

• 19-60 sessions will be started in OTHER_GROUP

• The Goal– Check if requested 50% are provided

44

Page 45: DB12c: All You Need to Know About the Resource Manager

TEST450% RESOURCE PLAN – 12C NON-CDB

45

Page 46: DB12c: All You Need to Know About the Resource Manager

TEST450% RESOURCE PLAN – 12C CDB

46

Why  am  I  not  Getting  my  50%  

?

§ I  forgot  to  set  the  RESORCE_MANAGER_PLAN  at  the  CDB  level

Page 47: DB12c: All You Need to Know About the Resource Manager

TEST450% RESOURCE PLAN – 12C CDB + FIXED THE RM SETTINGS

47

Now  it’s  all  much  better!

Page 48: DB12c: All You Need to Know About the Resource Manager

TEST450% RESOURCE PLAN – 11GR2

48

Page 49: DB12c: All You Need to Know About the Resource Manager

TEST5ALLOCATION ACCURACY

• The resource plan– SYS_GROUP = 1% at L1– L2_GROUP1 = 10% at L1– L2_GROUP2 = 20% at L1– L2_GROUP3 = 30% at L1– L2_GROUP4 = 39% at L1– OTHER_GROUP = 0% at L1

• 24 sessions will be started in each group except SYS_GROUP

• The Goal– Check if all percentages are met

49

Page 50: DB12c: All You Need to Know About the Resource Manager

TEST5ALLOCATION ACCURACY – 12C NON-CDB

50

Page 51: DB12c: All You Need to Know About the Resource Manager

TEST5ALLOCATION ACCURACY – 12C CDB

51

Page 52: DB12c: All You Need to Know About the Resource Manager

TEST5ALLOCATION ACCURACY – 11GR2

52

Page 53: DB12c: All You Need to Know About the Resource Manager

RM OVERHEADCOMPARING AVG(W/S) FOR 24-48 SESSIONS TEST2/TEST3

53

Page 54: DB12c: All You Need to Know About the Resource Manager

FINDINGS

54

Page 55: DB12c: All You Need to Know About the Resource Manager

FINDINGS• The basic overhead of RM is negligible ( <1% )

– Outlier cases are possible (but rare)• Session holding a “latch” is sent off-CPU• Session holding a lock is sent off-CPU

– .. only if out of resources already

• OS Responsiveness is useful– For Troubleshooting – For keeping RAC alive

• Don’t create “fancy” RM plans – It does not guarantee exact resource distribution– Tries its best on non-CDB and 11gR2– Does it quite well on 12c CDB!

• Careful with RM on CDB/PDBs!– Enabling it on 1 PDB enables it for the whole CDB– Remember the scheduler windows: (RMP='FORCE:')

Page 56: DB12c: All You Need to Know About the Resource Manager

?

http://bit.ly/getMOSPatch [email protected]://www.pythian.com/blog/author/elsins @MarisElsins

56