从0开始搭建SQL Server AlwaysOn_第1页
从0开始搭建SQL Server AlwaysOn_第2页
从0开始搭建SQL Server AlwaysOn_第3页
从0开始搭建SQL Server AlwaysOn_第4页
从0开始搭建SQL Server AlwaysOn_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、从0开始搭建SQL Server AlwaysOnAlwaysOn是SQL Server2012推出的最新的高可用技术,用以取代原有的SQL Serve镜像。实验环境:准备工作软件准备(1) SQL Server 2012 (2) Windows Server 2012 R2 DataCenter 64位(3) VMware-workstation 10.0操作系统:都是Windows Server 2012 R2 DataCenter 64位(win2012/win2012R2 只有DataCenter 版本才能使用故障转移集群)当然,生产环境服务器最好每台服务器都配置两个网卡,一个网卡用作

2、业务,一个网卡用作心跳,当然一个网卡也没有什么问题至于各个计算机的计算机名我这里不做修改,在真实生产环境计算机名是需要修改的计算机名域控:win-felbg10uu7fnode1:win-7107jjj2bccnode2:win-5pmsdhui0kq故障转移集群VIP跟AlwaysOn 的VIP的作用是不一样的故障转移集群VIP(70)是让你连接故障转移集群管理器的集群用的,而不是让你连接AlwaysOn AlwaysOn 的VIP(71)是让你连接AlwaysOn 的所以故障转移集群VIP跟AlwaysOn 的VIP不能一样!故障转移集群VI

3、P跟AlwaysOn 的VIP的作用是不一样的步骤下面使用step by step guide的方式来展示怎麽安装域控注意:先把各台机器的防火墙关掉。域控端1、 配置域控ip,ipv6去掉,因为DNS服务器就安装在域控上,所以首选DNS服务器填写: 回环地址2、 安装AD域服务安装AD域服务的同时,操作系统会同时安装好DNS服务器3、 点击服务器管理器右上角的小旗帜,弹出对话框,点击“将此服务器提升为域控制器”以提升为域控4、 进入AD域服务配置向导,设置域名 5、 设置DSRM密码为12345默认林中的第一棵域树的根域的域控制器必须担当全局编录服务器和必须安装DNS服务,不

4、能是只读域控制器NetBIOS名称不需要设置,至于什么是NetBIOS名称,可以在本文最后的两本书中进行了解AD DS数据库文件路径保持默认就可以了,当然将日志文件和数据库文件放在不同的磁盘有助提升性能,更多信息可以在本文最后的两本书中进行了解6、 安装完AD DS之后会自动重启服务器,重启服务器之后打开DNS管理器可以看到域控制器win-已经将主机名(win-felbg10uu7f)和IP地址(55)注册到DNS服务器内可以看到动态更新已开启在_tcp文件夹内,_ldap记录和_gc记录说明这台服务器已经正确注册为域控制器和担当全局编录服务器注意:如果在_tcp文件夹

5、内没有_ldap记录和_gc记录相关的记录,那么请重启Netlogon服务来重新注册7、 检查AD域服务和Netlogon服务是否正常启动8、 在AD用户和计算机里添加域用户DCADMIN,请务必记住DCADMIN的密码,因为后面第二篇和第三篇都需要用到DCADMIN这个域用户注意:如果域控机器上默认的Administrator本地计算机账户没有被禁用的话,在安装完域控之后,Administrator本地账户会从本地的SAM本地账户移动到域账户(这时候本地账户已经不存在Administrator这个账户,除非将域控进行降级)这时候其他非域控机器都可以利用Administrator域账户进行登录

6、,但是我们一般不使用Administrator域账户,而是新建一个域用户来做,这里就是另外新建一个DCADMIN账户详细可以查看Windows Server2012系统配置指南书域用户DCADMIN创建完毕9、 将这个域用户加入到域计算机组和域管理员组10、 将系统自动更新关闭掉客户端1、 设置客户端ip,ipv6去掉,注意要设置网关2、 加域,填写域名,并输入刚刚在 AD域用户(DCADMIN)和密码加入域之前最好在客户端先ping一下DNS()和域控的IP,看能否ping通,如果ping不通,加入域肯定不成功了,需要进一步排查为什麽ping不通需要先检查一下防火墙,一般都是防火墙的问题在客

7、户端的网络和共享中心可以看到机器当前已经加入这个域网络加域之后,在域控的DNS管理器里能看到新添加的机器的主机和IP地址在AD用户和计算机里的Computers容器里也能看到新添加的机器3、 加域后客户端计算机会自动重启,重启后使用本地Administrator用户登录计算机,先不要用DCADMIN这个域用户来登录计算机4、 打开计算机管理-本地用户和组,选择组,选中Administrators组,右键-添加到组点击添加输入域用户(DCADMIN)和密码这样DCADMIN域用户就有了这台客户端计算机的Administrator权限5、 将系统自动更新关闭掉另一台客户端计算机的配置这里就不再叙述

8、了,步骤都是一样的最后在域控里查看DNS和AD Computers容器,两个节点都已经添加成功总结通过上面的步骤演示,在搭建AD DS服务的时候有一些地方是需要注意的,希望大家能够看清楚截图,一步一步进行配置,基本上就没有问题了现在AlwaysOn可用性组已经完全支持 Windows Azure ,可以把辅助副本部署到 Windows Azure 上这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的在讲解步骤之前需要了解一下故障转移集群仲裁配置四种集群的仲裁配置:1、多数节点:这种配置不会

9、用到仲裁磁盘,而所谓多数节点就是在正常节点数量占多数的情况下,集群才会提供服务,否则就停止服务。这种配置适用于奇数节点的集群,例如5个节点的集群,其正常节点数量必须至少3个,集群才会提供服务2、多数节点和磁盘:适用于偶数节点的集群,他在计算法定数量时会将仲裁磁盘计算进来,例如,4个节点+1个仲裁磁盘节点的集群,可以将其视为5个节点的集群,这时正常节点数量必须至少3个,集群才会提供服务3、多数节点和文件共享:它和(多数节点和磁盘)类似,不过仲裁磁盘改为共享文件夹内的文件4、没有多数:只有磁盘,只要仲裁磁盘脱机,集群就会停止提供服务(不建议使用,这种方式很早之前已经有了)简单说一下见证磁盘和见证共

10、享文件夹见证共享文件夹是Windows 2008才推出的见证磁盘方式,因为以前的见证磁盘(简称仲裁盘)需要共享存储,也就是各个节点需要挂载同一个磁盘,这个磁盘叫见证磁盘,是放在共享存储上面的推出见证共享文件夹之后我们可以不需要高大上的共享存储,用共享文件夹就可以了我们在使用故障转移集群的时候,只用两种仲裁配置:(多数节点) 和 (多数节点和文件共享)如果集群节点是奇数,那么使用多数节点如果集群节点是偶数,那么使用多数节点和文件共享 (需要配置一个共享文件夹,各个节点都能访问这个共享文件夹,并且共享文件夹所在机器不需要加入域)注意:域控不需要安装故障转移集群服务和SQL Server,也不需要加

11、入到故障转移集群所有机器防火墙都关掉两个节点都需要安装相同的更新程序,建议不要开启自动更新功能,由系统管理员手动更新SQL Server 2012 AlwaysOn只支持最多一个主副本和四个辅助副本,最多允许三个同步提交的可用性副本(包括主副本),最多允许两个自动故障转移副本(包括主副本)步骤step by step的方式向大家展示1、 安装故障转移集群,两个节点都同时安装故障转移集群服务2、 两个节点都安装完故障转移集群之后,在其中一个节点上进行注销操作,然后使用DCADMIN这个域用户登录计算机3、 打开故障转移集群管理器4、 在“选择服务器或群集”界面中,单击“浏览”按钮将所有要加入群集

12、的服务器添加进来,然后单击“下一步”按钮。5、 在验证配置向导中最好选择运行所有测试,进行全部检测就可以查看到服务器之间建立群集的所有设置,包括网络、共享磁盘、操作系统等。可以查看一下报告报告里面一定不能出现失败,否则你需要检查是什么问题导致失败,失败是建立不了故障转移集群的出现警告要看情况,对于存储的警告,由于目前为止没有添加任何的存储设备,这里可以忽略,还有网络警告 由于各个节点只有一个网卡,正常来说还需要一个心跳网卡,所以这里会出现警告,由于实验环境这个警告可以忽略集群报告会存放在这个路径下C:WindowsClusterReports6、 点击完成7、 创建集群向导8、 输入集群名称和

13、vip注意:这个只是集群的管理名称和管理IP,跟AlwaysOn无关由于我们当前还没有任何存储,所以不勾选将所有符合条件的存储添加到群集查看报告可以看到 找不到磁盘见证的相应磁盘,因为我们还没加见证共享文件夹或仲裁盘,这里可以忽略9、 群集创建完成可以在域控的AD用户和计算机里看到集群的virtual name10、由于我们是两个节点的故障转移集群,所以需要加上共享文件夹,在域控上建立一个共享文件夹,让两个集群节点都可以访问注意:如果是奇数节点,这一步是不需要做的!共享文件夹所在机器入域(域网络)和不入域(独立机器)都无所谓生产环境不要把共享文件夹放在域控上!注意集群停止服务的条件10、 在域

