推荐阅读最新的文章集合 http://www.mssqlmct.cn/?post=6sql
SQL Server 2012 新特性(一)管理新特性:AlwaysOn数据库
1、准备环境安全
一、准备4台计算机服务器
域控制器DC1,IP地址192.168.1.1网络
主节点SQL1:IP地址192.168.1.21异步
辅助节点SQL2:IP地址192.168.1.22ide
辅助节点SQL3:IP地址192.168.1.23工具
上述4台服务器的其它配置一致:子网掩码255.255.255.0,默认网关192.168.1.254,DNS为192.168.1.1。post
二、准备域环境blog
DC1为域contoso.com的域控制器,有关安装域控制器的操做请见前面的博文。
SQL一、SQL二、SQL3在单机上均安装了SQL Server 2012数据库引擎。请将这3台计算机都加入到contoso.com域。
三、建立群集
分别在SQL一、SQL二、SQL3在单机上打开“服务器管理器”,“添加功能”,添加“故障转移群集”。
以域管理员的账户登入其中一个节点,准备建立群集。打开“故障转移群集管理”,建立一个包含上述3个节点的群集。群集名称为WinCluster1,IP地址为192.168.1.201,仲裁配置为“多数节点”。
详细的操做已在前面的博文有述。《建立Windows2008群集》http://jimshu.blog.51cto.com/3171847/590414
2、准备AlwaysOn
一、开启功能
打开“SQL Server 配置管理器”,在左侧的“SQL Server 服务”列表中找到默认的实例。
在右健菜单中选择“属性”,打开“AlwaysOn高可用性”选项页,确认已经选择了“启用AlwaysOn可用性组”。
启用后,从新启动这个SQL Server 实例。
若是没有启用这个功能,那么在配置AlwaysOn时会有如下错误:
若是事先没有将该节点(计算机)加入到群集,则会报错:
二、打开防火墙端口
在“管理工具”中打开“高级安全 Windows 防火墙”,添加入站规则,打开TCP1433和TCP5022端口。请参考《Windows 2008 中的防火墙》http://jimshu.blog.51cto.com/3171847/590411
SQL Server 并不会去检查另外一个节点的防火墙是否开放了端口,而是直接就去进行AlwaysOn的配置。若是防火墙未开放上述2个端口,SQL Server操做将超时而未成功,所以将出现如下错误信息:
三、准备登陆名
AlwaysOn中使用了镜像(mirror)技术,所以须要使用域账户同时链接多个数据库引擎,或者使用证书。不然在配置AlwaysOn的过程当中会出现如下提示:
在这个实验中,咱们使用域账户。打开“SQL Server Management Studio”,为域用户新建登陆名,并赋予权限(服务器角色为sysadmin)。因为SQL Server 2012能够为一个用户组创建登陆名,所以咱们在这里直接为域管理员组建立了登陆名。
建立了登陆名,再将SQL Server服务账户更改成域账户,并重启这个实例。
四、准备文件夹
主数据库将在其它节点上进行恢复,恢复后数据库将与原数据库位于硬盘上相同的路径位置。例如:原数据库位于 C:\sqldata ,那么必须为其它节点创建相同的文件夹。不然在配置AlwaysOn的时候会出现如下错误:
此外,咱们在后面的操做中,将主数据库直接备份到共享文件夹,以便于其它节点从这个共享文件夹读取备份数据而后在其本地进行恢复。所以,请在主节点SQL1上共享一个文件夹,例如 \\SQL1\AlwaysOn 。
五、备份数据库
加入AlwaysOn可用性组的数据库必须为完整恢复模式,而且必须先作一次完整备份。此后,在选择“可用性组的用户数据库”时,才会显示为“知足先决条件”状态。不然,显示为“须要完整恢复模式”或“须要完整备份”状态。
3、新建可用性组
一、启动向导
以域管理员的账号登入SQL1,而后打开“SQL Server Management Studio”。
展开“AlwaysOn高可用性”,在“可用性组”点右键,在菜单中选择“新建可用性组向导”。
二、配置可用性组名称
三、选择数据库
四、指定副本
点“添加副本”按钮,出现“链接到服务器”对话框。输入服务器名称,而后链接到辅助角色的数据库实例。
添加了辅助副本所在的实例以后,查看一下“端点”、“备份首选项”和“侦听器”3个选项页。
五、选择数据同步
六、验证
因为咱们在前面的操做中没有设置侦听器,因此这里会有一个警告信息。咱们将在后面配置,因此忽略这个警告。
七、完成
八、检查结果
回到“SQL Server Management Studio”,可见“AlwaysOn高可用性”--“可用性组”--“AlwaysOn1”。
再检查 \\SQL1\AlwaysOn 文件夹,可见自动产生了db0一、db02数据库的备份文件。
转到DC1,打开“Active Directory 用户和计算机”和DNS,可见“AlwaysOn1”这个虚拟网络名称(VNN)账户及其IP地址。
4、添加数据库
一、启动向导
二、选择数据库
三、选择数据同步
四、链接到副本
五、验证
六、完成
七、检查结果
回到“SQL Server Management Studio”,检查“AlwaysOn高可用性”--“可用性组”--“AlwaysOn1”。例如,此时在SQL2节点,结果以下:
再检查 \\SQL1\AlwaysOn 文件夹,可见自动产生了 db03 数据库的备份文件。
5、添加侦听器
根据官方提供的实验手册,仅在“故障转移群集管理”窗口添加侦听器。实践中不推荐此方法,而是直接在SSMS中添加。
一、添加客户端访问点
在任意一个节点打开“故障转移群集管理”,在左侧的“服务和应用程序”列表中选择“AlwaysOn1”,为其“添加资源”--“客户端访问点”。
二、使资源脱机
为了将前面的操做所新建的客户端访问点与须要故障转移的资源进行绑定,须要先将资源脱机,而后修改资源的属性。
三、配置依赖关系
四、使资源联机
说明:在SSMS中添加侦听器的界面。推荐!
五、检查结果
打开“SQL Server Management Studio”,在“可用性组侦听器”列表中可见名为“SqlFailOver”的侦听器。
转到DC1,打开“Active Directory 用户和计算机”和DNS,可见“SqlFailOver”这个虚拟网络名称(VNN)账户及其IP地址。
6、添加副本
一、启动向导
二、链接到副本
三、指定副本
四、 选择数据同步
五、验证
六、完成
七、检查结果
还能够经过“显示面板”查看可用性组的状态。
在这个“显示面板”的右侧有一个任务栏,能够“启动故障转移向导”、“查看AlwaysOn运行情况事件”、“查看群集仲裁信息”。例如:
7、查看属性
一、群集“WinCluster1”的属性
其中,在“资源类型”选项页中,用户定义的资源类型有2类:
2、服务和应用程序“SQLSERVER”的属性
打开“故障转移群集管理”,在左侧列表的“服务和应用程序中”找到“AlwaysOn1”,将其重命名为“SQLSERVER”。结果以下:
再查看其属性:
三、资源“AlwaysOn1”的属性
四、可用性组“AlwaysOn1”的属性
五、可用性副本的属性
依次查看3个“可用性副本”的属性,例如SQL1的属性以下:
六、侦听器“SqlFailOver”的属性
说明:若是经过SSMS添加的侦听器,应当指明端口(默认为1433)。而经过故障转移群集管理器添加的侦听器,彷佛没有自动配置一个端口。所以,推荐经过SSMS添加侦听器。
8、模拟故障转移(切换副本)
一、使用“SQL Server Management Studio”(推荐)
因为SQL3的“可用性模式”是“异步提交”,所以,若是将SQL3指定为新的主副本则可能形成数据丢失。
咱们也能够在“SQL Server Management Studio”中看到SQL2的状态与SQL3不一样。SQL2显示为“已同步”,SQL3显示为“正在同步”。
在“故障转移可用性组:AlwaysOn1”点“下一步”,继续操做。
注意到最后有一个警告信息。
二、使用“故障转移群集管理器”(不推荐)