RDS SQL Server如何收缩事务日志

本文主要从以下两种情况介绍RDS SQL Server收缩事务日志的具体操作。

说明

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,请务必注意实例的容灾、容错能力,确保数据安全。

  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

日志空间充足

如果日志空间充足,可以通过控制台收缩,下面主要介绍通过控制台收缩日志的具体步骤。

  1. 登录RDS管理控制台

  2. 在页面左上角,选择实例所在地域。

  3. 单击目标实例ID,在左侧导航栏单击备份恢复

  4. 在右上角单击备份并收缩事务日志,然后单击确定即可。

    说明

    为了避免日志数据丢失,您在进行收缩事务日志操作时,系统将自动进行一次日志备份。

    image

日志空间不足

如果您的数据库服务器提示“事务日志已满”,此时无法通过控制台收缩事务日志,需要您手动执行SQL语句进行处理。收缩事务日志需要占用部分日志空间,所以当日志处于已满状态时只能按命令截断收缩。在数据库服务器上执行如执行以下SQL语句,数据库名称需要进行替换,具体SQL处理步骤如下:

重要

如果日志已满只能截断日志链进行收缩。原则上不允许将数据库修改为SIMPLE简单模式,这种方式会影响RDS的备份链,导致经过当前时间点的所有恢复任务失败。如果紧急情况下您需要通过修改数据库恢复模式为SIMPLE简单模式并需要截断数据库日志链,表示您已经理解并愿意承担上述风险。此时您可忽略执行如下命令后显示的错误信息,数据库日志链依然会断开。

执行如下将数据库的恢复模式设置为SIMPLE模式的命令:

ALTER DATABASE [TestDb]  //[TestDb]为数据库名称。
SET RECOVERY SIMPLE

系统会将恢复模式重置为FULL,不会实际修改数据库恢复模式为SIMPLE,但数据库日志链会断开,并返回如下报错信息:

Msg 50000, Level 16, State 1, Procedure ******, Line 46
Login User [Test11] can't change database [TestDb] recovery model.
Msg 3609, Level 16, State 2, Line 2
The transaction ended in the trigger. The batch has been aborted.

相关文档

SQL Server磁盘打满

SQL命令管理数据库

适用于

云数据库RDS SQL Server版

阿里云首页 关系型数据库 相关技术圈