已创建SQL Server数据库镜像的工作组服务器能否加入域且无需重建镜像架构?
SQL Server镜像服务器加入AD域的问题解答
嘿,针对你的两个问题,直接给你明确结论:
- 正在运行数据库镜像会话的服务器完全可以加入Active Directory域,不用先终止会话;
- 加入域后根本不需要重建整个镜像架构,只需要根据需求调整下身份验证方式就行。
下面给你拆解具体的操作要点和注意事项:
一、加入域前的准备工作
先确保镜像状态稳定,跑个查询确认下:
SELECT database_id, name, mirroring_state_desc FROM sys.database_mirroring WHERE mirroring_state_desc IS NOT NULL;
如果状态是SYNCHRONIZED或者SYNCHRONIZING就没问题,最好提前给数据库做个完整备份,以防万一。另外要保证两台服务器都能正常访问域控制器,网络连通性拉满。
二、服务器加入域的操作顺序
建议按这个顺序来,尽量减少业务影响:
- 先处理镜像服务器:把它加入域,重启服务器。重启后SQL Server服务会自动重启,只要之前的身份验证没失效,镜像会话会自动重新连接,不会中断太久。
- 再处理主体服务器:加入域后重启,这里要注意——主体服务器重启会导致SQL Server服务暂时中断,如果配置了自动故障转移,业务会自动切到镜像服务器,所以最好挑业务低峰期操作。
三、加入域后的镜像配置调整
原来工作组环境下,你大概率用的是证书身份验证(或者SQL Server登录名),加入域后有两种选择:
- 继续用证书验证:啥都不用改!镜像会话会照常运行,完全不需要动现有架构,省事得很。
- 切换为Windows身份验证(更推荐,域环境下管理更方便):
- 在域里创建一个专用的域用户(比如
DOMAIN\SQLMirrorSvc),把两台服务器的SQL Server服务登录账户改成这个域用户,重启SQL服务生效。 - 在主体服务器上给这个域用户授予端点连接权限:
GRANT CONNECT ON ENDPOINT::[你的镜像端点名称] TO [DOMAIN\SQLMirrorSvc]; - 镜像服务器上执行同样的授权语句。
- 最后执行这条语句更新镜像的身份验证方式(不用终止会话):
执行后,镜像会话会自动切换到Windows身份验证,全程无缝。ALTER DATABASE [你的数据库名] SET PARTNER = 'TCP://主体服务器的域全名:端点端口';
- 在域里创建一个专用的域用户(比如
四、几个关键注意点
- 加入域后服务器的NetBIOS名称不会变,所以原来的镜像端点连接字符串不用改,除非你特意改了服务器名(不建议这么做)。
- 如果有见证服务器,记得也要把它同步加入域,操作步骤和镜像服务器一样。
- 万一操作中镜像会话中断了,不用慌,执行
ALTER DATABASE [你的数据库名] SET PARTNER RESUME就能恢复。
内容的提问来源于stack exchange,提问作者Ivor Horton
相关产品推荐
相关产品推荐

