Archive for 十月, 2008

临时表错误收集了统计信息导致TEMP暴满

星期二, 十月 28th, 2008

今天,收到客户的请求说,一个关于风控用于财务的汇总完成不了,在运行过程中,一段时间后,就暴临时表空间不足,然后还暴了死锁的错误。
登陆到系统上后,看了下alert.log,从17号以后一直有这个报错,然后看了下临时表空间有130G,按理来说130G的临时表空间已经够大了,想着重新建个临时表空间看下,是不是回收没完成的原因,结果还是不行。后来跟踪SQL,发现在执行一下SQL时卡住

insert into zzye(dwbm, kmbm, kjnd, kjqj, bzbm, qcye1, qcye2, qcye3, jfse1, jfse2, jfse3, dfse1, dfse2, dfse3, qcquantity, jquantity, dquantity)
select rtrim(b.pk_corp) as dwbm, rtrim(k.subjcode) as kmbm, rtrim(b.year) as kjnd, rtrim(b.period) as kjqj,
(case c.bzbf when ‘RMB’ then ‘1′ when ‘USD’ then ‘2′ when ‘HKD’ then ‘3′ else ‘ ‘ end) as bzbm,
(case k.balanorient when 1 then 1 else -1 end)*(sum(t.debitamount)-sum(t.creditamount)) as qcye1,
(case k.balanorient when 1 then 1 else -1 end)*(sum(t.fracdebitamount)-sum(t.fraccreditamount)) as qcye2,
(case k.balanorient when 1 then 1 else -1 end)*(sum(t.localdebitamount)-sum(t.localcreditamount)) as qcye3,
sum(b.debitamount) as jfse1, sum(b.fracdebitamount) as jfse2, sum(b.localdebitamount) as jfse3,
sum(b.creditamount) as dfse1, sum(b.fraccreditamount) as dfse2, sum(b.localcreditamount) as dfse3,
0 as qcquantity, 0 as jquantity, 0 as dquantity
from t_tmpbalance_tmp b, t_tmpye_tmp t, nc23_accsubj k, zzbz c
where oc_date >= v_begin_yearmonth*100
and ((v_hisflag <> 1) or (oc_date <= v_end_yearmonth*100+31))
and trim(b.pk_corp) = trim(t.pk_corp)
and b.year = t.year
and b.period = t.period
and trim(b.pk_accsubj) = trim(t.pk_accsubj)
and trim(b.pk_currtype) = trim(t.pk_currtype)
and trim(c.dwbm) = rtrim(b.pk_corp)
and trim(c.bzmc) = trim(b.pk_currtype)
and c.bzbf in (’RMB’, ‘USD’, ‘HKD’)
and rtrim(b.pk_corp) = rtrim(k.pk_corp)
and rtrim(b.pk_accsubj) = rtrim(k.pk_accsubj)
group by b.pk_corp, k.subjcode, b.year, b.period, c.bzbf, k.balanorient;

棉花在此时提示了下,不是临时表的统计信息收集错了,去数据库查了下,确认在17号有人收集了统计信息,num_rows都是0,这个是导致临时表空间爆满的原因,找到问题了。解决很简单,删除统计信息就OK了,2分钟数据汇总就完成了

ora-600[kjdrisRMnovalid:msgRMno] [4294967295]

星期二, 十月 28th, 2008

