Microsoft SQL Server 2005出现错误:926。

Microsoft SQL Server 2005出现错误:926。,第1张

是不是异常关闭过,提示数据状态已经是SUSPECT,不能正常访问

恢复步骤:

1 停止sqlserver服务,备份msdb数据库

2 将数据库设置为单用户模式

启动sqlserver服务,将数据库设置为单用户模式

ALTER DATABASE ErrorDB SET SINGLE_USER

3 从其他机器拷贝msdb数据库过来,直接替换msdb数据库文件和日志文件

4 对数据库进行检查修复

dbcc checkdb(EIMSDb,REPAIR_ALLOW_DATA_LOSS

dbcc checkdb(EIMSDb,REPAIR_REBUILD)

5 取消单用户模式

exec sp_dboption EIMSDb, N'single', N'false'

数据库被挂起了。你可以试一试用下面的方法恢复:

A.现象:Error 926

 Severity Level 14

 Error Message Text

 Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation

(1) 当你使用Transact_SQL命令 *** 作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果你要使用这个数据库的数据, 必须改正这个错误.

(2) 启动Backup Server, 后备master数据库

1>dump database master to "/usr/sybase/master_dump.19991201"

2>go

(3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1

2>go

1>begin tran

2>go

1>update master..sysdatabases

2>set status = -32768

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

(4.1)如果条件允许,bcp out用户数据或dump用户数据库

(5.1)这时重新启动SQL Server, 再有sa帐号注册到SQL Server.

1>begin tran

2>go

1>update master..sysdatabases

2>set status=0

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

1>sp_configure "allow updates" ,0

2>go

(4) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置这些option..

(5) 运行dbcc命令检查数据库的一致性

isql -Usa -P -i dbcc.sql -o dbcc.out

dbcc.sql文件示例:

dbcc checkdb("pubs2")

go

dbcc checkalloc("pubs2")

go

dbcc checkcatalog("pubs2")

go

grep Msg dbcc.out

6) 后备用户数据库

1>dump database pubs2 on "/usr/sybase/pubs2_dump.19991201"

2>go

B.如何解决数据库被标记为"suspect"的问题之二( 数据库设备损坏时的解决方案 )?

A.现象: 926错误产生的原因有几种。本文讨论当数据库设备初始化失败( 设备文件丢失或文件读写权限不正确)时,导致数据库恢复失败,出现926错误的情况。

(1) 请先恢复数据库设备及读写权限。

(2) 启动Backup Server, 后备master数据库

1>dump database master to "/usr/sybase/master_dump.19991201"

2>go

3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1

2>go

1>begin tran

2>go

1>update master..sysdatabases

2>set status = status - 256

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

(4) 重新启动SQL Server, 运行dbcc命令检查数据库的一致性编辑生成dbcc.sql文件:

dbcc checkdb("pubs2")

go

dbcc checkalloc("pubs2")

go

dbcc checkcatalog("pubs2")

go

isql -Usa -P -i dbcc.sql -o dbcc.out

grep Msg dbcc.out

(5) 后备用户数据库

1>dump database pubs2 on "/usr/sybase/pubs2_dump.19991201"

2>go

打开任务栏上的开始菜单,然后点运行。输入gpedit.msc后回车。,可能权限不够或被禁止,具体 *** 作是打开开始运行->输入gpedit.msc打开组策略编辑器。看看组策略的用户权利指派里,禁止用户访问的几个项目有没有对应的名字。重启服务器。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9851115.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存