Windows故障转移群集 和 SQLServer AlwaysOn 配置搭建详细教程

目录
  • 最详细的 SQLSERVER ALWAYSON配置教程
  • 一、准备工作:
  • 二、搭建故障转移群集
  • 三、搭建数据库AlwaysOn
  • 四、过程中可能遇到的问题

最详细的 SQLSERVER ALWAYSON配置教程

一、准备工作:

1、准备域控:服务器都在同一个域控(以下假设所在域控为 AAA.COM)。

2、开启服务:域控要开启Remote Procedure Call (RPC)服务。

3、安装角色和服务:纳入群集节点的服务器必须先添加角色和功能 .NET3.5 和 故障转移群集,防火墙开启两个共享端口135、445,和端点端口5022,要开启Remote Registry服务。

4、建专用域账号:在域控新建数据库服务专用账号 wsfc_sqlserver@AAA.com,密码:********。

5、配置仲裁共享文件夹:去域控下非数据库节点服务器上建立一个共享文件夹(如:\\10.0.XXX.XXX\WIN故障转移群集\共享仲裁盘专用),专门用于仲裁共享文件,授予wsfc_sqlserver@AAA.com所有共享权限。

6、数据库相关:

6.1、为新建域账号授权:在各节点服务器将此wsfc_sqlserver@AAA.com加入管理员组,并在服务中将其设置为 SQLSERVER服务的登录身份,并赋予SQLSERVER的sysadmin角色(后边就用这个账号登录SQLSERVER配置AlwaysOn)。

USE master
CREATE LOGIN [AAA\wsfc_sqlserver] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
ALTER SERVER ROLE [sysadmin] ADD MEMBER [AAA\wsfc_sqlserver]
go

6.2、整理节点服务器数据文件夹:每台节点服务器的数据库都要放到相同的位置,文件夹路径要全部相同,副本服务器上要先按照主服务器建好文件夹。

6.3、设置节点服务器数据备份共享文件夹:每台节点服务器建一个专门用于存放数据库备份及同步文件的文件夹,设置共享,并加上管理员组 的所有共享权限(在之前wsfc_sqserever@AAA.com已加入管理员组)(注意干掉默认的EveryOne权限)。

6.4、同步数据库账号:在同步之前,在辅助副本服务器数据库上先建立好与主副本数据库一样的数据库账号(用EXEC sp_help_revlogin;进行导出导入,确保所有副本上的账号完全一致(包括SID要一致))。

二、搭建故障转移群集

1、选择节点服务器

2、下一步验证配置,选“否”。

3、定义群集名称和虚拟地址。

4、下面就是按你的设置进入自动配置,配置完成如图。同时域控中会自动生成一条以群集名称和IP的主机(A)记录,和计算机。

5、群集创建完成后,本机会自动生成一个用户CLIUSR,此用户是用来启动和运行群集服务的,千万不要动它,否则会导致群集服务中断。

6、配置群集仲裁(右键创建好的群集 >> 更多操作 >> 配置群集仲裁设置)

三、搭建数据库AlwaysOn

1、做好第一节第6点的相关准备(6、数据库相关)

2、建立SQL别名(32位):在每台节点服务器都加上所有节点数据库别名(实例名称+IP+端口 ),确保可以通过别名访问对应数据库。

3、启用 AlwaysOn(SQLSERVER配置管理器)

4、创建数据库证书(一定要配,否则 AlwaysOn可用性组建好了,但是副本会连接不上(显示一把红色的×),)

4.1、在每台节点数据库,创建并安装证书:

USE master;
GO
--创建主密钥。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '******************';
--创建证书。 把CERT_xxx_x1换成自己要的名字。
CREATE CERTIFICATE CERT_xxx_x1 WITH SUBJECT = 'CERT_xxx_x1', START_DATE = '2022-01-01',EXPIRY_DATE = '2099-12-30';
--把刚才创建的证书备份到文件。 把CERT_xxx_x1换成自己要的名字。
BACKUP CERTIFICATE CERT_xxx_x1 TO FILE = 'D:\DataBase\cert\CERT_xxx_x1.cer';
--创建终结点,设为证书验证。 把CERT_xxx_x1换成自己要的名字。
CREATE ENDPOINT [Hadr_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT_xxx_x1, ENCRYPTION = REQUIRED ALGORITHM AES)
GO

4.2、在每台节点数据库,载入群集内其他节点数据库的证书:

USE master;
CREATE CERTIFICATE CERT_xxx_x1 FROM FILE = 'd:\DataBase\cert\CERT_xxx_x1.cer';
CREATE CERTIFICATE CERT_xxx_x2 FROM FILE = 'd:\DataBase\cert\CERT_xxx_x2.cer';
CREATE CERTIFICATE CERT_xxx_x3 FROM FILE = 'd:\DataBase\cert\CERT_xxx_x3.cer';

5、创建AlwaysOn高可用组(数据库 >> Always On高可用性 >> 可用性组 >> 右键新建)

5.1、指定主副本&辅助副本

5.2、端点(不用配置,默认即可)

5.3、侦听器

5.4、只读路由

只读路由的使用:

同一个域AAA:可以使用AG23013,8887 或 AG23013.AAA.COM,8887 进行访问。

不同域BBB:可以在BBB域建立一条记录指向侦听器的IP进行访问。

连接字符串默认访问主副本,可读写。如果要只读,就在连接字符串中添加 ApplicationIntent=ReadOnly;MultiSubnetFailover=true,指定访问只读副本实现读写分离。

5.5、设置数据同步方式

5.6、再下一步下一步直到完成就行了,就可以在主副本所在数据库和辅助副本所在数据库分别看到下图:

5.7、数据库里面的“AlwaysOn高可用组”创建成功后会有如下变化:

5.7.1、在故障转移群集内会自动产生一个以“可用性组名”命名的角色,角色内已包含侦听器,如下图:

5.7.2、域控会根据“侦听器名称”自动产生一条计算机记录 和一条主机(A)记录:

四、过程中可能遇到的问题

1、如果要分离数据库,出现错误“无法对数据库‘XXX‘执行删除,因为它正用于复制”

解决:先 sp_removedbreplication'DBNAME';然后再分离。

2、数据库“正在还原”

解决:如果后续还要将此数据库加入到可用性组,就使用:RESTOREDATABASEDBNAMEWITHNORECOVERY; 反之使用 WITH RECOVERY。

PS:使用WITH RECOVERY后,还要从新添加到可用性组时可能会出现如下错误:

解决办法(右键数据库>>所有任务>>还原>>数据库>>选项菜单>>恢复状态>>选择”RESTORE WITH NORECOVERY”),操作完成后,再去可用性组里边的可用性数据库,右键>>联机:

3、执行手动故障转移后,副本数据库可能状态为“未同步”,且无法连接。

解决:在“未同步”的数据库执行:ALTERDATABASEDBNAMESETHADR RESUME;

4、销毁群集时,没有先逐出节点,直接删群集,导致这个节点加入新的群集时失败“计算机已加入群集”。

解决:进入注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClusSvc,Start项的值应该是2,改为4。

5、在数据库创建可用性组时,缺少选项“Windows Server 故障转移群集”,只有两个选项(EXTERNAL 和 NONE)。

解决:重启SQLSERVER服务。

6、更改数据的所有者。

解决:ALTERAUTHORIZATIONONDATABASE::DBNAMETO[账户]