Errors in file /u01/app/oracle/admin/dbrac/bdump/dbrac2_lms0_30091.trc:
ORA-00600: internal error code, arguments: [kjdrisRMnovalid:msgRMno], [4294967295], [0], [0], [], [], [], []
Sun Oct 26 11:32:14 2008
Errors in file /u01/app/oracle/admin/dbrac/bdump/dbrac2_lms0_30091.trc:
ORA-00600: internal error code, arguments: [kjdrisRMnovalid:msgRMno], [4294967295], [0], [0], [], [], [], []
Sun Oct 26 11:32:14 2008
Trace dumping is performing id=[cdmp_20081026113214]
Sun Oct 26 11:32:15 2008
Trace dumping is performing id=[cdmp_20081026113215]
Sun Oct 26 11:32:21 2008
Errors in file /u01/app/oracle/admin/dbrac/bdump/dbrac2_lms0_30091.trc:
ORA-00600: internal error code, arguments: [kjdrisRMnovalid:msgRMno], [4294967295], [0], [0], [], [], [], []
Sun Oct 26 11:32:21 2008
LMS0: terminating instance due to error 484
Sun Oct 26 11:32:21 2008
System state dump is made for local instance
System State dumped to trace file /u01/app/oracle/admin/dbrac/bdump/dbrac2_diag_30083.trc
Sun Oct 26 11:32:22 2008
Trace dumping is performing id=[cdmp_20081026113221]

今天在客户这做数据库参数修改时,因为关闭了DRM出现以上报错,然后在每个节点启动数据时,只能有一个节点可以启动,另一个节点启动报错
ORA-01105后面的信息是什么?
BOSON 11:54:25
mount is incompatible with monts by other inswtances

BOSON 11:55:02
ora-01606 gc_files_to_locks not identical to that of another mountde instance

然后alert里有最上边的报错信息,报错显示有资源冲突,最后恢复了DRM参数,可以两个节点都启动

PK1001 CRS-0215

星期二, 十月 28th, 2008

最近在客户那遇到一个问题就是用srvctl start database -d dbrac 时,就是无法启动,关闭没啥问题,用crs debug了半天也没啥收获,最后删除重建ORACLE数据服务和实例服务就OK了
[oracle@dbrac1 ~]$ crs_start ora.dbrac.dbrac1.inst
Attempting to start `ora.dbrac.dbrac1.inst` on member `dbrac1`
Start of `ora.dbrac.dbrac1.inst` on member `dbrac1` failed.
dbrac2 : CRS-1019: Resource ora.dbrac.dbrac1.inst (application) cannot run on dbrac2

CRS-0215: 无法启动资源 ‘ora.dbrac.dbrac1.inst’。

srvctl remove
srvctl add

强烈推荐的文章-100分

星期一, 十月 20th, 2008

http://new.qzone.qq.com/859358?ADUIN=859358&ADSESSION=1224461795&ADTAG=CLIENT.QQ.1855_QQUrlReportBlankZone.0

看到它,想到童年是多么的开心,多么的快乐,好怀念啊!

人在江湖走,怎能不湿鞋

星期五, 十月 17th, 2008

来到杭州后,就很少坐公交,在北京的时候也知道南方治安差,但是在杭州还是没想到的,听到的都是深圳广州,
昨天下午坐公交回家准备去买明天去上海的火车票,因为没零钱,所以买了本书,搞了几个零钱坐车,上了K151之后,人不多,我坐到最后一排,看起我买的书,快到家的时候上来几个人,一个人要坐我旁边,其实前边很多空位,我就把电脑包,放在腿上继续看书了,过了一站,我就下车了,然后回到家,准备和朋友去买车票,刚出门不远,我朋友说,你裤子怎么了?我一摸,完了,被偷了,一看裤子被割了个口子,钱包还在,里边的900RMB没咯,脑袋里开始想啥时候呢?
我坐在车上,还被割了,我居然没感觉到,不过杭州的路挺颠这也有可能,后来想到坐我旁边那哥们,当时还有坐我对面2个,他们应该是一伙的,那哥们技术也够厉害的,只拿走我钱包里的钱,没敢拿钱包,一拿我肯定感觉到了,心里一阵郁闷,在北京生活了6年,也没丢过,并且平常我坐车都很小心的,还是被偷了。不过现在说啥也晚了,在庆幸下,我的卡和身份证啥的还在,总算有点安慰,要不就麻烦死了。经过此次教训:
总结一下几条,请大家注意:
1 出门带钱包,不要带太多现金,一两百块够了
2 能带大包的,带大包,把钱包放里边,不要揣在屁股兜里。
3 坐公交时,如果车上人少,还有人硬是坐你旁边,要注意下。

最后上一张照片: