本文已参与「新人创作礼」活动,一起开启掘金创作之路。
由于服务器磁盘空间有限,SQL Server 数据库服务器端产生的事务日志可能出现爆满的情况,导致客户端产生的数据无法写入服务器数据库,进而可能引发宕机事件,针对此情况应及时扩充磁盘空间或做好数据的备份迁移工作。
第一步:选中需要收缩的数据库,然后右键数据库属性,找到选项,将恢复模式改成简单;
第二步:右键数据库,“任务”->“收缩”->“文件” ;
第三步:收缩数据库日志,选择文件类型“日志”,选择收缩操作“将文件收缩到” 最小(后有提示),点击“确定”;
第四步:收缩完成后,重复第一步及第二步**更改数据库恢复模式,将模式从“简单”改为“完整”。******
注意:如若磁盘空间已满,无法将数据库事务日志文件进行收缩操作,可采取先分离出部分暂未使用的数据库,然后将分离出的MDF文件及LDF文件拷贝到其他磁盘空间充足的盘符,进行释放当前磁盘空间,待日志收缩成功释放空间后,再次将分离出的数据库文件进行附加操作即可。
---------------------------------------华丽的分隔符----------------------------------------- ---------------------------------------华丽的分隔符----------------------------------------- ---------------------------------------华丽的分隔符-----------------------------------------
除了上面的可视化操作外,直接通过TSQL脚本执行更为方便,代码如下:
USE[master]
GO
ALTER DATABASE '数据库名称(XXX)' SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE '数据库名称(XXX)' SET RECOVERY SIMPLE --简单模式
GO
USE Win10DG
GO
DBCC SHRINKFILE (N'XXX_log' , 2, TRUNCATEONLY) --设置压缩后的日志大小为2M,可以自行指定
GO
USE[master]
GO
ALTER DATABASE '数据库名称(XXX)' SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE '数据库名称(XXX)' SET RECOVERY FULL --还原为完全模式
GO