1

我的任务是管理一些 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

那么,我必须做什么才能释放日志空间?

提前感谢您的意见。

4

1 回答 1

0

dbcc sqlperf(logspace)显示日志空间的大致使用情况。通常此值高于(但绝不会低于)实际可用空间。本文简要介绍了为什么log space used日志备份后不设置为“0”:http: //support.microsoft.com/kb/281879。因此,您使用的日志空间可能会上升到 25%,然后回落到例如 5%。您不必担心增加日志空间使用值。只要你有定期的日志备份,事务日志就会有足够的可用空间(除了一个事务跨越 100 Mb 的日志文件的情况,我猜这不是很常见的情况)。

于 2012-09-19T12:55:53.807 回答