14、控上的C盘新建一个quorumshare文件夹作为共享文件夹quorumshare文件夹的权限为everyone完全控制和DCADMIN域用户的读写权限(保险起见)11、 UNC路径:WIN-FELBG10UU7Fquorumshare在quorumshare文件夹下随便建一个文本文件12、 在两个集群节点上测试能否访问共享文件夹两个节点都用域用户DCADMIN登录,并测试另外两个节点能否访问这个quorumshare共享文件夹13、 回到故障转移集群管理器,填写文件共享路径:WIN-FELBG10UU7Fquorumshare注意:如果quorumshare文件夹没有写入权限,那么在填写文件

15、共享路径的时候会被拒绝14、 可以看到共享文件夹下面会生成VerifyShareWriteAccess.txt和Witness.log两个文件,至于这两个文件的作用大家看它们的文件名就知道了故障转移集群到这里就已经配置完成如果集群节点跟见证共享文件夹不能通信,例如 域控关机了,到达一定时间,在服务器管理器面板里角色和服务器组会显示红色点击服务可以看到 故障转移集群服务已经挂起总结通过上面的步骤演示,故障转移集群配置就完成了,希望大家能够看清楚截图,一步一步进行配置,基本上就没有问题了下一篇正式讲SQL Server AlwaysOn搭建了这一篇是从0开始搭建SQL Server AlwaysO

16、n 的第三篇,这一篇才真正开始搭建AlwaysOn,前两篇是为搭建AlwaysOn 做准备的步骤这一篇依然使用step by step的方式介绍怎麽搭建AlwaysOn请先使用本地用户Administrator登录这两个集群节点并执行下面的操作,先不要用域用户DCADMIN登录1、 两个集群节点都需先安装.NET Framework 3.5(在Windows Server 2012 R2中使用添加功能来安装)。2、 各个集群节点本地都要准备好相关软件,在各个节点上独立安装SQL Server 2012(不能使用群集方式安装),保证各个节点中使用相同的安装目录结构和排序规则!选择全新SQL Se

17、rver独立安装,不要选择新的SQL Server故障转移集群安装至于安装过程,默认下一步下一步就可以了,跟单机安装SQL Server没有区别,这里就忽略安装过程了注意:因为本人的安装包已经自带SP1补丁包,为了后续避免踩坑,如果没有安装SP1或以上补丁包的,请先安装注意:如果一开始使用域用户DCADMIN来登录集群节点机器,并安装SQL Server的时候会遇到一个坑,SQL Server安装程序会连接故障转移集群,但是实际上单机安装SQL Server根本不需要连接故障转移集群本人排查了很久都找不到原因,为什么SQL Server安装程序会连接故障转移集群,下面是SQL Server安装

18、日志如果一开始就使用集群节点本地用户Administrator登录来安装SQL Server就不会踩到这个坑3、 注销集群节点计算机,然后使用域用户DCADMIN登录,然后设置SQL Server的启动账户为域用户DCADMIN打开服务管理器,先修改SQL代理的启动账户为域用户DCADMIN,然后再修改SQL 引擎的启动账户为域用户DCADMIN点击“位置”,修改查找位置,选中点击“高级”点击“立即查找”,选中DCADMIN点击“确定”输入域用户DCADMIN的密码重启一下SQL代理服务重启之后可以看到登录用户为DCADMIN同样,SQL引擎服务也需要同样的设置这样,SQL引擎服务和SQL代理

19、服务都用域用户DCADMIN启动另一个集群节点的SQL Server也需要做同样的操作注意:在集群节点脱离域之后,SQL引擎服务和SQL代理服务都要用本地服务帐号来启动,不能再用域用户来启动4、 将DCADMIN域用户加入到两个集群节点的SQL Server登录用户中,服务器角色选择sysadmin先用sa登录SQL Server添加登录用户,跟SQL 服务添加启动账户的步骤一样,将DCADMIN域用户添加为登录用户给予sysadmin权限两个集群节点都可以用DCADMIN域用户来登录SQL Server5、 回到SQL Server配置管理器,启用AlwaysOn可用性组注意:集群节点一定要

