【问题标题】:Backup Log database SQL Server备份日志数据库 SQL Server
【发布时间】:2020-10-21 23:34:29
【问题描述】:

我在 SQL Server Express 上有一个用于 3 个 Asp.net 应用程序的数据库。 恢复模式已满。

我每天都使用此代码执行备份

BACKUP DATABASE @databaseName TO DISK = @file WITH INIT, SKIP, NOREWIND, NOUNLOAD,  STATS = 10
BACKUP LOG @databaseName TO DISK = @fileLog WITH NOFORMAT, NOINIT,  NAME = N'Database-Transaction Log Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

当应用程序池的启动模式为 OnDemand 时,LDF 每天都会减少;当我使用 AlwaysRunning 时,日志不会减少。

我想使用始终运行的应用程序池。 我可以使用收缩来减小日志大小吗?即使用户正在使用网站?

ALTER DATABASE [DatiMachinaWeb] SET RECOVERY SIMPLE
DBCC SHRINKFILE(DatiMachinaWeb_log)
ALTER DATABASE [DatiMachinaWeb] SET RECOVERY FULL

我错了吗?我该如何解决? 谢谢

【问题讨论】:

  • 离题。属于 dba.stackexchange.com 数据库专业人士的问答,他们希望提高自己的数据库技能并向社区中的其他人学习

标签: asp.net sql-server database-backups application-pool ldf


【解决方案1】:

是的,您可以使用 DBCC SHRINKFILE 在线减小日志大小。

但是暂时切换到简单恢复模式会破坏日志备份链,如果您需要使用在日志收缩之前创建的备份进行恢复,您将需要该链。

一般而言,不需要缩减日志:通常您应该更频繁地备份日志,或者只是根据生成的日志记录活动和日志备份频率调整合适的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多