You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server 2019 Express版中禁用加速数据库恢复(ADR)功能

SQL Server 2019 Express 禁用ADR功能操作方案

首先给出明确结论:SQL Server 2019 Express版本没有对ADR功能的开关做版本限制,完全可以通过官方T-SQL命令禁用该功能,不存在技术层面的拦截。
具体操作分两种场景,所有操作都需要使用具有sysadmin角色的账号执行:

  • 针对单个已有数据库禁用ADR(推荐按需使用,不影响实例下其他库)
    操作前建议先对目标库做全量备份,执行时会短暂中断该库的业务连接,建议在业务低峰期操作,对应执行脚本:
    USE master
    GO
    -- 替换下方占位符为实际要操作的数据库名称
    DECLARE @dbName SYSNAME = N'你的目标数据库名'
    
    -- 将目标库切换为单用户模式,强制回滚所有未完成事务、断开活动连接
    EXEC('ALTER DATABASE [' + @dbName + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE')
    GO
    -- 关闭ADR功能
    EXEC('ALTER DATABASE [' + @dbName + '] SET ACCELERATED_DATABASE_RECOVERY = OFF')
    GO
    -- 恢复多用户访问模式
    EXEC('ALTER DATABASE [' + @dbName + '] SET MULTI_USER')
    GO
    
    执行完成后,可以通过系统视图验证配置是否生效,查询结果中is_accelerated_database_recovery_on字段返回0即为禁用成功:
    SELECT name, is_accelerated_database_recovery_on
    FROM sys.databases
    WHERE name = N'你的目标数据库名'
    
  • 修改实例级默认配置(仅对后续新建的数据库生效)
    该操作不会修改已经存在的数据库的ADR状态,仅会把实例新建库的默认ADR配置改为关闭,对应执行脚本:
    USE master
    GO
    -- 开启高级配置项可见性
    EXEC sp_configure 'show advanced options', 1
    RECONFIGURE WITH OVERRIDE
    GO
    -- 将实例级ADR默认值设为关闭
    EXEC sp_configure 'accelerated database recovery', 0
    RECONFIGURE WITH OVERRIDE
    GO
    -- 关闭高级配置项可见性
    EXEC sp_configure 'show advanced options', 0
    RECONFIGURE WITH OVERRIDE
    GO
    

注意事项:

  1. 禁用ADR后,数据库会回归2017及更早版本的恢复逻辑,异常崩溃后的恢复耗时、长事务回滚耗时会和实例上的最长活动事务时长直接相关,大事务场景下可能出现较长时间的库不可用,需要提前评估业务风险。
  2. 不要在数据库正在执行长事务、备份还原等操作时执行ADR开关命令,否则可能出现操作阻塞甚至元数据异常。

内容的提问来源于stack exchange,提问作者kbisang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 12:36:17