Windows 2012 always on 读写分离集群搭建配置。

Always on简介

AlwaysOn 可用性组 (SQL Server)

AlwaysOn 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案。SQL Server 2012 中引入了 AlwaysOn 可用性组功能,此功能可最大程度地提高一组用户数据库对企业的可用性。“可用性组”针对一组离散的用户数据库(称为“可用性数据库”,它们共同实现故障转移)支持故障转移环境。一个可用性组支持一组读写主数据库以及一至八组对应的辅助数据库。(可选)可使辅助数据库能进行只读访问和/或某些备份操作。

可用性组在可用性副本级别进行故障转移。故障转移不是由诸如因数据文件丢失而使数据库成为可疑数据库、删除数据库或事务日志损坏等此类数据库问题导致的。

Always on 优点:

AlwaysOn 可用性组提供了一组丰富的选项来提高数据库的可用性并改进资源使用情况。主要组件如下:

· 支持最多九个可用性副本。“可用性副本”是可用性组的实例化,此可用性组由特定的 SQL Server 实例承载,该实例维护属于此可用性组的每个可用性数据库的本地副本。每个可用性组都支持一个主副本和最多八个辅助副本

支持替代可用性模式:

· 异步提交模式。此可用性模式是一种灾难恢复解决方案,适合于可用性副本的分布距离较远的情况。

· 同步提交模式。此可用性模式相对于性能而言更强调高可用性和数据保护,为此付出的代价是事务延迟时间增加。一个给定的可用性组可支持最多三个同步提交可用性副本(包括当前主副本)。

支持几种形式的可用性组故障转移:自动故障转移、计划的手动故障转移(通常简称为“手动故障转移”)和强制的手动故障转移(通常简称为“强制故障转移”)。

· 支持几种形式的可用性组故障转移:自动故障转移、计划的手动故障转移(通常简称为“手动故障转移”)和强制的手动故障转移(通常简称为“强制故障转移”)。有关详细信息,请参阅故障转移和故障转移模式(AlwaysOn 可用性组)。

· 使您能够将给定的可用性副本配置为支持以下一种或两种活动辅助功能:

o 利用只读连接访问,与副本的只读连接可以在此副本作为辅助副本运行时访问和读取其数据库。有关详细信息,请参阅活动辅助副本:可读辅助副本(AlwaysOn 可用性组)。

o 当副本作为辅助副本运行时,对副本的数据库执行备份操作。有关详细信息,请参阅活动辅助副本:辅助副本备份(AlwaysOn 可用性组)。

通过使用活动辅助功能,可更好地利用辅助硬件资源,从而提高 IT 效率并降低成本。此外,通过将读意向应用程序和备份作业转移到辅助副本,有助于提高针对主副本的性能。

· 支持每个可用性组的可用性组侦听器。“可用性组侦听器”是一个服务器名称,客户端可连接到此服务器以访问 AlwaysOn 可用性组的主副本或辅助副本中的数据库。可用性组侦听器将传入连接定向到主副本或只读辅助副本。侦听器在可用性组故障转移后提供快速应用程序故障转移。有关详细信息,请参阅可用性组侦听器、客户端连接和应用程序故障转移 (SQL Server)。

· 支持灵活的故障转移策略以便更好地控制可用性组故障转移。

· 支持用于避免页损坏的自动页修复。

· 支持加密和压缩,这提供了安全且高性能的传输方式。

· 提供了一组集成的工具来简化部署和管理可用性组,这些工具包括:

o 用于创建和管理可用性组的 Transact-SQL DDL 语句。有关详细信息,请参阅AlwaysOn 可用性组的 Transact-SQL 语句概述 (SQL Server)。

o SQL Server Management Studio 工具,如下所示:

§ 新建可用性组向导 创建和配置可用性组。在某些环境中,此向导还可以自动准备辅助数据库并且为每个数据库启动数据同步。有关详细信息,请参阅使用“新建可用性组”对话框 (SQL Server Management Studio)。

§ 将数据库添加到可用性组向导 向现有可用性组添加一个或多个主数据库。在某些环境中,此向导还可以自动准备辅助数据库并且为每个数据库启动数据同步。有关详细信息,请参阅使用“将数据库添加到可用性组”向导 (SQL Server)。

