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

  1. 安装SQL server失败

    因为没有安装.net framework 3.5。 windows server 2012 R2 无法安装.net framework 3.5的问题很普遍,在网上查了下都是使用手动制定个sxs本地文件路径,配置安装。网上很难找到sxs下载资源包,csdn上都是需要积分的,又需要可以私信我。

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

此问题是因为我node1和node2上的sql server 都使用的命名实例,node1上还有个默认实例,并且命名实例名称不同导致,误导node2去默认实例的文件夹上去找了,实际并没有安装默认实例。有的解决方案是通过写sql语句手动map到新的路径上,这种可以解决。
我直接在node2上直接新装了个默认实例,问题直接解决,简单粗暴。

  1. 配置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踩坑全记录的更多相关文章

  1. SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)

    为了缩小读取操作所涉及范围,本文首先着眼于简单的SELECT查询,然后引入执行更新操作有关的附加过程.最后你会读到,优化性能时SQLServer使用还原工具的相关术语和流程. 关系和存储引擎 如图所示 ...

  2. 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 ...

  3. SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第2部分)

    计划缓存(Plan Cache) 如果SQL Server已经找到一个好的方式去执行一段代码时,应该把它作为随后的请求重用,因为生成执行计划是耗费时间且资源密集的,这样做是有有意义的. 如果没找到被缓 ...

  4. VMware Workstation 11 搭建windows server 2012 之sql server 2012集群常见问题整理

    1.windows server 2012内置支持iSCSI发起程序无需额外安装,iSCSI Software Target 可作为“文件和存储服务”角色下的内置功能使用 2.拷贝虚拟机的文件加入域时 ...

  5. [Windows Server 2012] 安装SQL Server 2012

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:安装SQL S ...

  6. windows server 2012 安装sql server集群

    第一步:准备工作 虚拟环境下模拟创建: 准备好3台虚拟机 操作系统,WindowsServer2012R2 操作系统安装完成后,需要注意如果虚拟机是克隆出来的,后面操作集群的时候需要计算机的sid不同 ...

  7. SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第3部分)(完结)

    一个简单的更新查询 现在应该知道只读取数据的查询生命周期,下一步来认定当你需要更新数据时会发生什么.这个部分通过看一个简单的UPDATE查询,修改刚才例子里读取的数据,来回答. 庆幸的是,直到存取方法 ...

  8. [Tool] Windows 8.1安装SQL Server

    [Tool] Windows 8.1安装SQL Server 问题情景 因为工作的关系,需要在Windows 8.1.64Bit设备上安装SQL Server 2012.本来以为是个只要按下一步就可以 ...

  9. 在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群

    需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服 ...

随机推荐

  1. std::string和ctime之间的转换

    int year, month, day, hour, minute, second; string strTime: sscanf(strTime.c_str(), "%d-%d-%d % ...

  2. tomcat更新class不生效

    替换线上lib里的class不生效,需要想想是不是前人为了图方便在classes里面扔了一份老版本class

  3. VScode中Python的交互式命令环境使用笔记

    前言 时间比较久了,忘记了具体配置了,不讲搭建了,提供参https://www.zhihu.com/question/49799276,或自行谷歌,常用的插件Python和Code Runner. 本 ...

  4. space sniffer

    space sniffer 一款检测本地磁盘文件占用情况的工具,高效,快速.

  5. 每天学点linux命令

    用于创建LVM卷组 补充说明 vgcreate命令 用于创建LVM卷组.卷组(Volume Group)将多个物理卷组织成一个整体,屏蔽了底层物理卷细节.在卷组上创建逻辑卷时不用考虑具体的物理卷信息. ...

  6. dubbo同步/异步调用的方式

    我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制:基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用(默认) 异步调用 参数回调 事件通知 同步 ...

  7. android 9.0 http无法访问问题

    在res/xml下新建network-security-config.xml <?xml version="1.0" encoding="utf-8"?& ...

  8. leetcode第38题:报数

    这是一道简单题,但是我做了很久,主要难度在读题和理解题上. 思路:给定一个数字,返回这个数字报数数列.我们可以通过从1开始,不断扩展到n的数列.数列的值为前一个数列的count+num,所以我们不断叠 ...

  9. AD复制问题汇总

    1:文件复制服务NtFrs 13568报错的解决方法 解决方法: 建议不要按照日志的提示进行操作,正确的操作应该是 出现这个问题的原因,是由于在硬件的损坏,导致服务器未正确处理NTFS USN 日志. ...

  10. mybatis generator 使用教程(生成带注释的实体类)

    引言: 最近的一个项目,由于数据库表巨多,导致需要创建N多个java实体.dao.mapper.xml映射文件,如果均使用纯手工编写,无疑需要耗费大量时间和精力.于是上网学习了mybatis gene ...