RDS SQL Server如何收缩事务日志

概述

本文主要介绍RDS SQL Server如何收缩事务日志。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

下面主要从以下两种情况介绍收缩事务日志的具体操作。

日志空间充足

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

  1. 登录RDS管理控制台
  2. 在页面左上角,选择实例所在地域。
  3. 单击目标实例ID,在左侧导航栏单击备份恢复
  4. 在右上角单击收缩事务日志,然后单击确认即可。
    注意:清理后需要等待事务结束,一般需要20分钟左右。另外每次备份时SQL Server也会收缩事务日志。

日志空间不足

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

注意:如果日志已满只能截断日志链收缩,所以会影响备份恢复到这个时间点,但不影响业务,处理前请先备份数据库,如果没有权限,请提交工单。

  1. 执行以下SQL语句,将数据库设为简单模式,日志文件会自动断开。
    alter database [$DB_Name] set recovery simple
    说明:[$DB_Name]为数据库名称。
  2. 执行以下SQL语句,查看日志文件状况。
    use [$DB_Name]
    dbcc shrinkfile('[$DB_Name]_log')
  3. 执行以下SQL语句,恢复数据库模式。
    alter database [$DB_Name] set recovery full

相关文档

SQL Server磁盘打满

适用于

  • 云数据库RDS SQL Server版