SQL Server 日志紧缩
两种方式:1.通过图形界面进行日志紧缩
第一步:右键数据库属性
https://i-blog.csdnimg.cn/blog_migrate/6738876ab42f9a877ca412c42c38abc0.png
第二步:更改数据库恢复模式,将模式改为Simple。
https://i-blog.csdnimg.cn/blog_migrate/3e9844f05f522284edbf956cb24e3324.png
第三步:右键数据库,Tasks→Shrink→Files 。
https://i-blog.csdnimg.cn/blog_migrate/8b2705f2c6a5dcbb44eee22aad1183b5.png第四步:紧缩数据库日志,选择文件类型Log,并在Shrink action 中将文件紧缩到给出的Minimum 值,这里的数据库因为是新建的没有数据,以是提供的Minimum 值为0MB,可以将红框3中的数字修改为0。
https://i-blog.csdnimg.cn/blog_migrate/677042ea1f9e3d1fc37f5aa337edf0be.png
File type:选择所要紧缩的是“数据库文件”还是“日志文件”。
Currebtly allocated space:数据库为该文件分配的大小,就是在磁盘上看到的文件大小。
Available free space:就是“当前分配的空间” 减去“实际使用的空间”。
Shrink action:
① Release unused space:将该文件中未使用的空间开释出来,数据在文件中不移动;
② Reorganize pages before releasing unused space:此选项可以将文件紧缩到“指定大小”,并将数据重新构造。其最小值为数据库“实际使用的空间”;
③ Empty file by migrating the data to other files in the same filegroup:该选项很少用。
上述操作也可以使用T-SQL替代:
DBCC ShrinkFile(‘数据库名’, targetsize); /* 紧缩数据库文件 */
DBCC ShrinkFile(‘数据库名_log’, targetsize); /* 紧缩日志文件 */
Targetsize:单位为兆,必须为整数,DBCC SHRINKFILE 尝试将文件紧缩到指定大小。
DBCC SHRINKFILE 不会将文件紧缩到小于“实际使用的空间”大小,例如“分配空间”为10M,“实际使用空间”为6M,当制定targetsize为1时,则将该文件紧缩到6M,不会将文件紧缩到1M。
用本例中的数据库替换后如下:
DBCC ShrinkFile(‘TEST01’, 1); /* 紧缩数据库文件 */
DBCC ShrinkFile(‘TEST01_log’, 1); /* 紧缩日志文件 */
注意:如若磁盘空间已满,无法进行紧缩数据库事务日志文件,可采取先分离出部分暂未使用的数据库,然后将MDF文件及LDF文件进行拷贝到其他空余盘,进行开释磁盘空间,待日志紧缩后,再次将分离出的数据库文件进行附加。
分离数据库操作如下:
右击数据库,Task→Detach
https://i-blog.csdnimg.cn/blog_migrate/624835583e2fd85276cbbffde6a9774f.png
点击OK
https://i-blog.csdnimg.cn/blog_migrate/af2775a50ee41c445ec1e7e04b7b2aa7.png
此时发现数据库列表中已经没有TEST01,阐明数据库分离乐成了。
https://i-blog.csdnimg.cn/blog_migrate/99f34acdfa4b11b777f606e7c4c29c84.png
附加数据库操作如下:
右击Databases,单击Attach
https://i-blog.csdnimg.cn/blog_migrate/79e5f68c8abaca65cbdc0311242d09d6.png
点击Add,添加数据库文件
https://i-blog.csdnimg.cn/blog_migrate/295d277ba8cc5c8c6d3b94f916d57a56.png选择必要添加的文件后点击OK
https://i-blog.csdnimg.cn/blog_migrate/4009d41d3d9770aab09141cd97d6b863.png
检查添加的文件无误后,点击OK
https://i-blog.csdnimg.cn/blog_migrate/b8d695a36d8194dda8b607c5744887ed.png
此时在数据库列表中可看到刚附件上去的数据库TEST01
https://i-blog.csdnimg.cn/blog_migrate/511611aa1a1af6001a1c9951cfc94dfa.png
若未显示TEST01,请革新数据库列表
https://i-blog.csdnimg.cn/blog_migrate/d5a5d3462acffcee22ac83e196c5a439.png
2.通过 Transact-Sql 进行日志紧缩
实行如下命令:
USE [数据库名]
GO
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT
GO
--设为简单模式
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE
GO
USE [数据库名]
GO
DBCC SHRINKFILE (N'', [ targetsize], TRUNCATEONLY)
GO
USE [数据库名]
GO
ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT
GO
--还原为完全模式
ALTER DATABASE [数据库名] SET RECOVERY FULL
GO
[数据库名]替换为详细数据库, [ targetsize]替换为紧缩目的值。
替换为本例中的数据库修改如下:
USE TEST01
GO
ALTER DATABASE TEST01 SET RECOVERY SIMPLE WITH NO_WAIT
GO
--设为简单模式
ALTER DATABASE TEST01 SET RECOVERY SIMPLE
GO
USE TEST01
GO
DBCC SHRINKFILE (N'TEST01_log', 1, TRUNCATEONLY)
GO
USE TEST01
GO
ALTER DATABASE TEST01 SET RECOVERY FULL WITH NO_WAIT
GO
--还原为完全模式
ALTER DATABASE TEST01 SET RECOVERY FULL
GO
转载原文链接:SQL Server 日志紧缩方法_sqlserver日志紧缩-CSDN博客
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]