这是一篇悲伤的博
因为前几天一直在折腾群集配置和AlwaysOn,踩雷有数,但是死到现在没成功。。。
搭建AlwaysOn环境需要:
1. windows Server2012 DataCenter版本(因为支持故障转移群集)
2. 每个服务节点加域,似乎AlwaysOn最大支持3个节点,按照小成本的考虑,两台服务器吧。这里我选的Dell R730,双E5
3. 共享存储(用于做群集的仲裁见证),如果是奇数的节点配置,需要共享存储,偶数的话共享文件夹即可。这里选择使用一台普通Dell 3010单机上创建共享文件夹解决。
4. 一个域控制器,这里我用一个虚拟机解决。(生产环境不要把域控和仲裁见证共享存储放一起)
踩到的雷包括如下:
1. 建立域环境出问题(第一遍就是不听劝,直接把域控放在节点A上,猝)
2. 双网段环境下 SQL 无法在内网上被windows身份验证方式访问,AlwaysOn配置猝
3. 改单网环境,直接改了域控IP、物理节点IP(就是禁用了原来的内网网卡)、共享存储IP,结果故障转移群的访问出问题了(原先设置的在内网路由上访问,直接改外网后猝)
4. 退群集,重建故障转移群集(第一遍是报告过,配置时挂掉了,原因是有退群失败的节点)
5. Clear-ClusterNode工具失败(无解)
6. 按某博文所说,干掉了Cluster相关两个注册表项,这下重建集群连验证都过不了了。
7. 重装节点A,完事后建群集,发现其实B也彻底挂了 (目前重装Bing)
上述问题依次给记录一些分析和解决思路的Tip
1. 域控必须是独立的,因为所有的域账户验证要经它实现。
2. 其实后来想了下,如果一开始只给一个内网网段建集群,而不是使用双网段配置,先把AlwaysOn的配置搞起来就对了。 只是考虑到就两台服务器,必须有外网接入以便一个数据采集中间件的正确工作,就没想到这点。
关于SQL Server到底支不支持多网卡,这点毋庸置疑。但是加域后域账户似乎只能接收单个网卡的路由通信,导致使用ip地址+sa账户登陆没问题, windows计算机名+Windows身份验证只在一个网段上有效,另一个会超时报错。(而且报错是访问不到)
3. 同事也做了这个,不过他一开始是单网段配置,所以直接改了没出问题,我推测我这里出问题是因为原本的配置里有双网的记录,所以直接改了域网段、群集地址后,群集到两个节点的通信都是断了的。那退群更是免谈。 还是一开始没想过这个问题,所以继续走弯路 了。(果然搭环境要拼人品)
综合分析下来,退群一定要在不破坏原有群集结构的时候做,直接调用清理后应该是能不重装的。
4. 上边的坑导致退群无效,群集无法正确清理了。
5. Clear-ClusterNode工具报错是无法加载某个dll这个类型的错,按做软件开发的经验,要么本身windows的环境不全,要么参数不对。可惜这个参数用户无法修改,bing和百度也是无解。(大家运气都很好呀。。。)
6. 实际上,456的雷都是连锁的。因为群集挂了,所以这些操作都是无效的。
一定要慎重。。小心谨慎的搭集群。。。哎。。。。。