zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

SQLServer 错误 故障 处理 修复 支持远程

SQLServer错误 故障 处理 远程 修复 支持
2023-06-13 09:19:26 时间

当SQL Server无法恢复启用了透明数据加密的数据库时,将引发错误 15581, (TDE) 。 SQL Server错误日志中记录了如下所示的错误消息

2020-01-14 22:16:26.47 spid20s Error:15581, Severity:16,状态:3.
2020-01-14 22:16:26.47 spid20s 在执行此操作之前,请在数据库中创建一个主密钥或在会话中打开该主密钥。

可能的原因

当运行以下命令时,如果删除了 master 数据库中数据库主密钥的服务主密钥加密,则会出现此问题:

Use master

alter master key drop encryption by service master key

服务主密钥用于对数据库主密钥使用的证书进行加密。 对使用启用了 TDE 的数据库的任何尝试都需要访问 master 数据库中的数据库主密钥。 必须使用 OPEN MASTER KEY (Transact-SQL) 语句,并对需要访问主密钥的每个会话使用一个密码,来打开未使用服务主密钥进行加密的主密钥。 由于此命令不能在系统会话上运行,因此不能在启用了 TDE 的数据库上完成恢复。

若要解决此问题,请启用主密钥的自动解密。 为此,请运行以下命令:

Use master

open master key DECRYPTION BY PASSWORD = "password"

alter master key add encryption by service master key

使用以下查询来确定是否已为 master 数据库禁用服务主密钥对主密钥的自动解密:

select is_master_key_encrypted_by_server from sys.databases where name = "master"

如果此查询返回的值为 0,则禁用了服务主密钥对主密钥的自动解密。

在某些情况下,SQL Server 实例可能看起来无响应。 如果查询 sys.dm_exec_requests 动态管理视图,你会注意到 LogWriter 线程和正在执行 DML 操作的其他线程正在无限期等待,并显示 WRITELOG wait_type。 其他会话尝试获取锁时也可能正在等待。


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 SQLServer 错误 故障 处理 修复 支持远程