首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server :日志文件收缩

问SQL Server :日志文件收缩
EN

Database Administration用户
提问于 2017-07-12 20:34:58
回答 2查看 1.8K关注 0票数 2

我们正在运行SCCM 2012 r2报告服务,由于备份没有正确设置,Server日志文件已经失控,我想在继续之前确认一些内容。

我已经设置了我们的备份解决方案来完成DB的完全备份,并设置了一个增量,用于按照常规计划截断日志,但据我所读,由于性能问题,缩小日志文件是个坏主意,但这似乎是一种适当的情况,因为我们为日志文件占用了大约220 DB。

首先,我应该明确地尝试缩小日志文件吗?最好的方法是什么?它仅仅是通过使用DBCC SHRINKFILE吗?

其次,我认为我应该在缩小日志文件后对日志文件大小设置一个合理的限制,但我不知道如何也提出这个限制。它只是一个大小,我很高兴它承担之间的截断备份,还是有一个最佳做法。

正如您可能会说的,我对Server并不那么熟悉,所以如果我的措辞不正确,我很抱歉。提前谢谢。

EN

回答 2

Database Administration用户

发布于 2017-07-13 06:42:20

听起来您的数据库处于完全恢复模式,但您没有运行事务日志备份。这不是一个兼容的组合。

你有两个选择:

  1. 将其保留在完全恢复模式下,并在完整备份和差异备份之外进行(并保持)常规事务日志备份。
  2. 将其切换到简单的恢复模式。

注意,这是一个商业决定,而不是一个技术决定。

只有在需要“实时点”恢复的情况下,才需要完全恢复模式,即在出现问题时,可以在完全/差异备份之间将任意点倒转到任意点。

如果数据库处于简单恢复模式,并且发生了一些错误(损坏、有人删除表等),那么您必须返回最新的完整备份或差异备份,您可能会丢失对数据库所做的更多最新更改。但是对于某些类型的数据库(报告/处理数据库、开发/测试/QA环境等)来说,这是可以接受的。

一旦您决定了需要支持哪种模式并进行了适当的更改,您的tran日志就不应该上下移动。使用如下所示的查询查看文件中实际使用了多少内部空间:

代码语言:javascript
复制
SELECT DB_NAME() as dbname, type_desc, name as logical_name, 
    CONVERT(decimal(12,1),size/128.0) as TotalMB,
    CONVERT(decimal(12,1),FILEPROPERTY(name,'SpaceUsed')/128.0) as UsedMB,
    CONVERT(decimal(12,1),(size - FILEPROPERTY(name,'SpaceUsed'))/128.0) as FreeMB,
    physical_name
FROM sys.database_files WITH (NOLOCK)
ORDER BY type, file_id;

在tran日志备份之间,您将看到日志文件中的“已使用”空间在增长,并且在日志备份运行时它应该会下降。文件的总大小应该保持不变。我建议将日志文件缩小到您看到的最大的“已使用”值,再加上20%,并将它的增长设置为2GB或4GB,这样,如果需要的话,它可以增长一点。

票数 1
EN

Database Administration用户

发布于 2017-07-12 23:15:50

缩小日志的主要性能问题是(在特殊情况之外,比如您的日志),它将需要再次增长。与数据文件相比,增长日志文件实际上要花费更长的时间(数据文件中的新空间基本上可以标记为“空闲”,其中新的日志文件空间实际上必须用零写入)。另外,如果您缩小日志文件,然后将该空间用于其他东西,那么当日志文件确实需要增长时,它可能无法。

是我要使用的。如果有疑问,您可以通过SSMS设置您想要的内容(右键单击DB;选择任务->收缩->收缩文件),并让它为您生成脚本。基本上,您只需要指定要收缩的文件和目标大小。

日志文件收缩通常会很快发生。但是,如果文件没有收缩,您将不会得到错误。SQL不会重新排列日志文件以释放文件末尾的空间,而且d只会从末尾删除空间。如果需要,可以多次发出命令;这可以生成足够多的活动,以移动日志中的当前活动点,并将其移动到末尾。如果其他一切都失败了,请稍后再试。

您可以限制日志文件的增长,但是您确实有可能在某个时候需要比您允许的空间更多的空间,并且操作将失败,因为日志已经满了。如果您有空闲空间,我可能会定期查看日志,以确保所有的内容看起来都很好。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/179694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档