如果ds_shop_log占用空间过大运行如下代码
运行SMSS 在ds_shop数据库新建查询语句
假设数据库名称是 ds_shop
alter database ds_shop set emergency
use master
exec sp_dboption ds_shop, N’single’, N’true’
dbcc checkdb(‘ds_shop’,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(‘ds_shop’,REPAIR_REBUILD)
exec sp_dboption ‘ds_shop’, N’single’, N’false’
exec sp_resetstatus ‘ds_shop’
exec sp_dboption ‘ds_shop’,’single user’,’false’
SQL2012,2016,2019
alter database ds_shop set emergency
use master
ALTER DATABASE ds_shop SET SINGLE_USER WITH ROLLBACK IMMEDIATE
dbcc checkdb(‘ds_shop’,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(‘ds_shop’,REPAIR_REBUILD)
ALTER DATABASE ds_shop SET MULTI_USER WITH ROLLBACK IMMEDIATE
exec sp_resetstatus ‘ds_shop’
ALTER DATABASE ds_shop SET MULTI_USER WITH ROLLBACK IMMEDIATE
2019
先执行
alter database ds_shop set emergency
use master
ALTER DATABASE ds_shop SET SINGLE_USER WITH ROLLBACK IMMEDIATE
然后删掉 执行
dbcc checkdb(‘ds_shop’,REPAIR_ALLOW_DATA_LOSS)
清空,执行这句,等结果
dbcc checkdb(‘ds_shop’,REPAIR_REBUILD)
提示修复成功了再清空, 执行最后的
ALTER DATABASE ds_shop SET MULTI_USER WITH ROLLBACK IMMEDIATE
exec sp_resetstatus ‘ds_shop’
ALTER DATABASE ds_shop SET MULTI_USER WITH ROLLBACK IMMEDIATE
SQL 2005日志文件损坏后应当如何恢复
1、在MSSE停止数据库服务。
2、将需要恢复的数据库文件移动到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
5、新建同名的数据库 ds_shop
6、停止数据库服务。
7、用第2步中备份的 ds_shop.mdf 文件覆盖新数据库的同名文件。 位置 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\,删除 ds_shop_log.LDF
8、启动数据库服务。
9、打开数据库,在master数据库上右键新建查询
10、运行下面的命令就可以恢复数据库: 新log文件会在老数据文件位置自动生成 D:\中讯商业管理\DensenAlmacen\Data
如果log满了 然后又执行了大招 需要执行这个2019版本:
— 设置为简单恢复模式,释放日志
ALTER DATABASE [ds_shop] SET RECOVERY SIMPLE;
GO
— 立即收缩日志文件
DBCC SHRINKFILE (ds_shop_log, 1);
GO
— 切回多用户模式(如果之前是单用户)
ALTER DATABASE [ds_shop] SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO
执行语句 等待
数据库右键→属性→选项→恢复模式改成简单
数据库右键→任务→收缩→文件→文件类型改成日志