数据库置疑
? 流通行业 ? 常见问题 ? 数据库置疑(Suspend)解决方法
--------------------------------------------------------------------------------
方法一:
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是否恢复。
--------------------------------------------------------------------------------
方法二
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子目录下故障数据库的两个文件,一个数据文件dbname_data.mdf,一个dbname_log.ldf(也有可能非此命名),同时查看磁盘空间是否有足够的空间;
2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为原来数据库的名字。 3.停止SQL Server
4.把老数据库的MDF文件(dbname_data.mdf)替换新数据库的相应的MDF文件,并把LDF文件(dbname_log.ldg)删除。
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) 检查数据库的完整性
修复数库:
这类故障是一般是由于磁盘读写问题造成的。
* 下面的语句是修复总部数据库的SQL,如需要修复分部的数据库,请将 'hbposv5' 改为 'hbposv5_branch'
* 超市之星系统直接执行
* 快捷通、进销存系列,请将'hbposv5'改为'isd2001v3',如果是分部,改为'isd2001v3_branch' * 商务通系列,请将'hbposv5'改为'isd2001v4',如果是分部,改为'isd2001v4_branch' ******************************************************************/
--请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线
USE master
Go
--单用户模式
EXEC sp_dboption 'hbposv5', 'single user', 'TRUE' go
--数据库检查
DBCC CHECKDB ('hbposv5')
Go
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
--数据库修复
DBCC CHECKDB ('hbposv5',repair_rebuild) Go
--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;
DBCC CHECKDB ('hbposv5')
Go
--否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。
--如果还有错误未修复,请把这些信息以文字的方式发给我们
--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'hbposv5', 'single user','FALSE' go