20、能进行通信,如果集群节点之间断开通信,那么启用AlwaysOn的时候会报错重启SQL Server如果AlwaysOn启用成功,在服务器属性里可以看到启用HADR为True6、 在其中一个集群节点的SQL Server中验证各节点的投票数 ,在其中一个集群节点的SQL Server上执行使用下面SQL语句SELECT * FROM sys.dm_hadr_cluster_members;SELECT * FROM SYS.dm_hadr_cluster7、 再次确保各节点已经关闭防火墙,如果防火墙没有关闭,那么在创建可用性组的时候会弹出下面错误无法将数据库“test”联接到可用性副本“xxx”

21、的可用性组“xx”针对主副本的连接未处于活动状态。无法处理该命令(错误:35250)8、 我们使用自行初始化数据库的方式,所以这一步需要新建一个测试库和测试表并插入一些测试数据(这些动作就不演示了),然后对数据库做一个完整备份 和 日志备份然后把完整备份文件和日志备份文件搬到WIN-5PMSDHUI0KQ机器上依次进行还原,完整备份-还原完整备份-日志备份-还原日志备份脚本-在win-7107jjj2bcc上执行CREATE DATABASE testUSE testCREATE TABLE test1(id INT,name VARCHAR(100)INSERT INTO test1 SEL

22、ECT 1,'test'-在win-7107jjj2bcc上执行DECLARE CurrentTime VARCHAR(50), FileName VARCHAR(200)SET CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','') -(test 数据库完整备份)SET FileName = 'c:DBBackuptest_FullBa

23、ckup_' + CurrentTime+'.bak'BACKUP DATABASE testTO DISK=FileName WITH FORMAT ,COMPRESSION -(test 数据库日志备份) SET FileName = 'c:DBBackuptest_logBackup_' + CurrentTime+'.bak'BACKUP log testTO DISK=FileName WITH FORMAT ,COMPRESSION-在WIN-5PMSDHUI0KQ上执行USE masterRESTORE DATABASE t

24、est FROM DISK = N'C:DBBackuptest_FullBackup_2015_07_30_093949.bak' WITH FILE = 1, MOVE N'test' TO N'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATAtest.mdf', MOVE N'test_log' TO N'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATAtest_

25、log.ldf', NOUNLOAD,NORECOVERY, REPLACE, STATS = 5GO-注意一定要用NORECOVERY来还原备份USE masterRESTORE DATABASE test FROM DISK = N'C:DBBackuptest_logBackup_2015_07_30_105949.bak' WITH FILE = 1, NOUNLOAD,NORECOVERY, REPLACE, STATS = 5GO 自行初始化数据库的好处是:如果我们的辅助副本是跨机房的我们都可以控制初始化的时间,也就是备份和还原的时间,不需要SQL Serv

26、er来帮我们备份还原数据库在WIN-5PMSDHUI0KQ上还原日志备份之后的样子9、 在“Alwayson高可用性”节点上右键选择“新建可用性组向导注意:加入到AlwaysOn可用性组的数据库必须符合下面要求(1)数据库的恢复模式必须是“完整”恢复模式(2)数据库已进行了一次完整备份(3)需要是用户库,系统库不能加入可用性组(4)数据库可以读写,只读库不能加入到可用性组(5)数据库处于多用户模式(6)数据库没有使用AUTO_CLOSE(7)不属于任何其他的可用性组(8)数据库没有配置数据库镜像一个可用性组最大支持100个数据库10、 点击“下一步”,输入一个从未使用过的高可用性组名称 tes

27、tAG11、 点击下一步,选择要添加的数据库12、 点击“下一步”,使用添加副本来将其他节点添加到可用性组中,并选择自动故障转移节点和同步提交节点,因为我们只有两个节点我们将辅助副本设置为可读,能够自动故障转移,同步提交模式13、 点击“端点”tab页面设置端点注意:端点URL使用IP的方式,不要用FQDN长名的方式,因为服务器通常会有两个网卡,一个public网卡,一个private网卡,端点建议使用private网卡地址这样在端点直接传送的数据就会经由private网卡来传送,使用TCP:/:5022 这种FQDN长名的方式是不能保证端点数据通过private网卡来传送SQL Server

28、服务账户使用域用户DCADMIN来进行身份验证,避免使用证书的方式14、 “备份首选项”和“侦听器”不需要设置,保持默认就行,可用性侦听器我们后面再添加,可以直接点击“下一步”点击“是”15、 选择初始数据同步,这里选择“仅联接”模式16、 点击“下一步”来验证配置,对应侦听器配置警告可以忽略,后期来添加侦听器因为使用的是“仅联接”数据库初始化方式,验证跳过像可用磁盘空间这样的检查17、 点击“下一步”来检查并确认之前的配置信息,若无误,点击“完成”。另外,此处也可保存建立可用性组脚本,以便分步诊断故障之用。18、 所有摘要均成功完成,显示绿色对勾。如果出现黄色警告,则需进行进一步判断是否成功

29、。若出现红色错误,表示AG创建不成功注意:如果大家使用奇数集群节点,并且仲裁配置使用的是节点多数,那么在创建可用性组完毕的时候,WSFC仲裁投票配置会显示警告点击警告链接会弹出下面的对话框,这个警告其实可以不用理会19、 查看服务器和数据库的变化主副本数据库变为已同步辅助副本辅助副本这时候是可读的,在主副本上对test1表做的更改都能同步到辅助副本上的test1表再看一下故障转移集群管理器可用性组变为一个集群角色点击显示面板可以显示可用性面板20、 在创建可用性组后,在“可用性组侦听器”上右键添加侦听器来创建侦听器,选择静态IP的网络模式(尽量不要选择DHCP网络模式),输入一个从未使用过的名

30、称(该名称将被用来创建网络名称资源)和访问端口点击确定创建成功在域控的DNS管理器上会注册一条A记录在AD里的Computers容器里会添加一个故障转移集群虚拟网络名称账户在故障转移集群管理器里的角色节点,可以看到客户端访问名称和IP地址,客户端通过这个访问名称进行访问数据库使用侦听器名称进行登录SQL Server当然也可以用listener IP来连接SQL Server在辅助副本添加登录用户,让主副本上的登录用户也可以读取辅助副本数据步骤1:查看主库上该账号的sid test为库名SELECT * FROM test.sysusers比如:dalogin 0x99AD266AFD26F8

31、41B3E49EF9633B0D4B步骤2:在副本数据库上创建对应账号,其中 sid对应的值是主库上所查到的sid的值CREATE LOGIN dalogin WITH PASSWORD=N'xxxxxxx',SID =0x99AD266AFD26F841B3E49EF9633B0D4B, DEFAULT_DATABASE=test, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF可用性组的基本管理注意:尽量用SSMS的UI或TSQL语句来操作可用性组,不要用故障转移集群管理器来操作故障转移首先使用 侦听器名称来登录SQL Server,查看当前是

32、在主副本是在哪个机器手动故障转移选中testAG这个可用性组,右键-故障转移点击“下一步”点击“下一步”连接到 WIN-5PMSDHUIOKQ这台辅助副本机器点击“完成”开始进行故障转移再一次执行查询已经故障转移到WIN-5PMSDHUIOKQ这台机执行下面SQL语句,将WIN-7107JJJ2BCC机器设置为可读副本USE masterGOALTER AVAILABILITY GROUP testAGMODIFY REPLICA ON N'WIN-7107JJJ2BCC' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)GO执行下面S