§ 将副本添加到可用性组向导 向现有可用性组添加一个或多个辅助副本。在某些环境中,此向导还可以自动准备辅助数据库并且为每个数据库启动数据同步。有关详细信息,请参阅使用“将副本添加到可用性组向导”(SQL Server Management Studio)。

§ 故障转移可用性组向导 启动对可用性组的手动故障转移。根据您指定为故障转移目标的辅助副本的配置和状态,该向导可以指定计划的手动故障转移或强制手动故障转移。有关详细信息,请参阅使用故障转移可用性组向导 (SQL Server Management Studio)。

o AlwaysOn 面板 监视 AlwaysOn 可用性组、可用性副本和可用性数据库,并且评估 AlwaysOn 策略的结果。有关详细信息,请参阅使用 AlwaysOn 面板 (SQL Server Management Studio)。

o “对象资源管理器详细信息”窗格显示有关现有可用性组的基本信息。关详细信息,请参阅使用对象资源管理器详细信息监视可用性(SQLServer Management Studio)。

o PowerShell cmdlet。有关详细信息,请参阅AlwaysOn 可用性组PowerShell Cmdlet 概述 (SQL Server)。

文档出处,详见:https://msdn.microsoft.com/zhcn/library/hh510230(v=sql.120).aspx

测试环境:

4台Windows 2012 R2 服务器。

服务器功能

服务器IP

系统

服务

AD节点

10.92.37.2

Windows 2012 R2

AD

Sql 2012节点

10.92.37.3

Windows 2012 R2

故障转移+sql2012

Sql 2012节点

10.92.37.4

Windows 2012 R2

故障转移+sql2012

Sql 2012节点

10.92.37.5

Windows 2012 R2

故障转移+sql2012

一、安装故障转移

Always on 集群需要故障转移集群支持。首先需要搭建故障转移集群。

在10.92.37.2安装域控。打开服务器管理器,打开-管理-添加角色和功能。

勾选Active Directory 域服务。

等待所有安装完成。

配置域控服务器。,点击下图是所示按钮。

选择“添加新林”,在根域名填入您域的名称。

输入还原密码。

下一步

等待系统分配NetBIOS名称。然后一直下一步。等待完成,重启服务器。重启完成注意需要用域账号登陆。例如jianjian\administrator

安装

注:域控配置好之后会自动把网卡dns改成127.0.0.1,或者您安装域控前手动改成127.0.0.1,sql节点的dns为了加入域需要改成域控的地址:10.92.37.2

二、Sql 节点服务器加入域。

配置sql节点服务器的网卡(和域控在同段)DNS为域控的地址。确保可以解析域控名称。

开始我的电脑右键属性à更改设置à更改à选择域,填入域控名称。确定,输入域控的管理员账号和密码加入域。重启服务器。

重启后通过域用户登陆服务器。例如:jianjian\administrator

三、安装故障转移角色。

在sql节点的所有服务器安装故障转移角色服务。

安装方式都一样,下一步即可。

故障转移磁盘配置。完整的故障转移集群需要仲裁磁盘和数据盘、MSDTC盘。在发生转移的时候磁盘也会整体进行转移从而起到2边数据同步的作用。具体可以参考相关文档。

此次我们为3节点(奇数)集群,并不需要创建仲裁。

四、建立故障转移集群。

下一步

下一步

下一步

角色不选,直接下一步

选择功能—故障转移集群。

下一步直接到安装结束。

浏览查找您需要添加到集群的节点,为了更好辨认建议更改计算机名称。

下一步

下一步

下一步

下一步

下一步

五、安装sql 2012。

Sql2012在安装正常操作即可,需要注意的就是服务账号配置的(如图1)时候使用域账号。分别在3台节点安装sql 2012。安装完成后,(图2所示)打开sql server  配置管理器—SQL Server(MSSQLSERVER)--右键属性。启用always on 可用性组。重启数据库服务。

图(1)

图(2)

六、配置读写集群。

