SQL2000
在同一个服务器上,我先把数据库“MADB”执行“分离数据库”操作,成功。然后我把.MDF和.LDB文件前切到另外的文件夹里。我再执行附加数据库操作时,报错”错误:9004 处理数据库的日志时出错“
请问如何解决?
在同一个服务器上,我先把数据库“MADB”执行“分离数据库”操作,成功。然后我把.MDF和.LDB文件前切到另外的文件夹里。我再执行附加数据库操作时,报错”错误:9004 处理数据库的日志时出错“
请问如何解决?
调试欢乐多
在其它机器上直接附加数据库,不要日志文件!试试!如果不行再按以下方法试试!
在其他机器上,用这个试试:
1.设置数据库为紧急模式
Use Master
GO
sp_configure ‘allow updates‘, 1
reconfigure with override
GO
UPDATE sysdatabases SET status = 32768 where name = ‘DB_SUSPECT‘
GO
2.停掉SQL Server服务:
NET STOP MSSQLSERVER
3.把原始数据库的数据文件DBNAME_DAT.MDF,DBNAME_LOG.LDF移走:
4.启动SQL Server服务:
NET START MSSQLSERVER
5.重新建立一个同名的数据库DB_SUSPECT;
USE master
GO
CREATE DATABASE DB_SUSPECT
ON
( NAME = DBNAME_DAT,
FILENAME = ‘C:‘,
SIZE = 10,
FILEGROWTH = 5 )
LOG ON
( NAME = ‘DBNAME_LOG‘,
FILENAME = ‘g:‘,
SIZE = 5MB,
FILEGROWTH = 5MB )
GO
6.设置数据库运行在单用户的模式:
USE MASTER
GO
ALTER DATABASE DB_SUSPECT SET SINGLE_USER
GO
7.停掉SQL服务:
NET STOP MSSQLSERVER
8.把原来的数据文件再覆盖回来:
9.启动SQL Server服务:
NET START MSSQLSERVER
10.重新设置SQLSERVER的状态:
USE MASTER
GO
EXEC sp_resetstatus “DB_SUSPECT“
11.数据库完整性检测:
DBCC CHECKDB(‘DB_SUSPECT‘)
数据库的两个文件后缀名应该是MDF和LDF,注意看一下。看两个文件是否在同一个文件夹底下。
你这种报错疑似数据库文件出了问题。能说得详细点吗?
分离前显示正在加载。但是在分离前我没对这个数据库做任何操作啊两个文件后缀名是MDF和LDF,两个文件是在同一个文件夹底下
新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数
据库文件,启动数据库,该数据库被设未suspect
然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'
把LDF文件改名,再执行
DBCC REBUILD_LOG ('glsisp', 'd:\data\glsisp_log.ldf' )
恢复数据库紧急模式
update sysdatabases set status = 0 where name = 'glsisp'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override
然后用DBCC CHECKDB ('glsisp')看看有没有错误
如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库