SQL Server2012中新增的AlwaysOn简介

    SQL Server2012中新增的AlwaysOn是一个新增高可用性解决方案。在AlwaysOn之前,SQL Server已经有的高可用性和数据恢复方案,比如数据库镜像,日志传送和故障转移集群.都有其自身的局限性。而AlwaysOn作为微软新退出的解决方案,提取了数据库镜像和故障转移集群的优点。本文旨在通过实现一个AlwaysOn的实例来展现AlwaysOn。

Windows2012群集要求作为群集运行的所有节点都必须采用投票算法确定该节点在指定时间是否有仲裁。因此,仲裁配置有了更多的选项,主要有4种。

1、节点多数

推荐用于含有奇数个节点的群集。

可以承受的故障节点数为节点数的一半(四舍五入)减去一。例如,7个节点的群集可以承受3个节点出现故障。

2、节点和磁盘多数

推荐用于含有偶数个节点的群集。

在见证磁盘保持联机时可以承受的故障节点数为节点数的一半(四舍五入)。例如,在见证磁盘联机时,6个节点的群集可以承受有3个节点出现故障。

在见证磁盘脱机或出现故障时可以承受的故障节点数为节点数的一半(四舍五入)减去一。例如,见证磁盘有故障的6个节点的群集可以承受两 (3-1=2) 个节点故障。

3、节点和文件共享多数

适合有特殊配置的群集。

与“节点和磁盘多数”的工作方式类似,但是此群集使用见证文件共享,而不是见证磁盘。

注意:如果使用“节点和文件共享多数”,则至少必须有一个可用的群集节点包含群集配置的最新副本,然后才能启动群集。否则,您必须通过特定节点来强制启动群集。

4、无多数:仅磁盘

不推荐

可以承受除一个节点外的所有节点出现故障(如果磁盘联机)

但是,建议不使用此配置,因为磁盘可能成为单一故障点。

 

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集

1 SQL部署平台架构图

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012

服务器配置信息

部署文档说明

以下配置均为群集AlwaysOn Cluser(服务器:VMSQLSRV01~VMSQLSRV04)节点,共四组,群集节点Cluster1名VMSQLSRV01(服务器:SQLDB01~SQLDB03)、群集节点Cluster2名VMSQLSRV02(服务器:SQLDB04~SQLDB06)、群集节点Cluster3名VMSQLSRV03(服务器:SQLDB07~SQLDB09)、群集节点Cluster4名VMSQLSRV04(服务器:SQLDB10~SQLDB12)的配置信息和步骤。

2 安全和账户规划

所有的SQLDB服务器使用管理员帐号gzmetro\administrator进行系统部署

SQLDB(01,02,03~12)

管理账户:gzmetro\administrator、gzmetro\SQLadmin、gzmetro\admin-slq01、gzmetro\admin-slq02、gzmetro\admin-slq03、gzmetro\admin-slq04

服务账户:gzmetro\administrator

SQL Server Analysis Services管理账户:gzmetro\administrator、gzmetro\SQLadmin、gzmetro\admin-slq01、gzmetro\admin-slq02、gzmetro\admin-slq03、gzmetro\admin-slq04、gzmetro\admin-slq05、gzmetro\admin-slq06、gzmetro\admin-slq07、gzmetro\admin-slq08、gzmetro\admin-slq09

3 SQL服务器硬件分配

SQL服务器,共12台,虚拟机默认配置全是一样的,全使用域管理员帐号administrator进行功能配置    

类列

CPU

硬盘

内存

显卡

操作系统

数量

虚拟机

双核

260G

8G

默认

Windows Server 2012 R2 Datacenter

12台


4 群集服务器具体配置

VMSQLSRV01群集(SQLDB01, SQLDB02, SQLDB03)

VMSQLSRV02群集(SQLDB04, SQLDB05, SQLDB06)

VMSQLSRV03群集(SQLDB07, SQLDB08, SQLDB09)

VMSQLSRV04群集(SQLDB010, SQLDB11, SQLDB12)

5 SQL服务器网络分配    

服务器名称

群集外部通讯地址

群集内部通讯地址

群集地址

SQLDB01

175.100.20.101

10.10.10.1

175.100.20.131

SQLDB02

175.100.20.102

10.10.10.2

175.100.20.131

SQLDB03

175.100.20.103

10.10.10.3

175.100.20.131

SQLDB04

175.100.20.104

10.10.20.1

175.100.20.132

SQLDB05

175.100.20.105

10.10.20.2

175.100.20.132

SQLDB06

175.100.20.106

10.10.20.3

175.100.20.132

SQLDB07

175.100.20.107

10.10.30.1

175.100.20.133

SQLDB08

175.100.20.108

10.10.30.2

175.100.20.133

SQLDB09

175.100.20.109

10.10.30.3

175.100.20.133

SQLDB010

175.100.20.110

10.10.40.1

175.100.20.134

SQLDB011

175.100.20.111

10.10.40.2

175.100.20.134

SQLDB012

175.100.20.112

10.10.40.3

175.100.20.134


   


6 SQL高可用平台配置服务器网络

SQLDB01配置服务器网络

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_02

配置心跳网络IP地址

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_03

配置网络适配器使用顺序,将群集外部网卡设置为优先

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_04

同样的方法,配置其它SQLDB服务器

7 安装并创建故障转移群集

打开添加角色和功能向导

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_05

选择基于角色和功能的安装

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_06

选择当前服务器

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_07

跳过角色选择

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_08

选择故障转移群集功能

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_09

确认额外的组件

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_10

下一步继续安装

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_11

确认安装摘要

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_12

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_13

完成安装

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_14

同样的方法,安装其它的SQLDB服务器。

打开故障转移群集管理器,跳过验证,直接使用创建群集向导

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_15

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_16

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_17

输入群集管理名称和IP地址

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_18

确认配置并开始创建

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_19

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_20

完成创建并查看结果

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_21

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_22

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_23

有警告信息,暂时忽约。

打开群集管理器,查看群集创建后状态

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_24

使用相同方式创建VMSQLSRV02 (SQLDB03,SQLDB05,SLQDB06)

IP:175.100.20.132

使用相同方式创建VMSQLSRV03 (SQLDB07,SQLDB08,SLQDB09)

IP:175.100.20.133

使用相同方式创建VMSQLSRV04 (SQLDB10,SQLDB11,SLQDB12)

IP:175.100.20.134

8 安装新的SQL Server故障转移群集节点

打开SQL Server安装界面并选择安装新的SQL Server全新安装

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_25

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_26

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_27

跳过检查SQL更新

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_28

检查SQL Server安装程序支持文件

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_29

SQL Server 安装程序支持规3则

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_30

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_31

选择SQL Server功能进行安装

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_32

检查功能规则

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_33

输入SQL Server实例故障转移群集名称

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_34

磁盘空间要求信息

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_35

配置群集服务帐户

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_36

配置群集管理帐号

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_37

配置分析服务管理帐户

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_38

配置分析服务数据目录

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_39

配置Reporting Servicces

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_40

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_41

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_42

配置错误报告

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_43

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_44

安装摘要检查

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_45

确认配置并开始安装

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_46

完成安装

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_47

以同样方式创建SQL群集节点SQLDB02,SQLDB03,SQLDB04….SQLDB12

9 启动Always On高可用×××

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_48

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_49

10 附加SQL数据库

启动SQL

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_50

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_51

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_52

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_53

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_54

附加数据库完成

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_SQL S2012_55

另一Always on群集组VMSQLSRV02,可以参考进行本方案,进行数据库迁移恢复

11 Always On高可用添加节点

新建可用性向导

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_56

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_57

指定可用性组名称

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_58

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_59

如条件不满足,需要做一次完整的数据库备份

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_60

分别添加副本服务器SQLDB02\SQLDB03

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_61

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_62

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_63

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_64

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_部署SQL 2012_65

共享数据库存放路经中的C:\DB01,分别在SQLDB02\SQLDB03中新建DB01目录

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_66

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_67

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_68

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_69

基于Windows Server 2012 R2部署SQL 2012的AlwaysOn群集_AlwaysOn群集_70

使用同样方式将VMSQLSRV02、VMSQLSRV03、VMSQLSRV04分别添加到SQL故障转移群集SQLDB04,SQLDB05…SQLDB12