免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3093 | 回复: 3
打印 上一主题 下一主题

数据库无法启动 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-04 12:27 |只看该作者 |倒序浏览
可能与网络突然中断有关,系统重启后名为‘RSPOS’的数据库无法进入,错误日志如下,请各位大侠出手,解答下一步如何处理。谢谢!
00001:2009/05/04 10:20:20.17 server  Database 'sybsystemprocs' is now online.
00:00000:00002:2009/05/04 10:20:20.18 kernel  network name 192.168.4.8, type ether, port 5000, filter NONE
00:00000:00001:2009/05/04 10:20:20.28 server  Recovering database 'rspos'.
00:00000:00001:2009/05/04 10:20:20.82 server  Recovering last page of log (was 4352591, now 4352590)
00:00000:00001:2009/05/04 10:21:55.09 server  Redo pass: 33668 records done (5%); 634341 records left.
00:00000:00001:2009/05/04 10:22:18.35 server  Redo pass: 67068 records done (10%); 600941 records left.
00:00000:00001:2009/05/04 10:22:47.71 server  Redo pass: 100468 records done (15%); 567541 records left.
00:00000:00001:2009/05/04 10:23:11.12 server  Redo pass: 133868 records done (20%); 534141 records left.
00:00000:00001:2009/05/04 10:23:35.26 server  Redo pass: 167494 records done (25%); 500515 records left.
00:00000:00001:2009/05/04 10:23:38.10 server  Starting diagnostics for read failure:
00:00000:00001:2009/05/04 10:23:38.10 server  Device Information:
                                 Device number = 10
                                 Phyname = D:\tydata\rsposdata4.dat
00:00000:00001:2009/05/04 10:23:38.10 server  Buffer Information:
                                 Buf addr = 0x29963B00, Mass addr = 0x29963B00
                                 Buf pageno = 7140726, Mass pageno = 7140726, dbid = 4
00:00000:00001:2009/05/04 10:23:38.10 server  
                                 Buf virtpg = 168097142, Mass virtpg = 168097142
                                 Buf stat = 0x1, Mass stat = 0x1008
                                 Mass keep = 1, Mass awaited = 0
00:00000:00001:2009/05/04 10:23:38.10 server  Page Information from first read attempt: Page read from disk ppageno = 7140726, pobjid = 508525814, pindid = 4 pnextpg = 1848252, pprevpg = 8634980 plevel = 0, pstat = 0x802 pts_hi = 1, pts_lo = -402337036
00:00000:00001:2009/05/04 10:23:38.10 server  SDES Information:
                                 dbid = 4, objid = 1, scur.pageid = 7140726
                                 sstat = 0x4, sstat2 = 0x0
                                 suid = 1, cacheid = 0
00:00000:00001:2009/05/04 10:23:38.10 server  PSS Information:
                                 pstat = 0x1000, pcurdb = 4, pspid = 1
                                 p2stat = 0x110, p3stat = 0x1000081e
                                 plasterror = 0, preverror = 0, pattention = 0
00:00000:00001:2009/05/04 10:23:38.10 server  End diagnostics for read failure:
00:00000:00001:2009/05/04 10:23:38.12 server  Error: 12315, Severity: 21, State: 1
00:00000:00001:2009/05/04 10:23:38.12 server  Corrupt page, Internal error: Mismatch between tail timestamp '93a1' and the low two bytes of timestamp in the page header 'd2f4' while accessing page '7140726' of object '1' in database '4'. Please contact Sybase Technical Support.
00:00000:00001:2009/05/04 10:23:38.15 server  Error: 3414, Severity: 21, State: 1
00:00000:00001:2009/05/04 10:23:38.15 server  Database 'rspos' (dbid 4): Recovery failed. Check the SQL Server errorlog for further information as to the cause.
00:00000:00001:2009/05/04 10:23:47.54 server  Error: 921, Severity: 14, State: 1
00:00000:00001:2009/05/04 10:23:47.54 server  Database 'rspos' has not been recovered yet - please wait and try again.

[ 本帖最后由 52husky 于 2009-5-4 12:30 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-05-04 12:59 |只看该作者

回复 #1 52husky 的帖子

你按照下面的方法作一下,看是否能够正常启动起来。
1. 使用 install目录下 的 RUN 文件启动数据库服务器(如果服务已经启动,可跳过此步骤)
2. 使用isql连接进入数据库服务器
   isql -Usa -Ppasswd -S server_name
   1>;sp_configure 'allow update',1
   2>;go

   1>;use master
   2>;go
   1>;sp_helpdb DB_NAME
   2>;
   记下此处查询出的数据库选项 (例如:select into/bulkcopy等)
   
   1>;begin tran
   2>;go
   1>;update sysdatabases set status = -32768 where name = 'DB_NAME'   (注意:一定要加上数据库名称条件,切记,最好使用事务)
   2>;go
如果显示 (1 row affected),commit,否则 rollback
   1>;commit   
   2>;go

   1>;shutdown with nowait
   2>;go

3. 重新重复步骤1,启动数据库服务器,注意观察日志中是否显示 在 recovery database DB_NAME 时使用bypass状态,如果正常,这种情况下,数据库服务器应该能够完全启动

4. 使用isql连接进入数据库服务器
   isql -Usa -Ppasswd -S server_name
   1>;use master
   2>;go
   1>;dump tran DB_NAME with no_log ( dbcc rebuild_log(DBNAME,1,1) )
   2>;go

   1>;update sysdatabases set status = 0 where name = 'DB_NAME'   (注意:一定要加上数据库名称条件,切记)
   2>;go
   
   1>;shutdown with nowait
   2>;go

5. 重新重复步骤1,启动数据库服务器,注意观察日志中是否显示 recovery database DB_NAME 成功,DB_NAME数据库online

6. 恢复数据库选项
使用isql连接进入数据库服务器
   isql -Usa -Ppasswd -S server_name
   1>;use master
   2>;go
   1>;sp_dboption DB_NAME,'select into',true
   2>;go
   1>;use DB_NAME
   2>;go
   1>;checkpoint
   2>;go

如果有其他选项,依法处理

先试步骤四中的 dump tran with no_log 如果不行就用后面括号中那个命令 dbcc rebuild_log(DBNAME,1,1)
dbcc rebuild_log,如果还不行,只有恢复备份了

如果没有备份,只能在重新做1到3步骤,然后使用bcp将数据库中所有数据备份出来,然后重新创建数据库了。
强行截断日志的方法能够清除系统中日志的错误,让数据库正常online,但也有可能造成数据库中用户表甚至系统表的损坏,所以建议在数据库正常online后进行全库的DBCC检查(比如dbcc checkdb、dbcc checkalloc等)以确保正常运行。

论坛徽章:
33
ChinaUnix元老
日期:2018-07-04 15:10:362015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:1215-16赛季CBA联赛之北京
日期:2016-01-15 10:03:5915-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:4915-16赛季CBA联赛之广夏
日期:2018-07-04 15:33:21C
日期:2016-10-25 16:12:142017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之同曦
日期:2017-02-22 22:41:10
3 [报告]
发表于 2009-05-04 20:17 |只看该作者
Corrupt page, Internal error: Mismatch between tail timestamp '93a1' and the low two bytes of timestamp in the page header 'd2f4' while accessing page '7140726' of object '1' in database '4'. Please contact Sybase Technical Support.

从这上面看,是你的库中的对象损坏了, 先做DBCC看一下,报些什么错,然后针对性的处理,

论坛徽章:
0
4 [报告]
发表于 2009-05-05 14:29 |只看该作者
timestamp错误,应该是log有问题了,rebuild log应该可以解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP