假设某人在服务器上运行了 5 个不同的 SQL Server 实例。最初都使用动态端口。
限制其中一个实例使用静态端口 1433 而所有其他实例仍使用动态端口是否安全?
通常,根据启动顺序,可能会发生一个动态实例声称端口 1433,因此固定端口实例以后无法获取它。这可能会阻止固定端口实例运行吗?
或者 SQL Server 中是否有任何内部机制先启动固定端口实例,然后再启动动态端口实例?
假设某人在服务器上运行了 5 个不同的 SQL Server 实例。最初都使用动态端口。
限制其中一个实例使用静态端口 1433 而所有其他实例仍使用动态端口是否安全?
通常,根据启动顺序,可能会发生一个动态实例声称端口 1433,因此固定端口实例以后无法获取它。这可能会阻止固定端口实例运行吗?
或者 SQL Server 中是否有任何内部机制先启动固定端口实例,然后再启动动态端口实例?
配置了动态端口的 SQL Server 命名实例启动时,动态端口由 windows 提供。动态端口范围在端口 1433 所在的众所周知的静态端口范围之外。动态端口范围在 49152 和 65535 之间,如此处所述。
在随后的启动中,实例重用之前启动期间使用的相同动态端口(端口写入注册表)。如果发现该端口正在使用中,SQL Server 会要求操作系统提供一个新端口。此行为记录在此页面的“动态端口分配”部分中。
一句话回答您的问题:您描述的场景是不可能的(在受支持的 Windows 版本中,范围配置正确)。
是的,可以将其中一个实例设置为在端口 1433 上运行。这也是安全的,因为动态端口将设置在 49152 和 65535 的范围内,如上所述。
您使用配置管理器将其中一个实例设置为从端口 1433 启动(清除动态端口的配置),然后它将在该端口上运行。