SQL Server 2019 暂停恢复TDE 扫描

tech2025-10-10  0

要在数据库上启用 TDE,SQL Server 必须执行加密扫描。 扫描将数据文件中的每个页面读入缓冲池,然后将加密页面写入磁盘。

为了让你对加密扫描有更多的控制权,SQL Server 2019 (15.x) 引入了 TDE 扫描,其中包含暂停和恢复语法。 你可以在系统工作量大时或在业务关键时段暂停扫描,然后稍后再恢复扫描。

使用以下语法暂停 TDE 加密扫描:

ALTER DATABASE <db_name> SET ENCRYPTION SUSPEND;

同样,使用以下语法恢复 TDE 加密扫描:

ALTER DATABASE <db_name> SET ENCRYPTION RESUME;

encryption_scan_state 列已被添加到 sys.dm_database_encryption_keys 动态管理视图。 它显示加密扫描的当前状态。 还有一个名为 encryption_scan_modify_date 的新列,此列包含上次加密扫描状态更改的日期和时间。

SELECT database_id, encryption_state,encryption_state_desc, encryption_scan_state,encryption_scan_state_desc, encryption_scan_modify_date FROM sys.dm_database_encryption_keys

encryption_state

指示数据库是加密的还是未加密的。 0 = 不存在数据库加密密钥,未加密 1 = 未加密 2 = 正在进行加密 3 = 已加密 4 = 正在更改密钥 5 = 正在进行解密 6 = 正在进行保护更改(正在更改对数据库加密密钥进行加密的证书或非对称密钥)。

encryption_scan_state

适用于:SQL Server 2019 (15.x) 及更高版本。 指示加密扫描的当前状态。 0 = 未启动任何扫描,TDE 未启用 1 = 正在进行扫描。 2 = 正在进行扫描,但已挂起,用户可以继续。 3 = 由于某种原因中止扫描,需要手动干预。 请联系 Microsoft 支持部门以获得更多帮助。 4 = 扫描已成功完成,TDE 已启用并且加密已完成。

如果 SQL Server 实例在其加密扫描被暂停时重启,则会在启动时的错误日志中记录一条消息。 该消息指示已暂停现有扫描。

另外

当数据库未在加密扫描过程中,或未设置TDE加密时报如下错误

消息 33561,级别 16,状态 1,第 3 行 无法暂停加密扫描,因为没有加密扫描正在进行中。 消息 5069,级别 16,状态 1,第 3 行 ALTER DATABASE 语句失败。

在不支持的版本上,会报语法错误

消息 102,级别 15,状态 6,第 4 行 “ENCRYPTION”附近有语法错误。

 

最新回复(0)