sqlserver2000 数据库置疑的4种解决方法
发布时间:2020-12-12 15:30:40 所属栏目:MsSql教程 来源:网络整理
导读:? 方法一: 1.停止SQL Server的服务,然后备份MS SQL Server的安装目录下的/data子目录. 注意:整个目录目录备份或只备份data目录下置疑数据库的两个文件,一个数据文件dbname_data.mdf,一个dbname_log.ldf(也有可能非此命名),同时查看磁盘空间是否有足够的空间
? 方法一:1.停止SQL Server的服务,然后备份MS SQL Server的安装目录下的/data子目录. 注意:整个目录目录备份或只备份data目录下置疑数据库的两个文件,一个数据文件dbname_data.mdf,一个dbname_log.ldf(也有可能非此命名),同时查看磁盘空间是否有足够的空间; 2.启用SQL Server的服务。打开查询分析器(Query Analyzer)的工具,以用户sa登录; 3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5), use master go sp_resetstatus dbname go 4.运行完毕后退出此工具,停止SQL Server的服务. 5.在MS SQL Server的安装目录下,有一个/data子目录,其中存放数据文件,包括SQL Server和本系统的数据文件,删除置疑数据库的日志文件dbname_log.ldf(也有可能非此命名). 6.启动SQL Server的服务. 7.打开企业管理器(Enterprise Manager)的工具,查看数据库(database)节点下的dbname是否恢复。 注:请将 dbname 换成你的数据库名称. 方法二 1.查看磁盘空间,保证存放数据库的磁盘有足够的剩余空间; 2.打开SQL Server的查询分析器(Query Analyzer),以用户 sa 登录; 3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5),运行完毕后退出此工具. use master go sp_resetstatus dbname go 4.停止SQL Server 的服务,再重新启动SQL Server 服务. 5.打开SQL Server 的查询分析器(Query Analyzer),以用户 sa 登录。输入如下指令后点工具栏上的绿色箭头运行,运行完毕后退出此工具: use master go DBCC DBRECOVER (dbname) go 6.打开 SQL Server 的企业管理器(Enterprise Manager),查看 database下的dbname是否恢复。 注:请将 dbname 替换为你的数据库名称. 方法三 如上述两种方法都不能恢复,或出现故障后在SQL Server的企业管理器中的数据库节点下看不到你的数据库,表示你的数据库出现较大的错误或故障,请按下述步骤操作尝试恢复. 1.停止SQL Server 服务. 2.备份数据库文件 在MS SQL Server的安装目录下,有一个/data子目录,其中存放数据文件,包括SQL Server和本系统的数据文件,把数据文件dbname_data.mdf和日志文件dbname_log.ldf备份起来. 3.启动SQL Server服务,打开企业管理器,删除数据库,通常/data子目录下的数据文件dbname_data.mdf和日志文件dbname_log.ldf都会被删除,把备份好的数据文件和日志文件再复制一份到/data子目录下. 4.打开查询分析器,执行如下SQL语句 use master go EXEC sp_attach_db @dbname = dbname,? @filename1 = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/dbname_data.mdf',? @filename2 = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/dbname_log.ldf' go 5.再在企业管理器中查看你的数据库是否恢复. 注:请把 dbname 换为你的数据库名称 @filename1 是数据文件的路径地址. @filename2 是日志文件的路径地址. 方法四: 如果还是不能恢复:如方法三执行时,查询分析器返回错误信息,请尝试以下步聚恢复数据库. 1.停止SQL Server的服务,备份SQL Server安装目录下的/data子目录下故障数据库的两个文件,同时查看磁盘空间是否有足够的空间;? 2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为原来数据库的名字。 3.停止SQL Server 4.把老数据库的MDF文件(dbname_data.mdf)替换新数据库的相应的MDF文件,并把LDF文件(dbname_log.ldf)删除。 5.重新启动SQL Server服务,然后运行如下命令: Use Master go sp_configure 'allow updates',1 reconfigure with override go begin tran update sysdatabases set status = 32768 where name = 'db_name' --Verify one row is updated before committing commit tran go 6.停止SQL然后重新启动SQL Server服务,然后运行如下命令(更换日志文件路径地址): use master go DBCC TRACEON(3604) DBCC REBUILD_LOG('db_name','c:/Program Files/Microsoft SQL Server/MSSQL/Data/dbname_log.ldf') go 7.停止SQL然后重新启动SQL Server服务,然后运行: use master go update sysdatabases set status = 8 where name = 'db_name' go sp_configure 'allow updates',0 reconfigure with override go 8.运行dbcc checkdb(db_name) 检查数据库的完整性 修复数库 注:都要把 dbname 替换成真实的数据库名字。 文章来源:http://bbs.sunwy.com/viewthread.php?tid=31372 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |