SQLSERVER2016 无域控AlwaysOn 实施步骤
SQLSERVER2016 无域控AlwaysOn 实施步骤
步骤:
一、安装3个windows server 2016系统
1)在3台机器建立具有administrators权限的相同账号密码,本例子直接使用administrator;
2)分别修改计算机名称为 sqldb1,sqldb2,sqldb3;
3)配置dns,如testag.com;
4)在3台服务器上做好hosts映射,如:
192.168.40.128 sqldb1
192.168.40.128 sqldb1.testag.com
192.168.40.129 sqldb2
192.168.40.129 sqldb2.testag.com
192.168.40.130 sqldb3
192.168.40.130 sqldb3.testag.com
192.168.40.100 testcluster
192.168.40.100 testcluster.testag.com
192.168.40.200 sqllistner
192.168.40.200 sqllistner.testag.com
二、配置故障转移群集
1)在3台机器上分别安装故障转移群集;
2)建立故障转移群集 testcluster.testag.com;
三、每台机器单独安装SQLSERVER 2016
1)在3台机器上分别安装SQLSERVER2016,独立安装,非群集安装;
2)给3台服务器的SQLSERVER配置相同的启动账号;
3)配置证书;
四、配置Alwayson
1)在另外2台辅助副本机器上恢复要加入alwayson的数据库;
2)用SSMS的GUI创建alwayson;注:我使用的SSMS按本会丢失两个关键语句,导致创建失败,https://www.cnblogs.com/double-K/p/5994166.html 该博有说明,这两个语句是:
------------这部分代码是图形化工具中缺失的步骤
:Connect sqldb2
ALTER AVAILABILITY GROUP [sqldbag] JOIN;
Go
ALTER DATABASE [testdb2] SET HADR AVAILABILITY GROUP = [sqldbag];
GO
:Connect sqldb3
ALTER AVAILABILITY GROUP [sqldbag] JOIN;
GO
ALTER DATABASE [testdb2] SET HADR AVAILABILITY GROUP = [sqldbag];
GO
3)创建侦听器 sqllistner,做好hosts映射;
4)创建只读路由,让alwayson支持读写分离;
ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb1' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb1' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'tcp://sqldb1.testag.com:1433')); ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb2' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb2' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'tcp://sqldb2.testag.com:1433')); ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb3' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb3' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'tcp://sqldb3.testag.com:1433')); ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb1' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('sqldb2','sqldb3','sqldb1'))); ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb2' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('sqldb3','sqldb1','sqldb2'))); ALTER AVAILABILITY GROUP sqldbag
MODIFY REPLICA ON N'sqldb3' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('sqldb2','sqldb1','sqldb3')));
ssms要让只读路由生效,必须具备两点:
1)连接到制定数据库,而不是默认;

2)增加连接参数 ApplicationIntent=ReadOnly

参考文档:
https://www.cnblogs.com/double-K/p/5994166.html
http://www.cnblogs.com/lyhabc/p/6498712.html
----------------------------------
注意问题和事项:
1)所有sqlserver服务器创建相同密码的administrators权限的windows账号,用作sqlserver的启动账号,避免权限问题;
2)本人使用的ssms2016版本创建alwayson丢失语句,导致创建alwayson失败;
3)无域控,需要对所有资源做hosts映射,包含
sqldb1, sqldb2, sqldb3, sqldb1.testag.com, sqldb2.testag.com, sqldb3.testag.com,
群集服务器 testcluster.testag.com,
侦听器 sqllistner, sqllistner.testag.com
4)忘记创建只读路由,通过侦听器无法连接到只读副本;
5)当alwayson的辅助副本中的 可读辅助副本 设置为 仅读意向 时,ssms无法打开数据库,需要配置 ApplicationIntent=ReadOnly 连接参数才可打开

