tsql - 如何截断/清空巨大的 SQL 日志文件
问题描述
我有一些大约 500mb 的数据库和 50+gb 的日志文件。
通读我已经看到事务日志备份没有完成,所以我怀疑这就是多年来这种增长的原因。我正在设置 Always on 复制,并希望在 Always On 设置之前清空事务日志文件。
我遵循了一些答案,例如: https://theitbros.com/truncate-sql-server-2012-transaction-logs/ https://www.sqlshack.com/sql-server-transaction-log-backup-truncate-和收缩操作/
但我无法将文件缩小到任何适中的大小。有没有办法清空日志文件并将它们恢复到 +- 100mb?
我已经将数据库设置为简单的恢复模式,运行了下面的 TSQL,但它仍然没有发布。打开报告时,我看到即使设置为简单恢复模式,也没有空间可以释放。我同意丢失时间点恢复,因为一旦调整日志大小,我会将所有内容恢复为完整状态并进行完整备份。
USE [AdventureWorks2016CTP3]
GO
DBCC SHRINKFILE (N'AdventureWorks2016CTP3_Log' , 0, TRUNCATEONLY)
GO
为了安全起见,我在做任何事情之前已经进行了完整备份。任何提示/指导表示赞赏。
解决方案
删除TRUNCATEONLY
.
USE [AdventureWorks2016CTP3]
GO
DBCC SHRINKFILE (N'AdventureWorks2016CTP3_Log' , 100)
GO
推荐阅读
- python - 无法理解错误消息(Python 中的回归)
- android-studio - Android Studio 腐败怪异:打开完全错误的文件
- python - 隐藏从自定义 CLI 应用程序生成的 json 文件格式数据?
- javascript - 如何增加动物区的价值?使用 javascript 和服务器端函数
- javascript - 将数据追加到一个数组中,而不是使用多嵌套数组
- npm - 如何在不依赖 bower 的情况下运行 web-component-tester 来测试 vanilla web-component
- excel - 如何修复此代码中的“Error438:对象不支持此属性或方法”?
- xcode - Xcode 默认 gcc (mis) 配置为为 iOS 而不是 macOS 编译
- swift - 在 ARKit 中转换 SIMD2 位置和标记
- laravel-5.4 - 如何解决 Laravel 5.4 中的“BadMethodCallException Method Illuminate\Routing\Route::getParameter 不存在”异常?