Windows Server 2012搭建SQL Server Always On踩坑全记录
Windows Server 2012搭建SQL Server Always On踩坑全记录
环境信息:
Windows Server 2012 R2
Sql Server 2012

整个搭建集群的过程主要分为3步:
- 1.配置预控,并把机器加域。
- 2.配置windows故障转移集群(Windows Failover Cluster)
- 3.配置SQL Server Always On High Availability Group(AG)
踩坑全记录
预控配置
比较好配置,需要注意的是非预控机器在加入域之前需要将dns指向预控。这里遇到的一个坑,在给node2节点加域时提示

虚拟机使用华为私有云申请,申请的服务器的sid因为与node1节点一致导致,重新生成sid即可,方法:
C:\Windows\System32\sysprep\sysprep.exe
勾选通用项,并开始。
配置windows故障转移集群。
Node1上添加node2节点时提示“无法访问远程注册表,请确保远程服务器注册表服务已运行,并已启动远程管理”。

从字面意思来看,放这诊断注册表服务已经windows策略上,发现服务与策略配置都没问题。最后在node1上尝试添加本地节点node1时提示“本地没有安装故障转移工具”,在去windows服务里查询,果然只勾选了故障转移管理工具选项,实际并未安装故障转移集群(windows服务里是两个选型,勾选集群管理工具并不会级联集群服务)勾选上,问题解决。由于提示的误导,诊断了很长时间。
配置SQL Server AG
安装SQL server失败
因为没有安装.net framework 3.5。 windows server 2012 R2 无法安装.net framework 3.5的问题很普遍,在网上查了下都是使用手动制定个sxs本地文件路径,配置安装。网上很难找到sxs下载资源包,csdn上都是需要积分的,又需要可以私信我。

- 配置Sql Server Available Group时,创建AG 提示node2上指定文件目录不存在。

此问题是因为我node1和node2上的sql server 都使用的命名实例,node1上还有个默认实例,并且命名实例名称不同导致,误导node2去默认实例的文件夹上去找了,实际并没有安装默认实例。有的解决方案是通过写sql语句手动map到新的路径上,这种可以解决。
我直接在node2上直接新装了个默认实例,问题直接解决,简单粗暴。
配置Listener 侦听器
配置侦听器过程比较简单,指定一个静态IP地址,并指定默认端口号1433,不过在配置完侦听器有个特别奇葩的现象,只能在主节点上ping通侦听器name或者IP,在其他副本任何机器上无法ping通,也无法使用Sql Management Studio连接(在主节点上可以连接)。
数据库同步无问题,不过因为应用在连接集群时需要使用侦听器地址去连接,这个问题就导致外部应用无法连接集群,集群不work。从预控以及DNS的记录来看,一切正常.
在StackOverflow以及TechNet上查了很多帖子,有很多人遇到相同的问题,不过解决方案基本都不work。最后怀疑是网络问题,就联系网络管理员帮忙看,最后一起讨论了一番,果然是因为侦听器IP和name并没有在华为私有云上绑定暴露,所以也就认证了其他服务器无法ping通,而只有主节点才可以连的问题。网络管理员处理完后,问题解决。
结束语
整个搭建过程大概耗时一天半,期间更多的是环境问题以及多个节点上的重复工作,整个搭建过程还算顺利。之后在windows server 2016,SQL Server 2016 环境上,成功搭建无域的SQL AG环境,依旧踩到了很多坑,大家遇到问题私信我。
如果你也遇到了我列的坑,那希望这篇文章能够帮助到您。最全配置文档,关注公众号,私信作者。
喜欢记得扫描下方二维码关注哦~

