分手快乐 发表于 2015-1-16 22:38:07

MSSQL编程:使用errorstack event办理成绩

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。error|办理|成绩
明天现场职员呈报说exp的时分报权限不敷的毛病。
是用以后用户作的用户级其余exp,按理说应当没有甚么权限的成绩。
依照现场的情形作了测试,公然重现了成绩。

d:Temp>expparfile=exp.par

Export:Release9.2.0.5.0-ProductiononTueDec2122:27:132004

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.


EXP-00008:ORACLEerror1031encountered
ORA-01031:insufficientprivileges
EXP-00000:Exportterminatedunsuccessfully

个中exp.par的内容以下:
userid=scott/tiger
file=.cott.dmp
indexes=y
grants=y
rows=y
constraints=y
owner=scott
direct=n
compress=n
feedback=10000
resumable=y
resumable_timeout=7200
log=.export.log

没有发明甚么成绩,因而想作一个trace,因而利用errorstackevent,因为exp是在命令行中间接实行的,以是只能对全部数据库体系作trace,因为只是想晓得ORA-01031毛病的产生缘故原由,以是用以下语句:
altersystemsetevents1031tracenameerrorstacklevel3;

然后从头运转exp,仍旧报错,这时候候在udump目次中天生了trace文件,反省文件内容,发明:
***SESSIONID:(15.210)2004-12-2122:22:36.704
***2004-12-2122:22:36.704
ksedmp:internalorfatalerror
ORA-01031:insufficientprivileges
CurrentSQLstatementforthissession:
ALTERSESSIONENABLERESUMABLETIMEOUT7200

本来成绩出在ENABLERESUMABLE部分,这是9i的新特征,用于在呈现空间不敷的成绩时,挂起全部操纵以守候操纵职员办理空间成绩。

只需确认了成绩地点,就很好办理了,实在假如具体地看过adminitrator文档,也就不会犯这个毛病,文档内里EnablingandDisablingResumableSpaceAllocation部分很分明地写着:假如要利用resumbale特征,那末必需有resumable体系权限。

反省现场用户的权限,发明只要connect和resource权限。因而:
grantresumabletousername;

固然假如象一些使用内里那样,用户一直是具有DBA脚色的话,那末永久也不会产生这个毛病,由于DBA脚色原本就具有esumable体系权限。不外为了平安起见,我们的使用顶用户都不会具有DBA权限。

办理成绩的办法很复杂,没甚么好说的,本文想先容的也是发明成绩的手腕,也就是使用setevents的办法。这个办法在我们对一个毛病感应稀里糊涂的时分常常会成为指路明灯。

作者简介:

张乐奕,网名kamus
曾任ITPUBOracle认证版版主,现任itpubOracle办理版版主。
现任职于北京某年夜型软件公司,首席DBA,次要卖力证券行业的天下十数处中心买卖体系数据库办理及保护事情。
热切存眷Oracle手艺和别的相干手艺,出没于各年夜数据库手艺论坛,今朝是中国最年夜的Oracle手艺论坛www.itpub.net的数据库办理版版主。

浏览更多手艺文章和漫笔能够登录我的团体blog。
http://blog.dbform.com。



我们只需要把binlog文件反向执行,每个操作都执行逆操作即可。当然也不是所有的event都反转。Table_mapevent必须还是在Rows_log_event每个操作之前。

精灵巫婆 发表于 2015-1-19 19:49:56

我们学到了什么?思考问题的时候从表的角度来思考问

分手快乐 发表于 2015-1-28 10:10:39

多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。

变相怪杰 发表于 2015-2-5 20:32:00

只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。

飘飘悠悠 发表于 2015-2-13 13:16:16

varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。

仓酷云 发表于 2015-3-3 21:50:54

也可谈一下你是怎么优化存储过程的?

若天明 发表于 2015-3-11 14:08:33

数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。

admin 发表于 2015-3-18 22:20:41

varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。

灵魂腐蚀 发表于 2015-3-26 19:48:25

语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
页: [1]
查看完整版本: MSSQL编程:使用errorstack event办理成绩