推荐阅读最新的文章集合  http://www.mssqlmct.cn/?post=6

 


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 服务”列表中找到默认的实例。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第1张图片

  在右健菜单中选择“属性”,打开“AlwaysOn高可用性”选项页,确认已经选择了“启用AlwaysOn可用性组”。


SQL Server 2012 管理新特性:AlwaysOn 可用性组_第2张图片

  启用后,重新启动这个SQL Server 实例。

  如果没有启用这个功能,那么在配置AlwaysOn时会有以下错误:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第3张图片

  如果事先没有将该节点(计算机)加入到群集,则会报错:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第4张图片


2、打开防火墙端口

  在“管理工具”中打开“高级安全 Windows 防火墙”,添加入站规则,打开TCP1433和TCP5022端口。请参考《Windows 2008 中的防火墙》http://jimshu.blog.51cto.com/3171847/590411

  SQL Server 并不会去检查另一个节点的防火墙是否开放了端口,而是直接就去进行AlwaysOn的配置。如果防火墙未开放上述2个端口,SQL Server操作将超时而未成功,因此将出现以下错误信息:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第5张图片

202228442.png


3、准备登录名

  AlwaysOn中使用了镜像(mirror)技术,因此需要使用域帐户同时连接多个数据库引擎,或者使用证书。否则在配置AlwaysOn的过程中会出现以下提示:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第6张图片

  在这个实验中,我们使用域帐户。打开“SQL Server Management Studio”,为域用户新建登录名,并赋予权限(服务器角色为sysadmin)。由于SQL Server 2012可以为一个用户组建立登录名,因此我们在这里直接为域管理员组创建了登录名。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第7张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第8张图片

  创建了登录名,再将SQL Server服务帐户更改为域帐户,并重启这个实例。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第9张图片


4、准备文件夹

  主数据库将在其它节点上进行恢复,恢复后数据库将与原数据库位于硬盘上相同的路径位置。例如:原数据库位于 C:\sqldata ,那么必须为其它节点建立相同的文件夹。否则在配置AlwaysOn的时候会出现以下错误:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第10张图片

  此外,我们在后面的操作中,将主数据库直接备份到共享文件夹,以便于其它节点从这个共享文件夹读取备份数据然后在其本地进行恢复。因此,请在主节点SQL1上共享一个文件夹,例如 \\SQL1\AlwaysOn 。


5、备份数据库

  加入AlwaysOn可用性组的数据库必须为完整恢复模式,并且必须先做一次完整备份。此后,在选择“可用性组的用户数据库”时,才会显示为“满足先决条件”状态。否则,显示为“需要完整恢复模式”或“需要完整备份”状态。



三、新建可用性组

1、启动向导

  以域管理员的帐号登入SQL1,然后打开“SQL Server Management Studio”。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第11张图片

  展开“AlwaysOn高可用性”,在“可用性组”点右键,在菜单中选择“新建可用性组向导”。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第12张图片


2、配置可用性组名称

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第13张图片


3、选择数据库

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第14张图片


4、指定副本

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第15张图片

  点“添加副本”按钮,出现“连接到服务器”对话框。输入服务器名称,然后连接到辅助角色的数据库实例。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第16张图片

  添加了辅助副本所在的实例之后,查看一下“端点”、“备份首选项”和“侦听器”3个选项页。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第17张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第18张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第19张图片


5、选择数据同步

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第20张图片


6、验证

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第21张图片

  由于我们在前面的操作中没有设置侦听器,所以这里会有一个警告信息。我们将在后面配置,所以忽略这个警告。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第22张图片


7、完成

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第23张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第24张图片


8、检查结果

  回到“SQL Server Management Studio”,可见“AlwaysOn高可用性”--“可用性组”--“AlwaysOn1”。

  再检查 \\SQL1\AlwaysOn 文件夹,可见自动产生了db01、db02数据库的备份文件。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第25张图片

  转到DC1,打开“Active Directory 用户和计算机”和DNS,可见“AlwaysOn1”这个虚拟网络名称(VNN)帐户及其IP地址。



四、添加数据库

1、启动向导

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第26张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第27张图片


2、选择数据库

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第28张图片