首先在你选择的主节点导入您的数据库。读写集群配置需要数据库的完整备份。选择数据库,右键属性—选项—调整恢复类型为完整。

对这个数据做完整备份。

always on 集群配置。

输入名称。随性即可。

点击添加副本使用域账号连接其他2个sql节点。勾选(自动故障转移)和(同步提交)

辅助副本“可读辅助副本”选择为仅只读意向。备份首选项默认即可。

添加侦听器。也可以在创建完后再添加。选择子网,输入指定的IP地址即可。注意监听的端口sql server为1433

“所有副本可访问的共享网络位置。”在任意节点建立共享文件夹,并且在另外2台挂载(注意开机挂载)。即可。

验证结果全部成功即可。下一步等待创建完成即可。完成后结果如下。在主节点可以看到“主要”字样。此时可以做到3台服务器数据同步(同步有1-2s延迟)并且可以实现故障转移。当主节点故障后其他节点可以自动成为主节点接替工作。

此时数据库集群还无法做到读写分离。由于always on局限性需要手动配置只读路由表,这个路由表大致结构是主节点----对应2个只读节点。并且只读节点有优先级,前面的优于后面的。 无法实现2个或者多个只读节点实现负载。其实只为热备。只读路由表通过T-sql语言实现,具体如下。更改相关参数保存为.sql文件,通过sqlcmd命令执行。Sqlcmd –S 服务器名称  -U 用户  -P 密码 –i 脚本

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-2N0I1AI1BHC' WITH

(

SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)

);

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-2N0I1AI1BHC' WITH

(

SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://10.92.37.3:1433')

);

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-K0VKE108NM8' WITH

(

SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)

);

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-K0VKE108NM8' WITH

(

SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://10.92.37.6:1433')

);

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-LF5RK32CE87' WITH

(

SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)

);

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-LF5RK32CE87' WITH

(

SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://10.92.37.5:1433')

);

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-2N0I1AI1BHC' WITH

(

PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(N'WIN-K0VKE108NM8',N'WIN-LF5RK32CE87',N'WIN-2N0I1AI1BHC'))

);

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-K0VKE108NM8' WITH

(

PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(N'WIN-2N0I1AI1BHC',N'WIN-K0VKE108NM8','WIN-LF5RK32CE87'))

);

GO

ALTER AVAILABILITY GROUP [weitui_sql_wr]

MODIFY REPLICA ON N'WIN-LF5RK32CE87' WITH

(

PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(N'WIN-K0VKE108NM8',N'WIN-LF5RK32CE87','WIN-2N0I1AI1BHC'))

);

GO

验证读写路由表。使用同样的命令验证。

select a.*,c.is_local,c.role_desc,d.endpoint_url,d.read_only_routing_url

from sys.dm_hadr_availability_replica_cluster_nodes a

join sys.dm_hadr_availability_replica_cluster_states b

on a.replica_server_name = b.replica_server_name

join sys.dm_hadr_availability_replica_states c

on b.replica_id = c.replica_id

join sys.availability_replicas d

on c.replica_id = d.replica_id

测试只读路由是否生效。Always on 集群web链接过程中需要传递ApplicationIntent = ReadOnly 此类参数。测试方式如下。

完成以上操作后点链接。如果可以连接到只读节点,并且符合只读路由表的顺序表示配置完成。

转载于:https://blog.51cto.com/zhanx/1971570

