7 transaction-log sql-server-2008-r2
我有一个问题,我在 SQL Server 2008 中的日志文件增长到 40Gb,我想缩小它。我正在使用的查询是
ALTER DATABASE DatabaseName SET RECOVERY SIMPLE
use DatabaseName
GO
CHECKPOINT
GO
DBCC SHRINKFILE(transactionloglogicalfilename,TRUNCATEONLY)
GO
ALTER DATABASE DatabaseName SET RECOVERY FULL
Run Code Online (Sandbox Code Playgroud)
不会在更多级别上缩小日志文件,而且缩小日志文件只会在短时间内立即扩展。
那么问题出在哪里呢?
我想将日志文件缩小到 1GB,而我的数据库大小是 16GB
我有 SQL Server 2008 R2
请有人帮助我
Dan*_*Big 10
进入管理工作室,右键单击数据库,任务 > 收缩 > 文件。
在文件类型下,选择日志文件。确保选择释放未使用的空间作为收缩操作,单击确定。
至于缩小的日志文件又快速增长,可能是因为你设置了Full恢复模式。将其设置为 simple 将立即提交更改而不将它们保存在日志中。仅当您定期执行完整备份时,简单才是好的。
如果您想防止进一步增长,您需要将数据库日志设置为简单(但前提是您对数据库进行完整备份!)。
如果您的备份计划是每天完全备份,这将有效并且是最好的。因为在这种情况下,您的日志不会被修剪并且会暴涨。
如果您将使用 Grandfather&Father&Son 备份技术。这意味着每月完整备份,每周完整备份,然后每天增量备份。那么为此您需要Full Recovery Mode。因此,考虑到您将数据库设置为完全备份,您需要停止这样做并将备份切换到简单恢复模式,或者开始正确进行备份并且您的日志将被备份修剪。
在您将其切换为简单然后将其切换为完整的情况下,您的日志将再次增长。
将此与 DanBig 建议结合起来,通过执行以下步骤来缩小数据库:
Release unused space为收缩操作,单击确定。| 归档时间: |
|
| 查看次数: |
59612 次 |
| 最近记录: |