MYSQL编程:ORA-00600 [2662]毛病办理历程
你可以配置MySQL运行在微小的嵌入式应用程序中,处理的数据可能不足1Mb??而你也可以用它来处理数Tb的数据。MySQL获得这种可扩展性的路径之一是通过一个人们所熟知的存储过程,这是一个运行在程序之外的微型、预编译程序。毛病|历程|办理ORA-00600毛病办理历程
数据库版本:7.3.2
背景:
客户何处数据库俄然呈现一个current日记文件坏了,招致数据库crash了,然后现场工程师利用_ALLOW_RESETLOGS_CORRUPTION=TRUE这个隐含参数,做了不完整恢复后强即将数据库翻开。但是翻开数据库后发明只能用internal用户毗连出来,其余用户毗连都报错,毛病信息以下:
ORA-00600:internalerrorcode,arguments:,,,,,,[],[]
查询不了任何使用的表,使用也没法利用,因而想实验全库的exp出来然后从头imp出来建库,了局发明exp数据也不乐成,也是报一样的ORA-600的毛病,用户事先数据没有任何的备份过,只能想举措只管翻开数据库,导出数据了。
处置历程:
先反省了600毛病发生的trace文件:
***SESSIONID:(7.15)2004.11.23.23.28.16.824
ksedmp:internalorfatalerror
ORA-00600:internalerrorcode,arguments:,,,,,,[],[]
CurrentSQLstatementforthissession:
SELECT*FROM"WHSB"."SB_BSBF"
失掉的信息无限,只能看到是严峻外部毛病,剩下的都是内存仓库的一堆信息,因而查找了一下这个毛病的详细相干信息。
ORA-600"BlockSCNisaheadofCurrentSCN",申明以后数据库的数据块的SCN早于以后的SCN,次要是和存储在UGA变量中的dependentSCN举行对照,假如以后的SCN小于它,数据库就会发生这个ORA-600的毛病了。这个毛病一共有五个参数,分离代表分歧的寄义,
ORA-600
ArgCurrentSCNWRAP
ArgCurrentSCNBASE
ArgdependentSCNWRAP
ArgdependentSCNBASE
ArgWherepresentthisistheDBAwherethedependentSCNcamefrom.
我们剖析毛病中的提醒,它的参数b=431267754,d=431272752,标明以后的SCN的确是小于dependentSCN,以是发生了这个600的毛病。
经由过程查阅文档,发明这个毛病的发生缘故原由次要有以下几条:
l利用隐含参数_ALLOW_RESETLOGS_CORRUPTION后resetlogs翻开数据库
l硬件毛病引发数据库没法写把持文件和重做日记文件
l毛病的部分恢单数据库
l恢复了把持文件可是没有利用recoverdatabaseusingbackupcontrolfile举行恢复
l数据库crash后设置了_DISABLE_LOGGING隐含参数
l在并行服务器情况中DLM存在成绩
细心对照了一下,发明成绩多是因为第一条发生的,因为设置了_ALLOW_RESETLOGS_CORRUPTION这个隐含参数后,固然强迫性的翻开数据库,可是数据库自己存在了corruption,仍旧存在严峻的成绩。
因而想到利用ADJUST_SCN事务来调剂以后的SCN,使其年夜于dependentSCN,然后包管数据库能够全库的导出,然后重修数据库导进数据。
用internal用户上岸数据库后,毗连其余用户,仍是失利报错,实行:
altersessionseteventsIMMEDIATEtracenameADJUST_SCNlevel1;
然后实验毗连其余用户,毗连乐成。
最初exp全部数据库,重修数据库后导进数据,全部数据库恢复乐成!
经由过程这个实例,我们能够看到,只管的不要往利用那些隐含参数,这些参数是oracle所不保举利用的,也不是全能的!假如利用了大概会存在一些遗留的成绩,假如非要利用,倡议利用后必定要exp/imp重修创建数据库。
MySQL数据库归MySQLAB公司所有,但是这个软件是开源的,有一个MySQL学习教程可以免费下载。稍俱常识的新入门者都可以轻松实现在一个常见硬件上安装和配置MySQL。 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。 SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。 分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 总感觉自己还是不会SQL 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
页:
[1]