RDS SQL Server如何收缩事务日志
本文主要从以下两种情况介绍RDS SQL Server收缩事务日志的具体操作。
说明
阿里云提醒您:
如果您对实例或数据有修改、变更等风险操作,请务必注意实例的容灾、容错能力,确保数据安全。
如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
日志空间充足
如果日志空间充足,可以通过控制台收缩,下面主要介绍通过控制台收缩日志的具体步骤。
登录RDS管理控制台。
在页面左上角,选择实例所在地域。
单击目标实例ID,在左侧导航栏单击备份恢复。
在右上角单击备份并收缩事务日志,然后单击确定即可。
说明为了避免日志数据丢失,您在进行收缩事务日志操作时,系统将自动进行一次日志备份。
日志空间不足
如果您的数据库服务器提示“事务日志已满”,此时无法通过控制台收缩事务日志,需要您手动执行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.
相关文档
适用于
云数据库RDS SQL Server版