注:请将 isszmv9替换成相应软件的数据库名。
此处以专卖9例说明:
方法一
1.停止SQL Server的服务,备份SQL Server安装目录下的\data子目录一个isszmv9_log.ldf(也有可能非此命名),
同时查看磁盘
2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为空间是否有足够的空间; 原来数据库的名字。
3.停止SQL Server
4.把老数据库的MDF文件(isszmv9_data.mdf)替换新数据库的相应的MDF文件,并把LDF文件(isszmv9_log.ldg)删除。
5.重新启动SQL Server服务,然后运行如下命令:
alter database isszmv9 set emergency --将数据库置为紧急模式
go
alter database isszmv9 set single_user with rollback immediate --设置为单用户模式
go
6.停止SQL然后重新启动SQL Server服务,然后运行如下命令(更换日志文件路径地址):
use master
go
alter database isszmv9 Rebuild Log on
(name=isszmv9_log,filename='d:\Program Files\Microsoft SQL Server\MSSQL\Data\isszmv9_log.ldf')--在这里,请输入你的数据库的路径
go
7.停止SQL然后重新启动SQL Server服务,然后运行:
--数据库检查
DBCC CHECKDB ('isszmv9')
Go
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
--数据库修复
dbcc checkdb('isszmv9', repair_allow_data_loss) --如果修复不成功,请多执行几次这个语句
go
--再次数据库检查,如果返回结果中没有了红色的提示文字,
说明修复成功;
DBCC CHECKDB ('isszmv9')
Go
--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'isszmv9', 'single user','FALSE'
go
------------------------
方法二
alter database <DatabaseName> set emergency
go
alter database <DatabaseName> set single_user with rollback immediate
go
use master
go
alter database <DatabaseName> Rebuild Log on
(name=<DatabaseName>_log,filename='c:\sql\logs\<DatabaseName>_log.LDF')
go
use <DatabaseName>
go
dbcc checkdb
go
--此时checkdb有错误才需要做步骤d)
d) 此时数据库应处于emergency状态,创建一个新数据库,通过bcp/bulk insert/DTS/SSIS方式将数据导出到新的数据库.
请注意,这种情况下索引,存储过程,视图等,都需要手工导出来。
此处以专卖9例说明:
方法一
1.停止SQL Server的服务,备份SQL Server安装目录下的\data子目录一个isszmv9_log.ldf(也有可能非此命名),
同时查看磁盘
2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为空间是否有足够的空间; 原来数据库的名字。
3.停止SQL Server
4.把老数据库的MDF文件(isszmv9_data.mdf)替换新数据库的相应的MDF文件,并把LDF文件(isszmv9_log.ldg)删除。
5.重新启动SQL Server服务,然后运行如下命令:
alter database isszmv9 set emergency --将数据库置为紧急模式
go
alter database isszmv9 set single_user with rollback immediate --设置为单用户模式
go
6.停止SQL然后重新启动SQL Server服务,然后运行如下命令(更换日志文件路径地址):
use master
go
alter database isszmv9 Rebuild Log on
(name=isszmv9_log,filename='d:\Program Files\Microsoft SQL Server\MSSQL\Data\isszmv9_log.ldf')--在这里,请输入你的数据库的路径
go
7.停止SQL然后重新启动SQL Server服务,然后运行:
--数据库检查
DBCC CHECKDB ('isszmv9')
Go
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
--数据库修复
dbcc checkdb('isszmv9', repair_allow_data_loss) --如果修复不成功,请多执行几次这个语句
go
--再次数据库检查,如果返回结果中没有了红色的提示文字,
说明修复成功;
DBCC CHECKDB ('isszmv9')
Go
--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'isszmv9', 'single user','FALSE'
go
------------------------
方法二
alter database <DatabaseName> set emergency
go
alter database <DatabaseName> set single_user with rollback immediate
go
use master
go
alter database <DatabaseName> Rebuild Log on
(name=<DatabaseName>_log,filename='c:\sql\logs\<DatabaseName>_log.LDF')
go
use <DatabaseName>
go
dbcc checkdb
go
--此时checkdb有错误才需要做步骤d)
d) 此时数据库应处于emergency状态,创建一个新数据库,通过bcp/bulk insert/DTS/SSIS方式将数据导出到新的数据库.
请注意,这种情况下索引,存储过程,视图等,都需要手工导出来。