我的任务是管理一些 MS SQL Server (Express) 数据库。我的主要 DBA 经验是使用 DB2 LUW 和 Oracle 数据库,我很难理解 SQL Server 处理其事务日志的方式。
我有一个设置为“完整”恢复模式的数据库和一个 100 MB 的预分配事务日志文件。使用 Windows 调度程序,我在 00:00 运行每日完整备份,并从 02:00 开始每 2 小时记录一次备份。
我的理解是运行日志备份会自动释放事务日志空间,但情况似乎并非如此——“dbcc sqlperf(logspace)”的输出显示“使用的日志空间%”数字不断(如果缓慢)上升。
目前是 5%,所以我还没有处于恐慌状态,但我对 SQL Server 执行此操作的方式感到困惑。
我用于完整备份的 TSQL 语句:
BACKUP DATABASE [xxx] TO DISK = N'E:\backups\xxx.bak' WITH DESCRIPTION = N'blah', RETAINDAYS = 7, NOFORMAT, NOINIT, NAME = N'blah', NOSKIP, REWIND, NOUNLOAD, STATS = 10, CHECKSUM
日志备份的 TSQL 语句是:
BACKUP LOG [xxx] TO DISK = N'E:\backups\xxx.trn' WITH DESCRIPTION = N'blah', RETAINDAYS = 7, NOFORMAT, NOINIT, NAME = N'blah', NOSKIP, REWIND, NOUNLOAD, STATS = 10, CHECKSUM
那么,我必须做什么才能释放日志空间?
提前感谢您的意见。