-1

测试故障转移功能时,辅助节点无法运行访问 TDE 数据库的任何作业,但出现以下错误请在数据库中创建主密钥或在会话中打开主密钥,然后再执行此操作。

我努力了

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password' -- 现在由 SMK 设置加密 ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY

重新启动服务并禁用加密。

我对加密功能了解不多,只是按照步骤打开它。没想到故障转移机制如此垃圾,更糟糕的是,网上关于它的信息如此之少。任何帮助,将不胜感激。谢谢乔恩

4

3 回答 3

1

数据库主密钥 (DMK) 使用每个 SQL 服务实例唯一的服务主密钥 (SMK) 加密,您希望这样。

SQL Server 有另一种解密 DMK 的方法。如果 DMK 无法使用 SMK 解密,它会在凭证存储中搜索与相同系列 GUID 匹配的密码。如果它找到与您的数据库匹配的家庭 GUID,它将尝试使用存储的密码解密 DMK。如果成功,那么它将使用 DMK 加密或解密数据库中的凭据或密钥。

因此使用 sp_control_dbmasterkey_password 将根据数据库名称和主数据库中解密 DMK 的密码存储一个族 GUID。

为确保在 AG 从主节点到辅助节点失败时 DMK 正常工作,请在辅助节点上运行 sp_control_dbmasterkey_password 作为将数据库加入 AG 的过程的一部分。

在 SSMS 2016+ 的 AG 向导中,有一个提示让您为具有 DMK 的数据库添加密码。添加此密码后,向导将在辅助笔记上自动运行 sp_control_dbmasterkey_password。(但是,如果您使用自动播种,则会出现一个已知错误)。

有关详细信息,请参阅此链接:sp_control_dbmasterkey_password

于 2019-10-04T00:29:42.853 回答
1

此错误是由 AG 上的节点之间的服务主密钥 (SMK) 不匹配引起的。您的数据库有一个数据库主密钥 (DMK),该密钥在创建时由本地服务器的 SMK 加密。如果 AG 中只有两个节点,修复比较简单——从辅助节点备份 SMK,用密码在主节点上打开 DMK,将 SMK 恢复到主节点,然后用新的 SMK 重新加密 DMK . 为什么是那个方向(而不是主要→次要)?更改 DMK 是一种写入操作,并且在辅助节点上是不可能的!

于 2019-06-26T20:23:24.787 回答
1

所以事实证明 SSISDB 是问题所在。我设法使用以下命令停止错误

EXEC sp_control_dbmasterkey_password @db_name=N'SSISDB',@password=N'',@action=N'add'

然后它开始抛出可信度错误,随后修复了以下错误:ALTER DATABASE [SSISDB] SET TRUSTWORTHY ON

此后,乔布斯开始运行。

于 2019-06-26T16:30:31.847 回答