我们有一个 Windows Server 2012 服务器运行,上面安装了 2 个 SQL Server 2012 实例 -Live
和System
. 两个实例都接受 1433 上Live
的连接,并且是默认实例(在 ListenAll 端口中设置的 1433)。
我们有一个程序需要连接到系统实例,但是它不支持 SQL Server 的命名实例。
根据我的阅读,我们有两个选择 -
- 安装一个额外的网卡,为其创建一个单独的 DNS 记录,并让
System
实例监听该卡上到 1433 的所有连接 - 创建指向服务器的 DNS 记录并使用 SQL Alias 指向
System
实例
我们更喜欢使用选项 2,因为这意味着我们不需要设置更多硬件,但我无法让它工作。网络团队设置了一个额外的 DNS A 记录(“programDB”)来指向服务器。
在 SQL Server 上,我使用 SQL Server 配置管理器创建了一个别名:
- Alias Name="programDB" [我也试过“programDB.domain.com.au”]
- 端口号 = 1433
- 协议 = TCP/IP
- 服务器 = 服务器名称\系统
我已经在 32 位和 64 位配置中进行了设置
当我programDB
从 SSMS 连接时,它会将我连接到Live
实例,而不是System
实例。
我是否错过了别名的工作原理,或者我错过了设置中的某些内容?
更新:这是我设置的:
- DNS A 记录设置为将“programdb”指向服务器的 IP 地址
- SQL 别名(x32 和 x64):
- TCP/IP 设置(端口设置为 1544):
我已经多次重新启动服务。如果我尝试连接到“programdb,1544”然后它连接到System
实例
将您的一个实例设置为使用不同的端口。别名将允许使用不同的端口,而客户端不必担心。
另一种选择是向机器添加额外的 IP 地址(据我所知,不需要额外的网卡)每个都有不同的 DNS 条目。所以现在您可以使用多个名称连接到该机器。然后在实例的 TCPIP 设置中设置 IP 地址(使用配置管理器)。这些 IP 地址/机器名称中的每一个都有一个端口 1433,并且该端口可以分配给额外的实例。
完成后,您将拥有 MachineName1\Live 和 MachineName1\System 实例。MachineName1\Live 也可由 MachineLiveAlias 访问,MachineName1\System 可由 MachineSystemAlias 访问。
这是一个包含相当详细说明集的链接 http://kevine323.blogspot.com/2013/08/setting-up-aliases-on-sql-server-with.html