Windows 2012 always on 读写分离集群搭建配置相关推荐

  1. 数据库高性能读写分离集群操作说明

    1.系统概述 在一个高并发的事务型系统中,当写事务占的比例相对读事务相对较小时,可以借助DM7的主备系统备机可读的特点,将读事务转移到备机执行,减少单节点的并发压力,通过增加备机节点资源,提高系统的并 ...

  2. 金仓数据库KingbaseES主备和读写分离集群使用手册(日常运维管理)

    对应10小节作的整改,包括但不限于一键启动的检查项目.对属于一键启动的检查项作个说明即可,比如 本检查属于一键启动默认检查项. 目录 7.1. 集群启停 ¶ 7.1.1. 一键启停方式 ¶ 7.1.2 ...

  3. Maxscale读写分离集群过渡PXC集群

    一.实验环境 第一次写博客,欢迎大家交流指正!!! 不喜勿喷!!! 操作系统 : Centos7.5虚拟机 数据库软件 : mysql-5.7.17 主机名 ip地址 角色 web33 192.168 ...

  4. MySQL8读写分离集群

    文章目录 前言 MySQL读写分离原理 搭建MySQL读写分离集群 MySQL8.0之前 MySQL8.0之后 后记 前言 上一期介绍并实现了MySQL的主从复制,由于主从复制架构仅仅能解决数据冗余备 ...

  5. Maxscale Keepalived MySQL实现高可用读写分离集群

    图片是模拟两个从节点down是否正常提供服务 访问http://ip:8989端口,登录名admin,密码mariadb 环境说明: IP地址 数据库服务 读写分离代理服务 负载均衡服务 虚拟IP 1 ...

  6. 达梦-主备与读写分离集群

    DM8-主备与读写分离集群 文章目录 DM8-主备与读写分离集群 1. 基本概念 1.1 DM集群 1.2 DM归档类型 2. 数据守护集群 2.1 概念 2.2 数据守护集群架构及原理 2.3 守护 ...

  7. redis安装、持久化、数据类型、常用操作、操作键值、安全设置、慢查询日志、存储session、主从配置、集群介绍、集群搭建配置、集群操作,php安装redis扩展...

    21.9 redis介绍 21.10 redis安装 21.11 redis持久化 21.12 redis数据类型 21.13/21.14/21.15 redis常用操作 21.16 redis操作键 ...

  8. Shark集群搭建配置

    一.Shark简单介绍 Shark是基于Spark与Hive之上的一种SQL查询引擎,官网的架构图及性能測试图例如以下:(Ps:本人也做了一个性能測试见Shark性能測试报告) 我们涉及到了2个依赖组 ...

  9. Hadoop集群搭建配置教程

    Hadoop3.1.3集群搭建 前言 集群规划 集群搭建具体步骤 1.下载`hadoop-3.1.3.tar.gz` 2.上传并解压 3.配置`path`变量 4.修改配置文件 4.1 修改文件`ha ...

最新文章

  1. 单链表-在带头结点的单链表L中删除一个最小值结点(四指针)
  2. 多进程和多线程的概念
  3. (八) stm8程序段定位,理解lkf文件
  4. RDLC报表系列(二) 行分组
  5. 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
  6. vue个人博客项目部署上线
  7. python从0开始学编程第三天第9讲_【原创笔记1】Python从0学起——Starting from 0 learning Python(The First Day)...
  8. Tcl Tutorial 笔记7 ·for incr
  9. 基础知识复习(一)——C语言位运算符详解
  10. 微信小程序组件解读和分析:十二、picker滚动选择器
  11. c语言中按键程序设计,c语言获得键盘的按键
  12. 2020年中国人口出生率为8.52‰,首次跌破10‰,创下1978来新低
  13. 企业纳税证明(社保完税证明)如何导出
  14. sd卡驱动分析之core
  15. php+uc+client_uc_client是如何与UCenter进行通信的
  16. Android无线调试设备WIFI安装apk
  17. NYOJ 1132 promise me a medal (判断两线段是否相交)
  18. 公众号接收用户消息—《微信公众平台开发实战与应用案例》—陈小龙
  19. 新一代人工智能:从“感知智能”向“认知智能”转化
  20. 基于springboot实现注册功能发送激活码至邮箱激活账户登录

热门文章

  1. Linux libusb USB开发(一)—— USB设备基础概念
  2. ppi协议源码 c语言,S7-200 PLC的PPI协议及其开发实例
  3. 开贝修图最新版 免狗全功能版
  4. 代理插件SwitchyOmega安装配置
  5. uniapp 微信小程序 swiper修改指示点的位置和样式
  6. Maven 自己下载依赖包安装到本地仓库
  7. 向UBOOT 中添加自己的板子
  8. 钱多多软件制作第二天
  9. IOS个人账户转公司账户,TPshop APP提交审核
  10. unity3D用图片当做字体显示————点阵字体概念