SQLServer读写分离高可用AlwaysOn非域/域环境

一、非域环境搭建alwayson(推荐)

1. 环境要求:
- (1).NET Framework 4.0 及以上
- (2)Windows Server 2016 64位数据中心版
- (3)SQL Server 2016 64位企业版

2. IP规划及名称规划
- 注意:
两个节点的Windos Server 2016 都以Administrator账户登录,并且两台服务器的Administrator密码必须相同,也可以单独在两个节点创建一个相同账号名和密码的账户,并且加入administrator组

计算机名 管理员账号 管理员密码 IP地址
ServerDB1 (节点1) Administrator 3343@qq 10.0.0.101
ServerDB2 (节点2) Administrator 3343@qq 10.0.0.102
Windows群集名称 IP地址(虚拟ip) DNS域 本地host
wincluster1 10.0.0.103 cc.com
SQL侦听器名称 IP地址(虚拟ip) DNS域 本地host
listener1 10.0.0.104 cc.com

1. 添加角色和功能

  • 两个节点均需要安装一下功能和角色:
    (1)安装DNS服务器,
    (2)Windows故障转移群集,
    (3)NET Framework 4.6功能

  • 先修改静态ip然后安装功能:
    ServerDB1 10.0.0.101
    ServerDB2 10.0.0.102

2. 基本属性修改

  • 计算机属性中修改
    修改所有计算机名:ServerDB1、...
    修改所有DNS后缀:cc.com

  • 修改其他网络属性

  • Host文件修改
    C:\Windows\System32\drivers\etc\hosts
    hosts文件加入以下内容
10.0.0.101 ServerDB1
10.0.0.102 ServerDB2
10.0.0.101 ServerDB1.cc.com
10.0.0.102 ServerDB2.cc.com

10.0.0.103 wincluster1
10.0.0.103 wincluster1.cc.com

10.0.0.104 listener1
10.0.0.104 listener1.cc.com

3. 故障转移群集创建

1)命令模式

-- 说明:只需在任意一个节点上执行即可。
New-Cluster –Name wincluster1 -NodeServerDB1,ServerDB2 -AdministrativeAccessPoint DNS -StaticAddress 10.0.0.103

--参数说明:
–Name:集群的名字
-Node:节点名称,多个节点用英文逗号分隔
-StaticAddress:集群的IP

2)手动创建

一直下一步即可

一直下一步加入节点创建

创建完成查看节点信息

4. 设置Sqlserver的AlwaysOn

1.)开启AlwaysOn

  • SQLServer配置管理器设置

2.)重新登录

3.)创建证书互相认证

---------节点1执行 -------
USE [master]
GO

--创建证书
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'lenpos@123456'
GO

CREATE CERTIFICATE cer_alwayson_001 --证书名称
WITH SUBJECT='alwayson 001 local certificate', --主题
EXPIRY_DATE='9999-12-31' --有效时间
GO

--指定路径下创建文件夹
EXEC xp_create_subdir 'C:\software\cerficates'

--备份证书到创建的指定文件夹中
BACKUP CERTIFICATE cer_alwayson_001
TO FILE='C:\software\cerficates\cer_alwayson_001.cer'
GO

--使用指定的证书,创建镜像端点
CREATE ENDPOINT [Endpoint_Mirroring]  --镜像名称
 STATE=STARTED 
 AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) 
 FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE cer_alwayson_001,  --证书名称
 ENCRYPTION = REQUIRED ALGORITHM AES)
 GO
--------节点2执行 --------
USE [master]
GO

--创建证书
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'lenpos@123456'
GO

CREATE CERTIFICATE cer_alwayson_002 --证书名称
WITH SUBJECT='alwayson 002 local certificate', --主题
EXPIRY_DATE='9999-12-31' --有效时间
GO

--指定路径下创建文件夹
EXEC xp_create_subdir 'C:\software\cerficates'

--备份证书到创建的指定文件夹中
BACKUP CERTIFICATE cer_alwayson_002
TO FILE='C:\software\cerficates\cer_alwayson_002.cer'
GO

--使用指定的证书,创建镜像端点
CREATE ENDPOINT [Endpoint_Mirroring]  --镜像名称
 STATE=STARTED 
 AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) 
 FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE cer_alwayson_002,  --证书名称
 ENCRYPTION = REQUIRED ALGORITHM AES)
 GO
'互相拷贝证书后'

-------------节点1执行-------------
 USE master; 
 GO 
 CREATE CERTIFICATE cer_alwayson_002 
 FROM FILE = 'C:\software\cerficates\cer_alwayson_002.cer'; 
 GO

-------------节点2执行-------------
 USE master; 
 GO 
 CREATE CERTIFICATE cer_alwayson_001 
 FROM FILE = 'C:\software\cerficates\cer_alwayson_001.cer'; 
 GO

4.)备份主server1

创建AlwaysOn高可用性必须要对数据库做一次全量备份和日志备份,只在节点1执行以下步骤即可,节点2会自动同步

5.)启动AlwaysOn

6.)创建成功自动同步

5. 创建侦听器(vip漂移)

  • 创建侦听器listener1(10.0.0.104)

-- 注意 --
创建失败或者如上报错有几种情况:
dns名字被占用,网络相关设置错误,
还有就是当在serverdb1上做设置时,之前发生过故障转移,默认的故障转移设置已经不在serverdb1上,而是在别的服务器上,这个默认不容易发现,可以通过如下查看网络设置观察实际位置。


二、域环境搭建AlwaysOn

环境要求:
(2)Windows Server 2012 64位数据中心版以上
(3)SQL Server 2012 64位企业版以上


Copyright © 2009 - Now . XPBag.com . All rights Reserved.
夜心的小站 » SQLServer读写分离高可用AlwaysOn非域/域环境

提供最优质的资源集合

立即查看 了解详情