如何在 SQL 2005 中设置镜像并使用 IP 地址作为服务器名称?(EC2 / 无 AD)

如何在 SQL 2005 中设置镜像并使用 IP 地址作为服务器名称?(EC2 / 无 AD)

我正在 Amazon EC2 中设置镜像,并且所有服务器都具有专用 IP。当我尝试使用以下命令将镜像连接到我的主服务器时

alter database DB_NAME set partner = 'TCP://202.42.3.54:1433'

(出于安全考虑,IP 从真实 IP 更改而来)我收到一条错误消息

无法访问服务器网络地址“TCP://202.42.3.54:1433”或该地址不存在。请检查网络地址名称并重新发出命令。

我确信该服务器存在,并且可从其他服务器看到。我记得当端点服务器名称与服务器在 @@SERVERNAME 中已知的名称不同时会出现问题,有人认为这可能是问题吗?

鉴于我们没有任何域设置,也没有 ActiveDirectory,我能想到的使用实际服务器名称的唯一方法是设置主机文件,但我发现该解决方案最终很难管理并且非常丑陋。

有什么选择或想法吗?

答案1

使用 SQL DB 镜像和复制时,如果 @@servername 与实际主机名不匹配,您将会遇到问题。如果在安装 SQL 后重命名服务器,通常会发生这种情况。此外,服务器需要能够通过主机名进行通信,无论由您决定使用哪种方式(DNS、主机文件、WINS 等)

如果您的主机名与 @@servername 查询不匹配,可以使用一个简单的非破坏性脚本进行修复。在示例中,“oldhost”将是查询返回的名称。运行脚本后,您需要重新启动 SQL 服务。

exec sp_dropserver 'oldhost\instance'
go
exec sp_addserver 'currenthostname\instance',local
go

相关内容