码迷,mamicode.com
首页 > 其他好文 > 详细

文件收缩和移除

时间:2016-09-07 09:14:11      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

收缩数据文件(要腾空间,没办法只能收缩文件)的过程中,遇到日志备份,报错

技术分享
USE [DBA_Monitor]
GO
DBCC SHRINKFILE (NDBA_Monitor , 276000)
GO
View Code

技术分享
等待日志备份结束,再次收缩数据文件,报错
技术分享
查询得知可通过修改文件初始大小

技术分享
--修改文件初始大小,当前大小的基础上加1M
USE [master]
GO
ALTER DATABASE [DBA_Monitor] MODIFY FILE ( NAME = NDBA_Monitor, SIZE = 283649024KB )
GO
View Code

再次收缩正常。
发现一数据库有两个日志文件,SQLServer对日志记录是按照严格的顺序写入的。所以虽然这里有两个日志文件,SQLServer还是在一个时间点只写其中的一个。只有这个文件写满了,SQLSERVER才会写入另外一个。因此加入多个日志文件对性能基本不会有什么帮助。
如何确认当前使用的是哪个日志文件?
可以使用dbcc loginfo命令,查看当前Status>0的FileID

技术分享
create table #loginfo(FileId int,FileSize int,StartOffset bigint,FSeqNo bigint,Status int,Parity int,CreateLSN varchar(32))
insert into #loginfo
exec(dbcc loginfo)
select * From #loginfo
where status>0
drop table #loginfo
View Code

如何删除多余的日志文件
首先,清空多余的日志文件;然后,删除清空后的日志文件

技术分享
--step1通过将数据迁移到同一文件组中的其他文件来清空文件
USE [DBA_Monitor]
GO
DBCC SHRINKFILE (NDBA_Monitor_log2 , EMPTYFILE)
GO
--step2移除清空后的日志文件
USE [DBA_Monitor]
GO
ALTER DATABASE [DBA_Monitor] REMOVE FILE [DBA_Monitor_log2]
GO
View Code

文件收缩和移除

标签:

原文地址:http://www.cnblogs.com/Uest/p/5807888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!