本文由博客群发一文多发等运营工具平台 OpenWrite 发布
Windows Server 2012搭建SQL Server Always On踩坑全记录的更多相关文章
- SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)
为了缩小读取操作所涉及范围,本文首先着眼于简单的SELECT查询,然后引入执行更新操作有关的附加过程.最后你会读到,优化性能时SQLServer使用还原工具的相关术语和流程. 关系和存储引擎 如图所示 ...
- SQL Sever 各版本下载 SQL Server 2012下载SQL Server 2008下载SQL Server 2005
SQL Server 2012SQL Server 2012 开发版(DVD)(X64,X86)(中文简体)ed2k://|file|cn_sql_server_2012_developer_edit ...
- SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第2部分)
计划缓存(Plan Cache) 如果SQL Server已经找到一个好的方式去执行一段代码时,应该把它作为随后的请求重用,因为生成执行计划是耗费时间且资源密集的,这样做是有有意义的. 如果没找到被缓 ...
- VMware Workstation 11 搭建windows server 2012 之sql server 2012集群常见问题整理
1.windows server 2012内置支持iSCSI发起程序无需额外安装,iSCSI Software Target 可作为“文件和存储服务”角色下的内置功能使用 2.拷贝虚拟机的文件加入域时 ...
- [Windows Server 2012] 安装SQL Server 2012
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:安装SQL S ...
- windows server 2012 安装sql server集群
第一步:准备工作 虚拟环境下模拟创建: 准备好3台虚拟机 操作系统,WindowsServer2012R2 操作系统安装完成后,需要注意如果虚拟机是克隆出来的,后面操作集群的时候需要计算机的sid不同 ...
- SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第3部分)(完结)
一个简单的更新查询 现在应该知道只读取数据的查询生命周期,下一步来认定当你需要更新数据时会发生什么.这个部分通过看一个简单的UPDATE查询,修改刚才例子里读取的数据,来回答. 庆幸的是,直到存取方法 ...
- [Tool] Windows 8.1安装SQL Server
[Tool] Windows 8.1安装SQL Server 问题情景 因为工作的关系,需要在Windows 8.1.64Bit设备上安装SQL Server 2012.本来以为是个只要按下一步就可以 ...
- 在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群
需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服 ...
随机推荐
- Django数据迁移时提示 ModuleNotFoundError: No module named 'users'
执行数据迁移时提示找不到对应的APP,错误如下: 这个错误主要是路径找不到引起的,只需在settings文件夹中添加app文件路径即可 sys.path.insert(0, os.path.join( ...
- imx6q-plus-Android6.0下uboot添加网卡驱动
1.文件:iTOP-iMX6_android6.0.1/bootable/bootloader/uboot-imx/include/configs/mx6sabre_common.h修改如下:#def ...
- mysql关键字汇总
ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE C ...
- DjangoBlog部署教程
本篇文章将会手把手教你如何部署DjangoBlog项目,首先介绍下我这里的基本环境,请大家仔细阅读此部分,下面的教程都会使用这些约定来介绍: 系统是ubuntu 18.04 LTS 假设你的域名是ww ...
- android应用市场、社区客户端、漫画App、TensorFlow Demo、歌词显示、动画效果等源码
Android精选源码 MVP架构Android应用市场项目 android刻度盘控件源码 Android实现一个社区客户端 android商品详情页上拉查看详情 基于RxJava+Retrofit2 ...
- php获取服务器和mysql等信息输出到页面(基于ci框架)
function show($varName) { switch($result = get_cfg_var($varName)) { case 0: return '< ...
- SpringMVC配置前端控制器的路径问题
在使用SpringMVC时,都需要在web.xml中配置一个前端控制器DispatcherServlet 控制器是一个servlet,但这个路径配置就有很多种,之前都是以扩展名配置的路径,如*.do, ...
- ABB机器人故障处理指南
ABB工业机器人常见故障处理 1. 开机示教器显示如下 1) 如果机器人开机,示教器一直显示connecting to the robot controller,如上图(robotware版本是白 ...
- peewee 对 mysql 类型支持问题,并不支持bit
这个问题是当时想当然了 看到python BooleanField(default=False) 便认为 对应 mysql的bit 出现问题 mysql实际字段存储值为0,但 peewee orm 后 ...
- Mysql————基本sql语句
mysql中的基本语法有四种: 1.DDL语句:(用CREAT和DROP操作的语句) 用于创建.修改.和删除数据库内的数据结构,如:1:创建和删除数据库(CREATE DATABASE || DROP ...