我正在尝试通过备份和恢复过程将生产 CRM MSSQL 数据复制到另一个独立的服务器堆栈(服务器 2)。几个月前,我从生产数据备份中进行了恢复,现在服务器 2 已经拥有了大部分数据。初始恢复工作正常,因为服务器 2 上尚未设置活动目录。全新的 CRM 安装负责大部分 AD 和 SQL 登录创建。
将 SQL 用户/登录名与 AD 用户/登录名连接起来似乎存在问题。我检查了 SSMS 和 AD 中显示的用户和组的 ID,它们似乎确实对应。我还使用“alter user with login”查询确保 SQL 用户与 SQL 登录名对应。有趣的是,有时在恢复数据库后,CRM 工作正常,但几分钟后它又开始出现错误。但更常见的是,错误在恢复后立即出现。我还尝试在“alter user with login”查询后附加“alter login with name”查询,以确保双向对应,但这似乎没有帮助。
恢复只会更改 SQL DB 用户(以及 CRM 数据)。SQL 登录名是实际连接到 AD 的登录名,它们不会更改。这让我很疑惑为什么这里会出现与 AD 相关的错误。也许这与 CRM 将其用户(CRM 用户,而非 SQL 用户)链接到 AD 的方式有关,因为 CRM 使用 ADFS SSO。该信息将存储在 CRM 中并被恢复覆盖。由于服务器 2 上的 AD 与服务器 1 上的 AD 不同,因此匹配可能会中断。
如果我恢复服务器 2 最初拥有的数据库的副本,CRM 就可以再次正常工作,只是数据已经过时了。
关于如何使 SQL 用户和登录与 AD 保持同步并防止错误发生,您还有其他建议吗?这很可能是基础设施其他部分的问题,因此我愿意听取建议。
答案1
您能否将最新的 Active Directory 还原到第三台服务器作为目标?(它可以是该 Server2 上的虚拟机)
您可以拥有最新的 SQL 数据,但拥有最新的 Active Directory 备份非常重要,特别是当您的 SQL 使用 AD 作为身份验证方案时。