3、选择数据同步

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第29张图片


4、连接到副本

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第30张图片


5、验证

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第31张图片


6、完成

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第32张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第33张图片


7、检查结果

  回到“SQL Server Management Studio”,检查“AlwaysOn高可用性”--“可用性组”--“AlwaysOn1”。例如,此时在SQL2节点,结果如下:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第34张图片

  再检查 \\SQL1\AlwaysOn 文件夹,可见自动产生了 db03 数据库的备份文件。



五、添加侦听器

  根据官方提供的实验手册,仅在“故障转移群集管理”窗口添加侦听器。实践中不推荐此方法,而是直接在SSMS中添加。


1、添加客户端访问点

  在任意一个节点打开“故障转移群集管理”,在左侧的“服务和应用程序”列表中选择“AlwaysOn1”,为其“添加资源”--“客户端访问点”。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第35张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第36张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第37张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第38张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第39张图片


2、使资源脱机

  为了将前面的操作所新建的客户端访问点与需要故障转移的资源进行绑定,需要先将资源脱机,然后修改资源的属性。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第40张图片


SQL Server 2012 管理新特性:AlwaysOn 可用性组_第41张图片


3、配置依赖关系

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第42张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第43张图片


4、使资源联机

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第44张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第45张图片


说明:在SSMS中添加侦听器的界面。推荐!

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第46张图片


5、检查结果

  打开“SQL Server Management Studio”,在“可用性组侦听器”列表中可见名为“SqlFailOver”的侦听器。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第47张图片

  转到DC1,打开“Active Directory 用户和计算机”和DNS,可见“SqlFailOver”这个虚拟网络名称(VNN)帐户及其IP地址。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第48张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第49张图片



六、添加副本

1、启动向导

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第50张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第51张图片


2、连接到副本

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第52张图片


3、指定副本

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第53张图片


4、 选择数据同步

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第54张图片


5、验证

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第55张图片


6、完成

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第56张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第57张图片


7、检查结果

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第58张图片

  还可以通过“显示面板”查看可用性组的状态。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第59张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第60张图片

  在这个“显示面板”的右侧有一个任务栏,可以“启动故障转移向导”、“查看AlwaysOn运行状况事件”、“查看群集仲裁信息”。例如:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第61张图片



七、查看属性

1、群集“WinCluster1”的属性

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第62张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第63张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第64张图片

  其中,在“资源类型”选项页中,用户定义的资源类型有2类:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第65张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第66张图片


2、服务和应用程序“SQLSERVER”的属性

  打开“故障转移群集管理”,在左侧列表的“服务和应用程序中”找到“AlwaysOn1”,将其重命名为“SQLSERVER”。结果如下:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第67张图片

  再查看其属性:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第68张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第69张图片


3、资源“AlwaysOn1”的属性

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第70张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第71张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第72张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第73张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第74张图片


4、可用性组“AlwaysOn1”的属性

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第75张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第76张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第77张图片


5、可用性副本的属性

  依次查看3个“可用性副本”的属性,例如SQL1的属性如下:

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第78张图片


6、侦听器“SqlFailOver”的属性

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第79张图片

  说明:如果通过SSMS添加的侦听器,应当指明端口(默认为1433)。而通过故障转移群集管理器添加的侦听器,似乎没有自动配置一个端口。因此,推荐通过SSMS添加侦听器。


八、模拟故障转移(切换副本)

1、使用“SQL Server Management Studio”(推荐)

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第80张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第81张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第82张图片

  由于SQL3的“可用性模式”是“异步提交”,因此,如果将SQL3指定为新的主副本则可能造成数据丢失。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第83张图片

  我们也可以在“SQL Server Management Studio”中看到SQL2的状态与SQL3不同。SQL2显示为“已同步”,SQL3显示为“正在同步”。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第84张图片

  在“故障转移可用性组:AlwaysOn1”点“下一步”,继续操作。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第85张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第86张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第87张图片

注意到最后有一个警告信息。

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第88张图片


2、使用“故障转移群集管理器”(不推荐)

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第89张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第90张图片

SQL Server 2012 管理新特性:AlwaysOn 可用性组_第91张图片