只对某个特定的SQL语句开启10046 traceWord格式文档下载.docx
- 文档编号:19659581
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:11
- 大小:21.02KB
只对某个特定的SQL语句开启10046 traceWord格式文档下载.docx
《只对某个特定的SQL语句开启10046 traceWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《只对某个特定的SQL语句开启10046 traceWord格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
评论[3]
星期四十二月04,2014
几种常见的librarycachelock产生的原因
Byzhangqmon
十二月04,2014
常见的librarycachelock产生的原因在《高级OWI与Oracle性能调查》这本书和下面这个文档中有一般性的描述:
TroubleshootingLibraryCache:
Lock,PinandLoadLock(DocID444560.1)
一般可以理解的是altertable或者alterpackage/procedure会以X模式持有librarycachelock,造成阻塞。
但是常见的问题还有以下几种原因:
1)错误的用户名密码:
一般需要通过ASH或者SSD/hanganalyze去获取p3进行namespace分析。
1.
event:
'
librarycachelock'
timewaited:
43min12sec
waitid:
9
p1:
handleaddress'
=0x7000003117dfca0
p2:
lockaddress'
=0x700000310866c80
p3:
100*mode+namespace'
=0x4f0003
*timebetweenwait#1and#2:
0.000164sec
<
=================p3:
=0x4f0003
mode=3
namespace=4f
HEX:
4f=>
DEC:
79
select*FROMV$DB_OBJECT_CACHE;
SQL>
selectdistinctKGLHDNSP,KGLHDNSDfromx$kglob;
KGLHDNSPKGLHDNSD
--------------------------------------------------------------------------
0SQLAREA
4INDEX
1TABLE/PROCEDURE
3TRIGGER
52SCHEDULEREARLIESTSTARTTIME
64EDITION
69DBLINK
2BODY
10QUEUE
79ACCOUNT_STATUS
23RULESET
24RESOURCEMANAGER
73SCHEMA
74DBINSTANCE
51SCHEDULERGLOBALATTRIBUTE
38RULEEVALUATIONCONTEXT
82SQLAREABUILD
75SQLAREASTATS
5CLUSTER
18PUBSUBINTERNALINFORMATION
======79ACCOUNT_STATUS
ACCOUNT_STATUS说明librarycachelock是在account上,可能是用错误的用户名密码登录,或者是当时正有人alteruser(这种几率极低)。
可以通过以下SQL去确认错误的用户名密码登录:
selectusername,
os_username,
userhost,
client_id,
trunc(timestamp),
count(*)failed_logins
fromdba_audit_trail
wherereturncode=1017and--1017isinvalidusername/password
timestamp<
sysdate-7
groupbyusername,os_username,userhost,client_id,trunc(timestamp);
Orrunfollowingsql:
SELECT"
USERNAME"
"
OS_USERNAME"
USERHOST"
EXTENDED_TIMESTAMP"
returncode
FROM"
SYS"
."
DBA_AUDIT_SESSION"
WHEREreturncode!
=0;
当然必须确保audit打开,并且有auditCREATESESSION动作
Toturnonaudit:
Altersystemsetaudit_trail=DBscope=spfile;
restartDB
auditCREATESESSION;
auditALTERUSER;
检查:
showparameteraudit_trail
select*fromDBA_STMT_AUDIT_OPTS;
2)正在执行搜集统计信息,这是大家往往会忽略的,一般会看last_ddl_time,却忽略了last_analyzed,
检查脚本如下:
比如EMP是遇到librarycachelock中的表名:
selectowner,object_name,object_type,to_char(last_ddl_time,'
yyyy-mm-ddhh24:
mi:
ss'
)fromdba_objectswhereobject_name='
EMP'
selecttable_name,to_char(last_analyzed,'
)fromdba_tableswheretable_name='
也需要检查所有dependency的对象,因为oracle对象是相互关联的,一个对象失效会导致一串失效。
)ddl_timefromdba_objectswhereobject_namein
(
selectp.name
fromsys.obj$d,sys.dependency$dep,sys.obj$p
whered.obj#=dep.d_obj#andp.obj#=dep.p_obj#
startwithd.name='
connectbypriordep.p_obj#=dep.d_obj#)
orderbyddl_timedesc;
)fromdba_tableswheretable_namein
orderbylast_analyzeddesc;
比较典型的一个用户实例:
selectto_char(last_analyzed,'
XXXXX'
--2014-11-2516:
52:
50
=============gatheringstatisticsintheissuetime
2014-11-2516:
5216620c34q5c8gf6kumlibrarycachelock
5216643c34q5c8gf6kumlibrarycachelock
======Theissuestartsfrom16:
52whilestatisticswasgatheredat16:
3)错误的语句解析(failedparse)
这是通常很难注意到的一个问题,因为被解析的语句往往在AWR中找不到(因为没有通过parse),要注意查看AWR中的“failedparseelapsedtime”
EventWaitsTime(s)Avgwait(ms)%DBtimeWaitClass
librarycachelock6,714,208363,0935467.14Concurrency
librarycache:
mutexX11,977,88699,050818.31Concurrency
DBCPU
38,971
7.21
dbfilesequentialread350,0692,46570.46UserI/O
logfilesync217,6731,96990.36Commit
StatisticNameTime(s)%ofDBTime
sqlexecuteelapsedtime537,418.0999.37
parsetimeelapsed467,101.9986.37
failedparseelapsedtime460,663.7985.18<
===============failedparseelapsedtimewashigh.Thatmeanstheissuewascausedbyparsefailed.
详细请参考:
HighWaitsfor'
and'
mutexX'
DuetoParseFailuresWhenUsingJDBCResultSet.TYPE_SCROLL_SENSITIVE(DocID1566018.1)
参与此主题的后续讨论,请回复blog,或者访问我们的中文社区,跟帖"
分享:
几种常见的librarycachelock产生的原因"
。
了解更多博文信息请访问Oracle数据库产品技术支持-博客文章索引
评论[0]
星期二十二月02,2014
ASM管理-如何重命名diskgroup
ByJianZhang-Oracleon
十二月02,2014
ASM11.2.0.1版本开始增加了diskgroup重命名的新功能,通过renamedg命令重命名已经创建的diskgroup,重命名前需要先dismountdiskgroup。
如果重命名的diskgroup已经用于存储数据库的数据文件,那么需要手动同步数据文件的位置。
--检查ASMdiskgroup当前名字为DGASMDB
$su-grid
$sqlplus/assysasm
selectGROUP_NUMBER,name,state,type,offline_disks,ALLOCATION_UNIT_SIZE,BLOCK_SIZE,TOTAL_MB,FREE_MBfromv$asm_diskgroup;
GROUP_NUMBERNAME
STATE
TYPE
OFFLINE_DISKSALLOCATION_UNIT_SIZEBLOCK_SIZE
TOTAL_MB
FREE_MB
---------------------------------------------------------------------------------------------------
1
DGASMDB
MOUNTED
EXTERN
0
1048576
4096
3992
1879
--检查数据库当前信息(spfile/controlfile/datafile/redo)
su-oracle
$sqlplus/assysdba
showparameterspfile;
NAME
TYPE
VALUE
-----------------------------------------------------------------------------
spfile
string
+DGASMDB/asmdb/spfileasmdb.ora
showparametercontrol
control_files
string
+DGASMDB/asmdb/controlfile/current.256.856653049
selectnamefromv$datafile;
NAME
--------------------------------------------------------------------------------
+DGASMDB/asmdb/datafile/system.260.856653053
+DGASMDB/asmdb/datafile/sysaux.261.856653059
+DGASMDB/asmdb/datafile/undotbs1.262.856653061
+DGASMDB/asmdb/datafile/users.264.856653075
+DGASMDB/asmdb/datafile/asm_test.dbf
shutdownimmediate;
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
--dismountdiskgroupdgasmdb
$asmcmdumountdgasmdb
--重命令diskgroup,新的diskgroup名为dgasmdb_new
$renamedgphase=bothdgname=dgasmdbnewdgname=dgasmdb_newverbose=true
Parsingparameters..
Parametersineffect:
OldDGname
:
DGASMDB
NewDGname
:
DGASMDB_NEW
Phases
Phase1
Phase2
Discoverystr
(null)
Clean
TRUE
Rawonly
renamedgoperation:
phase=bothdgname=dgasmdbnewdgname=dgasmdb_newverbose=true
Executingphase1
Discoveringthegroup
Performingdiscoverywithstring:
IdentifieddiskASM:
/opt/oracle/extapi/64/asm/orcl/1/libasm.so:
ORCL:
ASMDISK4G1withdisknumber:
0andtimestamp(33006423142494720)
Checkingforhearbeat...
Re-discoveringthegroup
CheckingifthediskgroupismountedorusedbyCSS
Checkingdisknumber:
Generatingconfigurationfile..
Completedphase1
Executingphase2
LookingforORCL:
ASMDISK4G1
Modifyingtheheader
Completedphase2
Terminatingkgfdcontext0x7fa6c2bee0a0
--mount新的diksgroupdgasmdb_new
$asmcmdmountdgasmdb_new
--查看新的diskgroup信息
----------------------------------------------------------------------------------------------------
DGASMDB_NEW
--修改DB初始化参数(/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initasmdb.ora)配置信息
原来:
SPFILE='
+DGASMDB/asmdb/spfileasmdb.ora'
修改后:
+DGASMDB_NEW/asmdb/spfileasmdb.ora'
--启动数据库nomount
sqlplus/assysdba
startupnomount;
--修改control_files参数:
altersystemsetcontrol_files='
+DGASMDB_NEW/asmdb/controlfile/current.256.856653049'
scope=spfile;
startupmount;
showparametercontrol_files
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 只对某个特定的SQL语句开启10046 trace 某个 特定 SQL 语句 开启 10046