为什么我的 SQL 服务器日志文件在发出完整警告后仍有 99% space 可用?
Why does my SQL Server logfile have 99% space available after giving me a full warning?
删除大量记录时,出现此错误:
The transaction log for database 'databasename' is full
我发现this answer很有帮助,推荐:
- Right-click your database in SQL Server Manager, and check the Options page.
- Switch Recovery Model from Full to Simple
- Right-click the database again. Select Tasks Shrink, Files Shrink the log file to a proper size (I generally stick to 20-25% of the size of the data files)
- Switch back to Full Recovery Model
- Take a full database backup straight away
问题: 在第 3 步中,当我转到 shrink
> files
并从 file type
中选择 log
下拉菜单,它告诉我分配的 space 的 99% 是免费的。
在分配的 ~4500MB space 中,有 ~4400MB 空闲(数据文件大小为 ~3000MB)。
是不是说我可以走了,不用缩水了?
我不明白这个。考虑到我最初收到的警告,为什么会这样?
我不是一个喜欢夸张的人,但是关于 SQL 服务器事务日志的文章确实有数十亿篇。
Reader 的摘要版本:如果您一次删除 1,000,000 行,日志将会变大,因为它正在写入这 1,000,000 行删除,以防它必须回滚事务。保存这些记录所需的 space 在事务提交之前不会被释放。如果您的日志不足以容纳 1,000,000 次删除,日志将被填满,抛出您看到的错误,并回滚整个事务。然后所有 space 很可能会被释放。现在你有一个很大的日志,里面有很多免费的 space.
您的日志文件可能达到了 4.5gb 的限制,而且它不会再变大了。为避免将来填满您的日志,请将您的交易分块到更小的数量,例如一次删除 1,000 条记录。压缩操作将减小文件的物理大小,例如从 4.5gb 减小到 1gb。
删除大量记录时,出现此错误:
The transaction log for database 'databasename' is full
我发现this answer很有帮助,推荐:
- Right-click your database in SQL Server Manager, and check the Options page.
- Switch Recovery Model from Full to Simple
- Right-click the database again. Select Tasks Shrink, Files Shrink the log file to a proper size (I generally stick to 20-25% of the size of the data files)
- Switch back to Full Recovery Model
- Take a full database backup straight away
问题: 在第 3 步中,当我转到 shrink
> files
并从 file type
中选择 log
下拉菜单,它告诉我分配的 space 的 99% 是免费的。
在分配的 ~4500MB space 中,有 ~4400MB 空闲(数据文件大小为 ~3000MB)。
是不是说我可以走了,不用缩水了?
我不明白这个。考虑到我最初收到的警告,为什么会这样?
我不是一个喜欢夸张的人,但是关于 SQL 服务器事务日志的文章确实有数十亿篇。
Reader 的摘要版本:如果您一次删除 1,000,000 行,日志将会变大,因为它正在写入这 1,000,000 行删除,以防它必须回滚事务。保存这些记录所需的 space 在事务提交之前不会被释放。如果您的日志不足以容纳 1,000,000 次删除,日志将被填满,抛出您看到的错误,并回滚整个事务。然后所有 space 很可能会被释放。现在你有一个很大的日志,里面有很多免费的 space.
您的日志文件可能达到了 4.5gb 的限制,而且它不会再变大了。为避免将来填满您的日志,请将您的交易分块到更小的数量,例如一次删除 1,000 条记录。压缩操作将减小文件的物理大小,例如从 4.5gb 减小到 1gb。