将带有服务代理的 mssql 实例物理移动到另一台服务器

Physically move mssql instance with service broker to another server

我们所做的只是关闭 sql 服务器并将 mssql 文件夹移动到另一台服务器。在该操作服务代理无法正常工作之后。如何使服务代理在新服务器上工作?将整个服务器移动到新机器的正确方法是什么?

我们有不想重新初始化的合并复制。所以 backup/restore 和 attach/deattach 不是一个好的选择。在新机器上恢复服务代理的任何解决方案?重新创建 certificates/create 新的 SB guid(新经纪人)?

好的,我们将包含数据库文件的文件夹移动到另一台机器上 sql 服务器的全新实例。经过几次测试后,我们得到了预期的错误 An error occurred while receiving data: '10054(An existing connection was forcibly closed by the remote host.)'.,并且在 SQLProfiler 中它显示为 Connection handshake failed. Error 15581 occurred while initializing the private key corresponding to the certificate. The SQL Server errorlog and the Windows event log may contain entries related to this error. State 88.。 因此,我尝试在主数据库和主数据库上重新生成主密钥。它奏效了。服务经纪人 运行 双向都很好。

USE <dbName>;
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password';

ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'password';

CLOSE MASTER KEY;

USE master;

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password';

ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'password';

CLOSE MASTER KEY;