SQLSERVER2016 无域控AlwaysOn 实施步骤的更多相关文章
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
- (转)从0开始搭建SQL Server AlwaysOn 第一篇(配置域控+域用户DCADMIN)
原文地址: http://www.cnblogs.com/lyhabc/p/4678330.html 实验环境: 准备工作 软件准备 (1) SQL Server 2012 (2) Windows S ...
- 服务器搭建域控与SQL Server的AlwaysOn环境过程(四)配置AlwaysOn
0 引言 这一篇才真正开始搭建AlwaysOn,前三篇是为搭建AlwaysOn 做准备的. 步骤 1.3 配置AlwaysOn 请先使用本地用户Administrator登录这两个集群节点并执行下面的 ...
- (转载) 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
安装完之后别忘了还需要安装SSMS,这是坑爹的地方之二,干嘛不集成到SQL Server安装包里还要用户自己单独下载 下载地址:https://msdn.microsoft.com/en-us/lib ...
- SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测
之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了.windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向 ...
- 服务器搭建域控与SQL Server的AlwaysOn环境过程(三)配置故障转移
0 引言 主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的. 在讲解步骤之前需要了解一下故障转移集群仲裁配置 下面图片来自<Windows Server20 ...
- sql server 2016 AlwaysOn实现无域高可用全教程
一.简介环境:小编使用的服务器是windows server 2016(系统服务器) + sql server 2016(数据库服务器)(windows server 2016 + sql serve ...
- 配置SQL Server 2016无域AlwaysOn(转)
Windows Server 2016 以及 SQL Server 2016出来已有一段时间了,因为Windows Server 2016可以配置无域的Windows群集,因此也能够以此来配置无域的S ...
- 服务器搭建域控与SQL Server的AlwaysOn环境过程(一) 搭建域控服务器
0 准备阶段 1. Windows Server 服务器 3台(其中域控服务器配置可降低一个水准,目前博主试用的是:域控服务器--2核4G 数据库服务器(节点)--4核8G ) 2. SQL Serv ...
随机推荐
- 【BZOJ】1681: [Usaco2005 Mar]Checking an Alibi 不在场的证明(spfa)
http://www.lydsy.com/JudgeOnline/problem.php?id=1681 太裸了.. #include <cstdio> #include <cstr ...
- form 回车键(ENTER)
<form class="clb_yyxx_nr" name="appointment_content" action="" onsu ...
- MySQL------代码1024,can't get hostname for your address解决方法
1.hosts文件问题 进入C:\Windows\System32\drivers\etc\hosts 查看里面是否包含: # 127.0.0.1 localhost 没有则添加,再重启MySQL服务 ...
- 使用ProcDump工具抓取dump
首先得到要抓取的进程号 cd %windir%\syswow64\inetsrvappcmd list wp得到pid之后, 在任务管理器里发现w3wp.exe的CPU总在49%-60%左右, 间歇性 ...
- SQL 语句快速参考
来自 W3CSchool 的 SQL 快速参考 SQL 语句 语法 AND / OR SELECT column_name(s)FROM table_nameWHERE conditionAND|OR ...
- LAMP集群项目五 项目备份
1.打包到本地 2.推送到备份服务器 3.删除若干天前的备份 ip=`awk '/IPADDR/' /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F ...
- linux中常见命令操作(转)
1.日常操作命令 **查看当前所在的工作目录pwd **查看当前系统的时间 date **查看有谁在线(哪些人登陆到了服务器)who 查看当前在线last 查看最近的登陆历史记录 2.文件系统操作** ...
- 2017 Multi-University Training Contest - Team 1—HDU6033&&HDU6034
HDU6033 Add More Zero 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6033 题目意思:给一个m,求一个数k使得10^k最接近2 ...
- Django 翻译与 LANGUAGE_CODE
LANGUAGE_CODE[1] LANGUAGE_CODE 是 language code 的字符串.格式与 Accept-Language HTTP header 相同,不区分大小写,比如:zh, ...
- git学习(5)分支管理(续)
git学习(5)分支管理(续) 1.解决冲突 冲突的产生 如我们在新建分支和原来master分支上对同一文件做了修改并提交,在合并分支的时候就会遇到冲突 比如我新建了分支myBranch,在这个分支上 ...