SQL Server 2012 管理新特性:AlwaysOn 可用性组
SQL Server 2012 新特性(一)管理新特性:AlwaysOn
一、准备环境
1、准备4台计算机
域控制器DC1,IP地址192.168.1.1
主节点SQL1:IP地址192.168.1.21
辅助节点SQL2:IP地址192.168.1.22
辅助节点SQL3:IP地址192.168.1.23
上述4台服务器的其它配置一致:子网掩码255.255.255.0,默认网关192.168.1.254,DNS为192.168.1.1。
2、准备域环境
DC1为域contoso.com的域控制器,有关安装域控制器的操作请见前面的博文。
SQL1、SQL2、SQL3在单机上均安装了SQL Server 2012数据库引擎。请将这3台计算机都加入到contoso.com域。
3、创建群集
分别在SQL1、SQL2、SQL3在单机上打开“服务器管理器”,“添加功能”,添加“故障转移群集”。
以域管理员的帐户登入其中一个节点,准备创建群集。打开“故障转移群集管理”,创建一个包含上述3个节点的群集。群集名称为WinCluster1,IP地址为192.168.1.201,仲裁配置为“多数节点”。
详细的操作已在前面的博文有述。《创建Windows2008群集》http://jimshu.blog.51cto.com/3171847/590414
二、准备AlwaysOn
1、开启功能
打开“SQL Server 配置管理器”,在左侧的“SQL Server 服务”列表中找到默认的实例。
在右健菜单中选择“属性”,打开“AlwaysOn高可用性”选项页,确认已经选择了“启用AlwaysOn可用性组”。
启用后,重新启动这个SQL Server 实例。
如果没有启用这个功能,那么在配置AlwaysOn时会有以下错误:
如果事先没有将该节点(计算机)加入到群集,则会报错:
2、打开防火墙端口
在“管理工具”中打开“高级安全 Windows 防火墙”,添加入站规则,打开TCP1433和TCP5022端口。请参考《Windows 2008 中的防火墙》http://jimshu.blog.51cto.com/3171847/590411
SQL Server 并不会去检查另一个节点的防火墙是否开放了端口,而是直接就去进行AlwaysOn的配置。如果防火墙未开放上述2个端口,SQL Server操作将超时而未成功,因此将出现以下错误信息:
3、准备登录名
AlwaysOn中使用了镜像(mirror)技术,因此需要使用域帐户同时连接多个数据库引擎,或者使用证书。否则在配置AlwaysOn的过程中会出现以下提示:
在这个实验中,我们使用域帐户。打开“SQL Server Management Studio”,为域用户新建登录名,并赋予权限(服务器角色为sysadmin)。由于SQL Server 2012可以为一个用户组建立登录名,因此我们在这里直接为域管理员组创建了登录名。
创建了登录名,再将SQL Server服务帐户更改为域帐户,并重启这个实例。
4、准备文件夹
主数据库将在其它节点上进行恢复,恢复后数据库将与原数据库位于硬盘上相同的路径位置。例如:原数据库位于 C:\sqldata ,那么必须为其它节点建立相同的文件夹。否则在配置AlwaysOn的时候会出现以下错误:
此外,我们在后面的操作中,将主数据库直接备份到共享文件夹,以便于其它节点从这个共享文件夹读取备份数据然后在其本地进行恢复。因此,请在主节点SQL1上共享一个文件夹,例如 \\SQL1\AlwaysOn 。
5、备份数据库
加入AlwaysOn可用性组的数据库必须为完整恢复模式,并且必须先做一次完整备份。此后,在选择“可用性组的用户数据库”时,才会显示为“满足先决条件”状态。否则,显示为“需要完整恢复模式”或“需要完整备份”状态。
三、新建可用性组
1、启动向导
以域管理员的帐号登入SQL1,然后打开“SQL Server Management Studio”。
展开“AlwaysOn高可用性”,在“可用性组”点右键,在菜单中选择“新建可用性组向导”。
2、配置可用性组名称
3、选择数据库
4、指定副本
点“添加副本”按钮,出现“连接到服务器”对话框。输入服务器名称,然后连接到辅助角色的数据库实例。
添加了辅助副本所在的实例之后,查看一下“端点”、“备份首选项”和“侦听器”3个选项页。
5、选择数据同步
6、验证
由于我们在前面的操作中没有设置侦听器,所以这里会有一个警告信息。我们将在后面配置,所以忽略这个警告。
7、完成
8、检查结果
回到“SQL Server Management Studio”,可见“AlwaysOn高可用性”--“可用性组”--“AlwaysOn1”。
再检查 \\SQL1\AlwaysOn 文件夹,可见自动产生了db01、db02数据库的备份文件。
转到DC1,打开“Active Directory 用户和计算机”和DNS,可见“AlwaysOn1”这个虚拟网络名称(VNN)帐户及其IP地址。
四、添加数据库
1、启动向导
2、选择数据库
3、选择数据同步
4、连接到副本
5、验证
6、完成
7、检查结果
回到“SQL Server Management Studio”,检查“AlwaysOn高可用性”--“可用性组”--“AlwaysOn1”。例如,此时在SQL2节点,结果如下:
再检查 \\SQL1\AlwaysOn 文件夹,可见自动产生了 db03 数据库的备份文件。
五、添加侦听器
根据官方提供的实验手册,仅在“故障转移群集管理”窗口添加侦听器。实践中不推荐此方法,而是直接在SSMS中添加。
1、添加客户端访问点
在任意一个节点打开“故障转移群集管理”,在左侧的“服务和应用程序”列表中选择“AlwaysOn1”,为其“添加资源”--“客户端访问点”。
2、使资源脱机
为了将前面的操作所新建的客户端访问点与需要故障转移的资源进行绑定,需要先将资源脱机,然后修改资源的属性。
3、配置依赖关系
4、使资源联机
说明:在SSMS中添加侦听器的界面。推荐!
5、检查结果
打开“SQL Server Management Studio”,在“可用性组侦听器”列表中可见名为“SqlFailOver”的侦听器。
转到DC1,打开“Active Directory 用户和计算机”和DNS,可见“SqlFailOver”这个虚拟网络名称(VNN)帐户及其IP地址。
六、添加副本
1、启动向导
2、连接到副本
3、指定副本
4、 选择数据同步
5、验证
6、完成
7、检查结果
还可以通过“显示面板”查看可用性组的状态。
在这个“显示面板”的右侧有一个任务栏,可以“启动故障转移向导”、“查看AlwaysOn运行状况事件”、“查看群集仲裁信息”。例如:
七、查看属性
1、群集“WinCluster1”的属性
其中,在“资源类型”选项页中,用户定义的资源类型有2类:
2、服务和应用程序“SQLSERVER”的属性
打开“故障转移群集管理”,在左侧列表的“服务和应用程序中”找到“AlwaysOn1”,将其重命名为“SQLSERVER”。结果如下:
再查看其属性:
3、资源“AlwaysOn1”的属性
4、可用性组“AlwaysOn1”的属性
5、可用性副本的属性
依次查看3个“可用性副本”的属性,例如SQL1的属性如下:
6、侦听器“SqlFailOver”的属性
说明:如果通过SSMS添加的侦听器,应当指明端口(默认为1433)。而通过故障转移群集管理器添加的侦听器,似乎没有自动配置一个端口。因此,推荐通过SSMS添加侦听器。
八、模拟故障转移(切换副本)
1、使用“SQL Server Management Studio”(推荐)
由于SQL3的“可用性模式”是“异步提交”,因此,如果将SQL3指定为新的主副本则可能造成数据丢失。
我们也可以在“SQL Server Management Studio”中看到SQL2的状态与SQL3不同。SQL2显示为“已同步”,SQL3显示为“正在同步”。
在“故障转移可用性组:AlwaysOn1”点“下一步”,继续操作。
注意到最后有一个警告信息。
2、使用“故障转移群集管理器”(不推荐)
SQL Server 2012 管理新特性:AlwaysOn 可用性组的更多相关文章
- SQL Server 2012 管理新特性:AlwaysOn【转】
http://jimshu.blog.51cto.com/3171847/871169 见超链接
- 【数据库】 SQL SERVER 2012 实用新特性
[数据库] SQL SERVER 2012 实用新特性 官方链接 一. ALWAYS ON - 灾难恢复 二. 列存储索引 - 比非聚集索引效率高,但有索引表不允许修改数据(插入,更新,删除),用于读 ...
- AlwaysOn可用性组功能测试(二)--SQL Server群集故障转移对AlwaysOn可用性组的影响
三. SQL Server群集故障转移对AlwaysOn可用性组的影响 1. 主副本在SQL Server群集CLUSTEST03/CLUSTEST03上 1.1将节点转移Server02.以下是故障 ...
- SQL Server 2012 T-SQL 新特性
序列 Sequence SQL Server 现在将序列当成一个对象来实现,创建一个序列的例子语法如下: CREATE SEQUENCE DemoSequence START WITH 1 INCRE ...
- sql server 2012使用新特性offset和fetch next完成分页操作
1 select * from HumanResources.Department order by DepartmentID offset rows fetch next rows only; of ...
- SQL Server 2014 BI新特性(一)五个关键点带你了解Excel下的Data Explorer
Data Explorer是即将发布的SQL Server 2014里的一个新特性,借助这个特性讲使企业中的自助式的商业智能变得更加的灵活,从而也降低了商业智能的门槛. 此文是在微软商业智能官方博客里 ...
- 【数据库】 SQL SERVER 2014 实用新特性
[数据库] SQL SERVER 2014 实用新特性 官方链接 一. 内存优化表 大幅提高数据库性能,不过目前没有窗口化设计只能写语句 二. 索引增强
- Sql Server 2012 的新分页方法分析(offset and fetch) - 转载
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...
- 分享SQL Server 2012/2014内存数据库,AlwaysOn,参考教材与网上总结
Sql Server 2012 高可用性的几种方案的比较,AlwaysOn优势何在 对Sql Server 2012 高可用性与灾难恢复的几种方案的比较,复制,集群,镜像优劣何在,新生技术Always ...
随机推荐
- 记一次 synchronized 锁字符串引发的坑兼再谈 Java 字符串
业务有一个需求,我把问题描述一下: 通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间. 并发下,取IP是有一定策略的,取到IP之后拿IP对应的COOKI ...
- Java中常见的URL问题及解决方案
URL无处不在,不过似乎开发人员并没有真正地理解它们,因为在Stack Overflow上经常看到有人在问如何正确的创建一个URL.想知道URL语法是如何工作的,可以看下兄弟连教育总结的这篇文章,非常 ...
- NodeJs的async
async.auto最强大的一个api,它适合逻辑复杂的代码,代码中你一部分需要串行,两部分相互依赖,一部分又需要并行,代码中不需要依赖,这个时候你就可以通过auto随性所欲控制你的代码逻辑. var ...
- MYSQL数据库学习十 单表数据记录查询
10.1 简单数据记录查询 SELECT field1,field2,...fieldn FROM table_name; “*” ——查询所有记录 SELECT * FROM table_name; ...
- linux新建用户并赋管理员权限
输入useradd新建一个用户 [root@java-devenv ~]# useradd yaoqi [root@java-devenv ~]# passwd yaoqi passwd 是修改用户密 ...
- Python中列表、元组、字典增删改查基本区别
1.定义: 列表:num = ["a","b"."c"] ##定义后可增删改查 元组:num = ("a"," ...
- kvm之六:配置kvm虚拟机通过VNC访问
1.网络安装的snale2没有添加VNC访问方式,配置如下 [root@kvm ~ ::]#virsh edit snale2 插入如下配置: <graphics type=' autoport ...
- js浮点数运算的坑,多少同学有碰到过?
javascript中的数字都是双精度的浮点数. JavaScript中的整数并不是一个独立的数据类型,而是浮点数的一个子集. 浮点数的坑我们看下面的例子 在浏览器的console 控制台上我们分别进 ...
- [日常] NOIWC 2018爆零记
开个坑慢慢更(逃 (然而没准会坑掉?) day 0 大概 $8:30$ 就滚去雅礼了qwq 过去的时候发现并没有人...进报到处楼门的时候还被强行拍照围观了一波OwO 然后就领了HZ所有人的提包和狗牌 ...
- hibernate框架学习笔记12:查询优化
类级别查询优化: 创建一个实体类: package domain; import java.util.HashSet; import java.util.Set; //客户实体 public clas ...