标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 obet ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kcratr_nab_less_than_odr ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle碎片 OSD-04016 YOUR FILES ARE ENCRYPTED 比特币加密文章分类
- MongoDB (1)
- MongoDB恢复 (1)
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (112)
- 数据库 (1,879)
- DB2 (22)
- MySQL (82)
- Oracle (1,705)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (72)
- Oracle Bug (8)
- Oracle RAC (56)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (659)
- Oracle安装升级 (108)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (91)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (5)
- 达梦恢复 (3)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (51)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (34)
- MongoDB (1)
-
最近发表
- Oracle 19c 202610补丁(RUs+OJVM)-19.33
- 由于con$.con#值达到极限,触发数据库增加约束报ORA-600 12807错误
- MongoDB 离线提取工具—mongoext
- .bres勒索病毒加密数据库dmp文件可恢复
- ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
- 记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复
- 不当数据库恢复操作导致一个月数据丢失
- obet快速修复oracle 位图损坏块
- 不太常见的10.2.0.1的oracle redo损坏恢复
- obet forcecopy功能抢救硬件故障中的数据文件
- kcratr_nab_less_than_odr和system坏块故障处理
- 通过obet 恢复system坏块,打开数据库
- obet dbv功能完整说明
- 分享一例运行在aix上的sap系统数据库恢复过程
- OBET-Oracle Block Editor Tool使用说明
- 几乎动用了所有手段的Oracle故障恢复
- Oracle Block Edit Tool (obet) 功能增强–2026.07
- Oracle 19c 202607补丁(RUs+OJVM)-19.32
- Patch_SCN快速修复ORA-01555数据库open故障
- 快速处理 ORA-01210: data file header is media corrupt 故障
分类目录归档:Oracle性能优化
分析一例 TX Enqueue contention案例
应用反馈某个业务比较慢,需要紧急处理
查询等待事件
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
PL/SQL Release 9.2.0.8.0 - Production
CORE 9.2.0.8.0 Production
TNS for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production
SQL> select A.INST_ID,count(*), event
2 from Gv$session_wait a
3 where event not in ('SQL*Net more data to client',
4 'rdbms ipc message',
5 'smon timer',
6 'pmon timer',
7 'SQL*Net message from client',
8 'lock manager wait for remote message',
9 'ges remote message',
10 'gcs remote message',
11 'gcs for action',
12 'client message',
13 'pipe get',
14 'null event',
15 'PX Idle Wait',
16 'single-task message',
17 'PX Deq: Execution Msg',
18 'KXFQ: kxfqdeq - normal deqeue',
19 'listen endpoint status',
20 'slave wait',
21 'wakeup time manager','jobq slave wait')
22 group by INST_ID,event
23 order by 1 desc,2 desc;
INST_ID COUNT(*) EVENT
---------- ---------- --------------------------------------
2 8 enqueue
2 1 async disk IO
2 1 db file sequential read
2 1 SQL*Net message to client
2 1 PX Deq: reap credit
1 2 global cache cr request
1 1 async disk IO
1 1 PX Deq: reap credit
1 1 PX Deq: Execute Reply
9 rows selected.
发现enqueue等待有些多,怀疑是TX enquenue,查询阻塞者
SQL> set linesize 100
SQL> set pagesize 66
SQL> col c1 for a15
SQL> col c1 heading "Program Name "
SQL> select l.inst_id,l.SID,program c1,l.TYPE,l.ID1,l.ID2,l.LMODE,l.REQUEST
2 from gv$lock l,gv$session s
3 where l.type like 'TX' and l.REQUEST =6
4 and l.inst_id=s.inst_id and l.sid=s.sid
5 order by id1
6 /
INST_ID SID Program Name TY ID1 ID2 LMODE REQUEST
---------- ---------- --------------- -- ---------- ---------- ---------- ----------
2 295 rtStopMain@zwq_ TX 1441805 2391806 0 6
bill_2 (TNS V1-
V3)
2 992 rtStopMain@zwq_ TX 1441805 2391806 0 6
bill_2 (TNS V1-
V3)
2 1238 rtStopMain@zwq_ TX 6946827 2546365 0 6
bill_2 (TNS V1-
V3)
2 1298 rtStopMain@zwq_ TX 6946827 2546365 0 6
bill_2 (TNS V1-
V3)
2 1684 rtStopMain@zwq_ TX 6946827 2546365 0 6
bill_2 (TNS V1-
V3)
2 1553 rtStopMain@zwq_ TX 6946827 2546365 0 6
bill_2 (TNS V1-
V3)
2 75 rtStopMain@zwq_ TX 12451856 199146 0 6
bill_2 (TNS V1-
V3)
2 1125 rtStopMain@zwq_ TX 14352404 63837 0 6
bill_2 (TNS V1-
V3)
查询持有者
SQL> set linesize 100
SQL> set pagesize 66
SQL> col c1 for a15
SQL> col c1 heading "Program Name "
SQL> select l.inst_id,l.SID,program c1,l.TYPE,l.ID1,l.ID2,l.LMODE,l.REQUEST
2 from gv$lock l,gv$session s
3 where l.type like 'TX' and l.LMODE =6 and (l.ID1,l.ID2) in
4 (select id1,id2 from gv$lock where type like 'TX' and REQUEST =6)
5 and l.inst_id=s.inst_id and l.sid=s.sid
6 order by id1
7 /
INST_ID SID Program Name TY ID1 ID2 LMODE REQUEST
---------- ---------- --------------- -- ---------- ---------- ---------- ----------
2 75 rtStopMain@zwq_ TX 1441805 2391806 6 0
bill_2 (TNS V1-
V3)
2 992 rtStopMain@zwq_ TX 6946827 2546365 6 0
bill_2 (TNS V1-
V3)
2 295 rtStopMain@zwq_ TX 12451856 199146 6 0
bill_2 (TNS V1-
V3)
2 1553 rtStopMain@zwq_ TX 14352404 63837 6 0
bill_2 (TNS V1-
V3)
通过持有者和阻塞者可以得出:
1.持有者和阻塞者都是在2号实例上
2.持有者75阻塞了295/992的会话
3.持有者992阻塞了1238/1298/1684/1553的会话
4.持有者295阻塞了75的会话
5.持有者1553阻塞了1125的会话
6.同时分析发现,所有的持有者sid也在阻塞者中,也就是持有者阻塞了某个sid,而自身又被其他sid给阻塞,形成了多级阻塞或者环.如:75阻塞了295,而295有阻塞了75;992阻塞了1553,而1553阻塞了1125
查询阻塞和持有者对象
SQL> set linesize 110
SQL> col c0 for 999
SQL> col c0 heading "INS"
SQL> col c1 for a15
SQL> col c1 heading "Program Name "
SQL> select inst_id c0,sid,program c1,ROW_WAIT_OBJ# object_no, ROW_WAIT_FILE# Rfile_no,
2 ROW_WAIT_BLOCK# Block_no ,ROW_WAIT_ROW# Row_no
3 from gv$session
4 where (inst_id,sid) in (select inst_id,sid from gv$session_wait where p1='1415053318')
5 /
INS SID Program Name OBJECT_NO RFILE_NO BLOCK_NO ROW_NO
---- ---------- --------------- ---------- ---------- ---------- ----------
2 75 rtStopMain@zwq_ 1323132 13 122601 111
bill_2 (TNS V1-
V3)
2 295 rtStopMain@zwq_ 1323132 13 122601 100
bill_2 (TNS V1-
V3)
2 992 rtStopMain@zwq_ 1323132 13 122601 101
bill_2 (TNS V1-
V3)
2 1125 rtStopMain@zwq_ 1323132 84 38445 70
bill_2 (TNS V1-
V3)
2 1238 rtStopMain@zwq_ 1323132 15 255066 41
bill_2 (TNS V1-
V3)
2 1298 rtStopMain@zwq_ 1323132 14 118411 8
bill_2 (TNS V1-
V3)
2 1553 rtStopMain@zwq_ 1323132 15 255066 19
bill_2 (TNS V1-
V3)
2 1684 rtStopMain@zwq_ 1323132 14 118411 21
bill_2 (TNS V1-
V3)
8 rows selected.
SQL> set linesize 100
SQL> set pagesize 100
SQL> col owner for a10
SQL> col object_name for a20
SQL> col object_type for a10
SQL> select owner,object_name,object_id,object_type
2 from dba_objects
3 where
4 object_id in (select ROW_WAIT_OBJ# from gv$session
5 where (inst_id, sid) in (select inst_id,sid from gv$session_wait where p1='1415053318'))
6 /
OWNER OBJECT_NAME OBJECT_ID OBJECT_TYP
---------- -------------------- ---------- ----------
DBACCADM DCUSTCREDITBALANCE 1323132 TABLE
通过查询的出来,所有操作的聚焦点都是在DBACCADM.DCUSTCREDITBALANCE表上面
查询相关sql语句
SQL> SQL> set linesize 120
SQL> set pagesize 66
SQL> col c0 for 999
SQL> col c0 heading "INS"
SQL> col c1 for a9
SQL> col c1 heading "OS User"
SQL> col c2 for a9
SQL> col c2 heading "Oracle User"
SQL> col c3 for a15
SQL> col c3 heading "Program Name"
SQL> col b1 for a9
SQL> col b1 heading "Unix PID"
SQL> col b2 for 9999 justify left
SQL> col b2 heading "ORA SID"
SQL> col b3 for 999999 justify left
SQL> col b3 heading "SERIAL#"
SQL> col sql_text for a45
SQL> set space 1
SQL> break on b1 nodup on c0 nodup on c3 nodup on c1 nodup on c2 nodup on b2 nodup on b3 skip 2
SQL> select a.inst_id c0,b.sid b2,c.spid b1, b.program c3, b.username c2,b.serial# b3, a.sql_text
2 from gv$sql a, gv$session b, gv$process c
3 where
4 a.address = b.sql_address
5 and b.paddr = c.addr
6 and a.hash_value = b.sql_hash_value
7 and a.inst_id=b.inst_id and a.inst_id=c.inst_id
8 and a.inst_id like '&inst_id' and b.sid like '&sid'
9 order by c.spid,a.hash_value
10 /
Enter value for inst_id: 2
Enter value for sid: 75
old 8: and a.inst_id like '&inst_id' and b.sid like '&sid'
new 8: and a.inst_id like '2' and b.sid like '75'
INS ORA SID Unix PID Program Name Oracle Us SERIAL# SQL_TEXT
---- ------- --------- --------------- --------- ------- ---------------------------------------------
2 75 1167392 rtStopMain@zwq_ DBCUSTOPR 42815 update dcustcreditbalance set limit_owe=:b0,
bill_2 (TNS V1- unbill_fee=:b1,prepay_fee=:b2,owe_fee=:b3,op_
V3) time=sysdate where id_no=:b4
SQL> /
Enter value for inst_id: 2
Enter value for sid: 992
old 8: and a.inst_id like '&inst_id' and b.sid like '&sid'
new 8: and a.inst_id like '2' and b.sid like '992'
INS ORA SID Unix PID Program Name Oracle Us SERIAL# SQL_TEXT
---- ------- --------- --------------- --------- ------- ---------------------------------------------
2 992 2760870 rtStopMain@zwq_ DBCUSTOPR 56282 update dcustcreditbalance set limit_owe=:b0,
bill_2 (TNS V1- unbill_fee=:b1,prepay_fee=:b2,owe_fee=:b3,op_
V3) time=sysdate where id_no=:b4
SQL> /
Enter value for inst_id: 2
Enter value for sid: 295
old 8: and a.inst_id like '&inst_id' and b.sid like '&sid'
new 8: and a.inst_id like '2' and b.sid like '295'
INS ORA SID Unix PID Program Name Oracle Us SERIAL# SQL_TEXT
---- ------- --------- --------------- --------- ------- ---------------------------------------------
2 295 1639008 rtStopMain@zwq_ DBCUSTOPR 35740 update dcustcreditbalance set limit_owe=:b0,
bill_2 (TNS V1- unbill_fee=:b1,prepay_fee=:b2,owe_fee=:b3,op_
V3) time=sysdate where id_no=:b4
其他阻塞者和持有者执行sql语句均和该语句相同,省略其他查询.通过这些查询可以确定是因为对dcustcreditbalance表的更新操作导致了这样的现象发生.
处理方案
1.临时处理方案:kill掉持有者
2.永久处理方案:修改这部分程序业务逻辑
To find the TX Enqueue contention in a RAC or OPS environment
今天查找TX Enqueue看到的一篇文章,拿出来共享下
PURPOSE
-------------
To find the TX Enqueue contention in a RAC or OPS environment
What is TX Enqueue ?
In one word oracle is maintaining queue for transaction.
How Many Resources ?
1/ active transaction
How Many Locks?
1/transaction + 1/process waiting for a locked row by that
transaction.
How Many Users?
1 + 1/ process waiting for something locked by this transaction.
Who Uses?
All processes
What need to investigate?
The mode of TX (6/4), Holding/Waiting/Requesting
SCOPE & APPLICATION
=====================
This document will help to analyze the application design related to transaction bottlenecks
and database performance tuning.
Let start with an example:
===================
create table akdas (A1 number, Col1 Varchar2(10), Col2 Varchar2(10));
insert into akdas values(5,'Hello','Hi');
insert into akdas values(6,'Sudip','Datta');
insert into akdas values(7,'Preetam','Roy');
insert into akdas values(8,'Michael','Polaski');
From Node 1:
==========
update akdas set a1=11 where a1=6;
From Node 2:
==========
update akdas set a1=12 where a1=7;
update akdas set a1=11 where a1=6; /* this will wait for Node1: to complete the transaction */
This Note Is Made To Analyzing Only the TX-Mode-6 (Exclusive).
1. Now run the following query to track down the problem: Who is waiting
===================================================================
prompt
prompt Query 1. Waiting for TX Enqueue where mode is Exclusive
prompt =====================================
prompt
set linesize 100
set pagesize 66
col c1 for a15
col c1 heading "Program Name "
select l.inst_id,l.SID,program c1,l.TYPE,l.ID1,l.ID2,l.LMODE,l.REQUEST
from gv$lock l,gv$session s
where l.type like 'TX' and l.REQUEST =6
and l.inst_id=s.inst_id and l.sid=s.sid
order by id1
/
Output will be here
===============
INST_ID SID Program Name TY ID1 ID2 LMODE REQUEST
----------- ---------- ------------------ --- -------- -------- ---------- --------
2 13 sqlplus@opcbsol TX 393236 780 0 6
2 (TNS V1-V3)
It is clear that SID 12 of instance 2 is doing a DML and waiting on REQUEST Mode 6.
2. Let's run the next query to find who is holding
===========================================
prompt
prompt
prompt Query 2. Holding for TX Enqueue where mode greater than 6
prompt =======================================
prompt
set linesize 100
set pagesize 66
col c1 for a15
col c1 heading "Program Name "
select l.inst_id,l.SID,program c1,l.TYPE,l.ID1,l.ID2,l.LMODE,l.REQUEST
from gv$lock l,gv$session s
where l.type like 'TX' and l.LMODE =6 and (l.ID1,l.ID2) in
(select id1,id2 from gv$lock where type like 'TX' and REQUEST =6)
and l.inst_id=s.inst_id and l.sid=s.sid
order by id1
/
Output will be here
===============
INST_ID SID Program Name TY ID1 ID2 LMODE REQUEST
---------- ---------- -------------- --- ---------- -------- ----------- --------
1 12 sqlplus@opcbsol TX 393236 780 6 0
1 (TNS V1-V3)
So holder is SID 12 on instance 1. Where LMODE = 6.
3. Let's find out the exact file#, block# and Record# where it is waiting
===============================================================
prompt
prompt
prompt Query 3. Object# ,File#, Block# and Slot# TX Enqueue in detail
prompt ========================================
prompt
set linesize 110
col c0 for 999
col c0 heading "INS"
col c1 for a15
col c1 heading "Program Name "
select inst_id c0,sid,program c1,ROW_WAIT_OBJ# object_no, ROW_WAIT_FILE# Rfile_no,
ROW_WAIT_BLOCK# Block_no ,ROW_WAIT_ROW# Row_no
from gv$session
where (inst_id,sid) in (select inst_id,sid from gv$session_wait where p1='1415053318')
/
Output Will be here
===============
INS SID Program Name OBJECT_NO RFILE_NO BLOCK_NO ROW_NO
----- ---------- ------------- --------------- --------- -------
2 13 sqlplus@opcbsol 7261 9 12346 1
2 (TNS V1-V3)
From the output, it is clear that it is waiting on Relative_File# 9, Block# 12346, Row Number 1.
Here Row Number 1 means the slot number in the block 12346. This Row_No start from 0 (zero).
4. Let's Find the object details
=============================
prompt
prompt
prompt Query 4. Object Involve for TX Enqueue in detail
prompt ===============================
prompt
set linesize 100
set pagesize 100
col owner for a10
col object_name for a20
col object_type for a10
select owner,object_name,object_id,object_type
from dba_objects
where
object_id in (select ROW_WAIT_OBJ# from gv$session
where (inst_id, sid) in (select inst_id,sid from gv$session_wait where p1='1415053318'))
/
Output Will be here
===============
OWNER OBJECT_NAME OBJECT_ID OBJECT_TYP
--------- ------------ -------- -----------
AKDAS AKDAS 7261 TABLE
5. Let’s find the row value details
=============================
prompt
prompt
prompt Query 5. Finding the row value
prompt ====================
prompt
select * from <Owner>.<Table Name> where rowid like
DBMS_ROWID.ROWID_CREATE(1,&Object_No,&Rfile_No, &Block_No, &Row_Number)
/
From query 3 and 4 we will get the value for all variables.
Owner = AKDAS
Table_Name = AKDAS
Object_No = 7261
Rfile_No = 9
Block_No = 12346
Row_Number = 1
Output Will be here
===============
A1 Col1 Col2
---------- --------------- ----------
6 Hello Hi
So we can drag down to the row value where TX Enqueue contention exists.
6. Let’s find the user activity that is "Holder" and "Waiter"
====================================================
set linesize 120
set pagesize 66
col c0 for 999
col c0 heading "INS"
col c1 for a9
col c1 heading "OS User"
col c2 for a9
col c2 heading "Oracle User"
col c3 for a15
col c3 heading "Program Name"
col b1 for a9
col b1 heading "Unix PID"
col b2 for 9999 justify left
col b2 heading "ORA SID"
col b3 for 999999 justify left
col b3 heading "SERIAL#"
col sql_text for a45
set space 1
break on b1 nodup on c0 nodup on c3 nodup on c1 nodup on c2 nodup on b2 nodup on b3 skip 2
select a.inst_id c0,b.sid b2,c.spid b1, b.program c3, b.username c2,b.serial# b3, a.sql_text
from gv$sql a, gv$session b, gv$process c
where
a.address = b.sql_address
and b.paddr = c.addr
and a.hash_value = b.sql_hash_value
and a.inst_id=b.inst_id and a.inst_id=c.inst_id
and a.inst_id like '&inst_id' and b.sid like '&sid'
order by c.spid,a.hash_value
/
This query asks the Instance Number and Sid number, which you can get from step 1 and 2.
But remember , you can see the waiter activity, but you may not see the holder activity.
Reason is, the holder is sitting idle after doing the DML operation. So SQL for Holder
should not be seen under gv$sql.
This all query can be run for single instance database, but all GV$ view need to replace to V$
and there is no INST_ID for V$ View, that part need to be taken care.
来自:How to Find TX Enqueue Contention in RAC or OPS [ID 179582.1]
发表在 Oracle性能优化
评论关闭
resmgr:cpu quantum等待
昨天晚上数据库升级(使用exp/imp从9i升级到11g),开启业务,数据库出现很多resmgr:cpu quantum等待
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
SQL> SELECT sid,event FROM v$session WHERE wait_class#<>6;
SID EVENT
---------- ----------------------------------------------------------------
27 resmgr:cpu quantum
38 resmgr:cpu quantum
43 resmgr:cpu quantum
46 resmgr:cpu quantum
113 resmgr:cpu quantum
118 resmgr:cpu quantum
125 resmgr:cpu quantum
140 resmgr:cpu quantum
143 resmgr:cpu quantum
199 resmgr:cpu quantum
205 resmgr:cpu quantum
SID EVENT
---------- ----------------------------------------------------------------
212 resmgr:cpu quantum
220 resmgr:cpu quantum
221 resmgr:cpu quantum
223 resmgr:cpu quantum
238 resmgr:cpu quantum
241 resmgr:cpu quantum
301 resmgr:cpu quantum
313 resmgr:cpu quantum
314 resmgr:cpu quantum
405 resmgr:cpu quantum
410 resmgr:cpu quantum
SID EVENT
---------- ----------------------------------------------------------------
415 resmgr:cpu quantum
435 resmgr:cpu quantum
502 resmgr:cpu quantum
503 resmgr:cpu quantum
509 resmgr:cpu quantum
510 resmgr:cpu quantum
512 resmgr:cpu quantum
521 resmgr:cpu quantum
526 resmgr:cpu quantum
528 resmgr:cpu quantum
532 resmgr:cpu quantum
SID EVENT
---------- ----------------------------------------------------------------
533 enq: TX - row lock contention
589 resmgr:cpu quantum
596 resmgr:cpu quantum
600 resmgr:cpu quantum
609 resmgr:cpu quantum
611 resmgr:cpu quantum
625 resmgr:cpu quantum
635 null event
707 resmgr:cpu quantum
727 resmgr:cpu quantum
731 SQL*Net message to client
44 rows selected.
查询alert日志
Sat Jun 09 06:00:00 2012 Setting Resource Manager plan SCHEDULER[0x310C]:DEFAULT_MAINTENANCE_PLAN via scheduler window Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter Sun Jun 10 02:00:00 2012 Closing Resource Manager plan via scheduler window Clearing Resource Manager plan via parameter Sun Jun 10 06:00:00 2012 Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter Mon Jun 11 02:00:00 2012 Closing Resource Manager plan via scheduler window Clearing Resource Manager plan via parameter Mon Jun 11 22:00:00 2012 Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter Tue Jun 12 02:00:00 2012 Closing scheduler window Closing Resource Manager plan via scheduler window Clearing Resource Manager plan via parameter Tue Jun 12 22:00:00 2012 Setting Resource Manager plan SCHEDULER[0x3108]:DEFAULT_MAINTENANCE_PLAN via scheduler window Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter Wed Jun 13 02:00:00 2012 Closing scheduler window Closing Resource Manager plan via scheduler window Clearing Resource Manager plan via parameter
从这里可以看出来,因为SCHEDULER定时启动和关闭资源管理的DEFAULT_MAINTENANCE_PLAN从而导致在晚上10点到2点Resource Manager plan处于启用状态.上线测试刚好在晚上2点之前,所有当时查询的时候发现很多resmgr:cpu quantum等待是因为Resource Manager plan启用导致(使用SCHEDULER控制其启用和关闭),很多情况下数据库跑的应用比较单一,不是十分的需要启动资源管理.
在11g中关闭方法如下
1. Set the current resource manager plan to null (or another plan that is not restrictive):
alter system set resource_manager_plan='' scope=both;
2. Change the active windows to use the null resource manager plan (or other nonrestrictive plan) using:
execute dbms_scheduler.set_attribute('WEEKNIGHT_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('WEEKEND_WINDOW','RESOURCE_PLAN','');
3. Then, for each window_name (WINDOW_NAME from DBA_SCHEDULER_WINDOWS), run:
execute dbms_scheduler.set_attribute('<window name>','RESOURCE_PLAN','');
SQL> select WINDOW_NAME from DBA_SCHEDULER_WINDOWS;
WINDOW_NAME
------------------------------
MONDAY_WINDOW
TUESDAY_WINDOW
WEDNESDAY_WINDOW
THURSDAY_WINDOW
FRIDAY_WINDOW
SATURDAY_WINDOW
SUNDAY_WINDOW
WEEKNIGHT_WINDOW
WEEKEND_WINDOW
9 rows selected.

加我微信(17813235971)
加我QQ(107644445)

