SQL2000数据库945错误怎么恢复?
不小心用dropdatabase命令删除了数据库.现在用其他的数据恢复软件找到了MDF和LOG文件,但附加不了数据库.新建同名数据库然后用找回的文件覆盖后,数据库服务器启...
不小心用drop database 命令删除了数据库.
现在用其他的数据恢复软件找到了MDF和LOG文件,但附加不了数据库.
新建同名数据库然后用找回的文件覆盖后,数据库服务器启动后打开那个数据库提示945错误.
请高手有以教我.
执行
dbcc rebuild_log('xz','C:\Program Files\Microsoft SQL Server\MSSQL\Data\xz_log.ldf')
出现以下提示:
服务器: 消息 5180,级别 22,状态 1,行 1
由于文件 ID 0(位于数据库 'xz' 中)无效,所以未能打开 FCB。
连接中断 展开
现在用其他的数据恢复软件找到了MDF和LOG文件,但附加不了数据库.
新建同名数据库然后用找回的文件覆盖后,数据库服务器启动后打开那个数据库提示945错误.
请高手有以教我.
执行
dbcc rebuild_log('xz','C:\Program Files\Microsoft SQL Server\MSSQL\Data\xz_log.ldf')
出现以下提示:
服务器: 消息 5180,级别 22,状态 1,行 1
由于文件 ID 0(位于数据库 'xz' 中)无效,所以未能打开 FCB。
连接中断 展开
3个回答
展开全部
sql数据库926.945(数据库成质疑状态解决方法)
第一种解决方法:
先删除报错数据库,再新建一同名数据库,然后暂停Service manager(及sql server 服务) ,删除库文件和日志文件再启动Service manager ,使用单数据文件恢复数据库命令恢复数据库。
例:打开sql server/tools/sql server query analyzer 执行下面操作 EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\mssql7\data\pubs.mdf'
说明:‘pubs’为要恢复的数据库名称,‘c:\mssql7\data\pubs.mdf’为要恢复的数据库的库文件的具体路径和文件名称。
再重新启动一下service manager ,看能否正常打开处理后的数据库;如果不可以再使用第二种方案。
第二种解决方法:打开sql server/tools/sql server query analyzer 执行下面操作
USE MASTER
GO
sp_configure 'allow update',1
RECONFIGURE WITH OVERRIDE
GO
UPDATE sysdatabases
set status = 32768
WHERE name = 'db_pos363'
GO
sp_configure 'allow update',0
RECONFIGURE WITH OVERRIDE
GO
说明:'db_pos363'是要修复的数据库名称。
执行完毕再重启一下Service manager打开数据库看是否处于紧急状态!再从另一装有sql 2000的机器上连接报错的数据库,然后再在sql 2000的机器上新建一数据库,再使用sql 2000自带的数据库导入导出功能(在新建的数据库上单击右键/所有任务/数据导入、数据导出)从报错数据库导入数据到新建的数据库中!
在导入选项中注意以下几项:
1, 导入方式选择分‘从源数据库复制表和视图’以及‘从sql server数据库间复制对象和数据’。当选择从源数据库复制表和视图时一定要选择全部表!
2, 当选择‘从sql server数据库间复制对象和数据’时,在‘导入导出向导’对话框中去除‘使用默认选项’的选中标志;再在打开‘选项’对话框,去除以下三项的选中标志。A,复制数据用户和数据库角色;B,复制sql server 登陆;C,复制对象及权限。
3, 在使用‘从sql server数据库间复制对象和数据’时,有时会出现单张表导入失败,这时有时会在导入结束时提示那几张表导入失败有时不提示,如果提示,就再使用‘从源数据库复制表和视图’并选中导入失败的表重新导入一遍;如果不提示就只能在一张张表打开查看了,发现空表后再使用‘从源数据库复制表和视图’导入需要导入的表!
导入成功后再删除sql server 7.0机器上处于紧急状态的数据库,再新建一个同名数据库,建好后再使用sql 2000的数据库导出功能导出到此数据库中,在导出过程中同样要注意导入时的注意事项
-----------------------------------
以上方法摘自网络,如造成不可预知的后果,本人概不负责
第一种解决方法:
先删除报错数据库,再新建一同名数据库,然后暂停Service manager(及sql server 服务) ,删除库文件和日志文件再启动Service manager ,使用单数据文件恢复数据库命令恢复数据库。
例:打开sql server/tools/sql server query analyzer 执行下面操作 EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\mssql7\data\pubs.mdf'
说明:‘pubs’为要恢复的数据库名称,‘c:\mssql7\data\pubs.mdf’为要恢复的数据库的库文件的具体路径和文件名称。
再重新启动一下service manager ,看能否正常打开处理后的数据库;如果不可以再使用第二种方案。
第二种解决方法:打开sql server/tools/sql server query analyzer 执行下面操作
USE MASTER
GO
sp_configure 'allow update',1
RECONFIGURE WITH OVERRIDE
GO
UPDATE sysdatabases
set status = 32768
WHERE name = 'db_pos363'
GO
sp_configure 'allow update',0
RECONFIGURE WITH OVERRIDE
GO
说明:'db_pos363'是要修复的数据库名称。
执行完毕再重启一下Service manager打开数据库看是否处于紧急状态!再从另一装有sql 2000的机器上连接报错的数据库,然后再在sql 2000的机器上新建一数据库,再使用sql 2000自带的数据库导入导出功能(在新建的数据库上单击右键/所有任务/数据导入、数据导出)从报错数据库导入数据到新建的数据库中!
在导入选项中注意以下几项:
1, 导入方式选择分‘从源数据库复制表和视图’以及‘从sql server数据库间复制对象和数据’。当选择从源数据库复制表和视图时一定要选择全部表!
2, 当选择‘从sql server数据库间复制对象和数据’时,在‘导入导出向导’对话框中去除‘使用默认选项’的选中标志;再在打开‘选项’对话框,去除以下三项的选中标志。A,复制数据用户和数据库角色;B,复制sql server 登陆;C,复制对象及权限。
3, 在使用‘从sql server数据库间复制对象和数据’时,有时会出现单张表导入失败,这时有时会在导入结束时提示那几张表导入失败有时不提示,如果提示,就再使用‘从源数据库复制表和视图’并选中导入失败的表重新导入一遍;如果不提示就只能在一张张表打开查看了,发现空表后再使用‘从源数据库复制表和视图’导入需要导入的表!
导入成功后再删除sql server 7.0机器上处于紧急状态的数据库,再新建一个同名数据库,建好后再使用sql 2000的数据库导出功能导出到此数据库中,在导出过程中同样要注意导入时的注意事项
-----------------------------------
以上方法摘自网络,如造成不可预知的后果,本人概不负责
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询