我有两个SQL Server实例作为AlwaysOn主实例运行-副本。现在,我想在副本中设置连接读取数据库。我刚刚按照以下说明设置了SQL Server:https://blogs.msdn.microsoft.com/alwaysonpro/2013/07/01/end-to-end-using-a-listener-to-connect-to-a-secondary-replica-read-only-routing/。
现在一切正常。但是,如果我不使用参数readonly,则可以通过从外部使用侦听器地址来访问SQL Server。在内部网络中可以
外部网络
sqlcmd -S <IP Listerner> -U <username> -P <password> -d <db name> -K readonly --> not connect
sqlcmd -S <IP Listerner> -U <username> -P <password> -d <db name> --> connected
内部网络
sqlcmd -S <IP Listerner> -U <username> -P <password> -d <db name> -K readonly --> connected
sqlcmd -S <IP Listerner> -U <username> -P <password> -d <db name> --> connected
答案 0 :(得分:0)
可能是防火墙阻止了某些端口。确保在防火墙中打开了端口5022(默认端口)和用于侦听器的端口。
答案 1 :(得分:0)
我遇到了同样的问题并已解决。
外部网络只知道您在主节点上的 ListenerName。 您需要做的就是让外部网络知道您的所有节点。
像这样更改外部网络服务器中的主机文件。