到此这篇关于Windows故障转移群集 和 SQLServer AlwaysOn 搭建教程的文章就介绍到这了,更多相关SQLServer AlwaysOn 搭建内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SQLserver2014(ForAlwaysOn)安装图文教程

    SQLserver 2014 AlwaysOn在SQLserver 2012的基础之上,进行了很大程度的增加,如可以通过"添加 Azure 副本向导"简化了用于 AlwaysOn 可用性组的混合解决方案创建:辅助副本的最大数目从 4 增加到 8: 断开与主副本的连接时,或者在缺少群集仲裁期间,可读辅助副本现在保持可用于读取工作负荷: 故障转移群集实例 (FCI) 现在可使用群集共享卷 (CSV) 作为群集共享磁盘: 提供了一个新的系统函数 sys.fn_hadr_is_primary_

  • Windows2012配置SQLServer2014AlwaysOn的图解

    SQLserver 2014 AlwaysOn增强了原有的数据库镜像功能,使得先前的单一数据库故障转移变成以组(多个数据)为单位的故障转移.同时可以支持多达9个复制伙伴,可读性辅助副本服务器等多个特性.对于以组为单位的数据库,主要是解决应用对于多个数据库之间存在的依赖性,从而进行整体转移.其次,可以将那些报表或者只读需求转移到只读辅助副本,从而大大减少主副本的负载,使得主副本更加容易扩展,更好地支持生产负载,以及对请求提供更快的响应. 本文描述了基于虚拟环境Windows 2012 + SQLs

  • SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题

    事件起因:近期有研发反应,某数据库从08切换到12环境后,不定期出现写操作提交延迟的问题: 事件分析:在排除了系统资源争用等问题后,初步分析可能由于网络抖动导致同步模式alwayson节点经常出现会话超时等待提交的问题导致. 经过排查,扩展事件里发现不定期出现35202错误,这是一条副本连接恢复的消息. 由于机房网络环境复杂,数据库服务器和应用服务器混用一个交换机,在业务高峰期时,因上联端口流量打满而导致连接失败的情况屡有发生. 既然短期内无法改造网络环境,那就从SQLSERVER服务器自身出发

  • Windows故障转移群集 和 SQLServer AlwaysOn 配置搭建详细教程

    目录 最详细的 SQLSERVER ALWAYSON配置教程 一.准备工作: 二.搭建故障转移群集 三.搭建数据库AlwaysOn 四.过程中可能遇到的问题 最详细的 SQLSERVER ALWAYSON配置教程 一.准备工作: 1.准备域控:服务器都在同一个域控(以下假设所在域控为 AAA.COM). 2.开启服务:域控要开启Remote Procedure Call (RPC)服务. 3.安装角色和服务:纳入群集节点的服务器必须先添加角色和功能 .NET3.5 和 故障转移群集,防火墙开启两

  • 如何创建SQL Server 2000故障转移群集

    在创建SQL Server 2000 故障转移群集之前,必须配置 Microsoft 群集服务 (MSCS) 并使用 Microsoft Windows NT4.0 或 Windows 2000 中的群集管理员创建至少一个群集磁盘资源.在运行 SQL Server 安装程序之前,在群集管理员中记下群集驱动器的位置,因为创建新的故障转移群集需要该信息.只有SQL Server 2000 企业版才支持群集. 1. 在"Microsoft SQL Server 安装向导的"欢迎"屏

  • WINDOWS2016故障转移群集(图文教程)

    WIN2016故障转移群集 准备工作: 主机名 IP 域名 WINA 192.168.0.24 WINA.NET WINB 192.168.0.25 WINB.NET WINC 192.168.0.26 WINC.NET 所有主机配置主机信息 修改好主机名IP  DNS为本机IP   (以单台主机A为例) 互相ping测试连通性 (以单台主机A为例) 所有主机安装角色功能 DNS和故障转移群集 (以单台主机A为例) 所有主机配置DNS解析记录 并测试解析 新建正向查找区域NET 新建反向查找区域

  • SQLServer2014故障转移群集的部署的图文教程

    故障转移群集是Windows Server中的一个功能,自从在Windows NT 4.0 Enterprise Edition中首次引入群集以来,就可为服务器负载提供高可用性,是由一组独立的服务器组成, 并相互协作以提高服务和应用程序的可用性,群集中的某台计算机上发生故障时,资源会重定向到群集中的另一台计算机,工作量也会重新分发到群集中的另一台计算机.可以使用故障转移群集确保用户几乎一直具有访问基于服务器的重要资源的权限.故障转移群集是针对具有长期运行的内存中状态或具有大型的.频繁更新的数据状

  • Windows下mysql 8.0.28 安装配置方法图文教程

    本文为大家分享了Windows下mysql 8.0.28 安装配置方法图文教程,供大家参考,具体内容如下 本教程只针对于8.0版本及以上的版本5.0版本不能以这方法安装 第一步:先去MySql官网下载8.0.28的安装包MySQL :: Download MySQL Community Server 或点击这里下载 推荐下载第一个 第二步:解压在本地盘符 创建my.ini配置文件,因为下面会有控制台创建data文件,所以在这里不要自己创建data文件夹,不要自己创建data文件夹,不要自己创建d

  • MySQL解压版配置步骤详细教程

    mysql-5.7.14-winx64\bin配置到Path中 在解压路径下复制my-default.ini,修改名称为my.ini 在my.ini添加如下 [mysqld] basedir=C:\\software\Mysql\mysql-5.7.14-winx64 datadir=C:\\software\Mysql\mysql-5.7.14-winx64\data port=3306 basedir:是上述mysql的解压路径 datadir:后续初始化等数据都会保存在该目录下,在该文件目

  • intellij idea的快速配置使用详细教程

    IDEA实用教程 一. IDEA简介 1. 简介 IDEA 全称IntelliJ IDEA,是java语言开发的集成环境. IDEA是JetBrains公司的产品. JetBrains官网 : https://www.jetbrains.com/ IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.Ant.JUnit.CVS整合.代码审查方面. 了解:JetBrains公司开发的所有工具. 2. 下载 下载地址:https://www.

  • Gradle 6.6.1 安装配置的详细教程

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置. 面向Java应用为主.当前其支持的语言限于Java.Groovy.Kotlin和Scala,计划未来将支持更多的语言. 简介 Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依

  • PyCharm Community安装与配置的详细教程

    [内容]: 最近python挺火,空闲时间看了几个python视频,觉得简单易懂,开发效率高,应用范围广,值得学习.如下便开始搭建学习环境,即安装一款好用的Python IDE. Pycharm作为一款针对 Python的编辑器,配置简单.功能强大.使用起来省时省心,对初学者友好,所以先在windows上进行安装.配置和使用. 一.Pycharm的下载和安装 PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download/#section=wind

  • 最新VScode C/C++ 环境配置的详细教程

    前言 一次在VScode上配置C/C++环境的记录. 一.VScode下载及安装 VScode官网下载链接:https://code.visualstudio.com/Download 1.安装路径自行选择,例如我的安装路径为D:\Program Files\Microsoft VS Code: 2.安装完成进入VScode后按照步骤install中文插件完成汉化(此处我已完成汉化,故插件包显示"卸载",未安装情况下此处应显示"install"): 3.以同样的步骤

随机推荐