我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

最详细的 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 搭建内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

这篇文章主要介绍了Windows故障转移群集和SQLServerAlwaysOn搭建教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-03-03

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

目录最详细的 SQLSERVER ALWAYSON配置教程一、准备工作:二、搭建故障转移群集三、搭建数据库AlwaysOn四、过程中可能遇到的问题最详细的 SQLSERVER ALWAYSON配置教程一、准备工作:1、准备域控:服务器都
2023-03-03

Windows故障转移群集和SQLServer AlwaysOn配置的方法是什么

这篇文章主要介绍了Windows故障转移群集和SQLServer AlwaysOn配置的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Windows故障转移群集和SQLServer AlwaysOn配
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录