33、QL语句测试一下在当前主副本执行insert into test1 select 3, 'test3'可以看到数据已经同步过来WIN-7107JJJ2BCC机器,并且数据库可读可读辅助副本是只读的,如果要对它进行数据更改则会报错print 'servername: '+SERVERNAME insert into test.dbo.test1 select 4, 'test4'AlwaysOn相关视图-通过这两个视图可以查询AlwaysOn延迟SELECT b.replica_server_name , a.*FROM sys.dm_hadr_d

34、atabase_replica_states a INNER JOIN sys.availability_replicas b ON a.replica_id = b.replica_id -可用性组所在Windows故障转移集群SELECT * FROM sys.dm_hadr_cluster;SELECT * FROM sys.dm_hadr_cluster_members ;SELECT * FROM sys.dm_hadr_cluster_networks;SELECT * FROM sys.dm_hadr_instance_node_map;SELECT * FROM sys.dm_

35、hadr_name_id_map-可用性组SELECT * FROM sys.availability_groups;SELECT * FROM sys.availability_groups_cluster;SELECT * FROM sys.dm_hadr_availability_group_states ;-可用性副本SELECT * FROM sys.availability_replicas;SELECT * FROM sys.availability_read_only_routing_listsSELECT * FROM sys.dm_hadr_availability_rep

36、lica_cluster_nodes;SELECT * FROM sys.dm_hadr_availability_replica_cluster_statesSELECT * FROM sys.dm_hadr_availability_replica_states-可用性数据库SELECT * FROM sys.availability_databases_cluster;SELECT * FROM sys.dm_hadr_database_replica_cluster_states;SELECT * FROM sys.dm_hadr_auto_page_repairSELECT * FROM sys.dm_hadr_database_replica_states-可用性组listenerSELECT * FROM sys.availability_group_listener_ip_addresses;SELECT * FROM sys.availab

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论