RDS SQL Server如何收缩事务日志

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

说明

阿里云提醒您:

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

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

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

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

日志空间充足

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

  1. 登录RDS管理控制台

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

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

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

    说明

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

    image

日志空间不足

如果您的数据库服务器提示“事务日志已满”,无法通过控制台收缩事务日志,需要您手动执行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版

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