在之前的帖子里有提到过,为了避免IP变更带来的一系列问题,采取了不改变IP的策略。原以为,只要SQLSERVER的群集IP保持与之前单机部署的IP一致,就基本上不会有问题。然而实际永远比预想的更复杂。迁移并投入正式使用之后,确实大体上一直都稳定运行,然而我总是间隔一段时间就发现某几个JOB会连续失败几次。这些JOB是用于跟另一个产品组同步数据的,查看执行记录得知,失败原因都是同一个:无法打开与SQLSERVER的连接。。。
出于以下几点的考虑,我一直都是迷惑的:
1、大多数时候,这些JOB都是正常工作的;
2、间断性的连接不上,然而每次仅持续几个小时;
3、排除是对方数据库的问题,因为如果是对方数据库宕机,那那个产品的用户早跳起来了;
4、排除是基础架构组在搞事,正常情形没有人会隔上一段时间搞个事然后过几个小时又恢复好。
最终突然想到,网络设置没有更改的情形下,保证的只是原有的IP之间是可以访问的,但是现在除了SQLSERVER的群集IP之外,还有服务器各自的IP,以及WINDOWS的群集IP,那SQLSERVER之间互访,是使用的哪一个IP呢?这个变化过程如下图所示:
事实证明,问题恰好就出现在图中画的那几条虚线上,调整端口权限后,就一切正常了。