SQL Server AlwaysOn安装部署手册
- 格式:docx
- 大小:13.12 MB
- 文档页数:60
配置sql2019 alwayson1、启用alwayson打开sqlserver2019配置管理器,右键点击sql server服务,选择属性‐启用alwayson可用性组打上勾启用之后,需重启mssql server服务2、配置证书通讯(两台都要配置,注意证书名称不一样)配置两台sqlserver的互信通讯,这里使用证书通信。
打开ssms使用sa或有管理员权限的用户登录到数据库●打开查询分析器,以下命令在查询分析器操作●alwayson01节点执行以下命令:use master; 切换到数据库mastercreate master key encryption by password = 'Aa123456';在数据库中创建数据库主密钥create certificate ca1 with subject = 'ca1',start_date = '2023-01-01',expiry_date = '2099-12-30';为SQL Server 中的数据库添加证书,证书有效期开始日期为2023-01-01,到期日期为2099-12-30日。
backup certificate ca1 to file = 'e:\ca\ca1.cer'; 将证书导出到文件中,需提前在两台机上新建存放证书的文件夹,此例为e:\ca文件夹create endpoint [sql_endpoint] authorization [sa] state=started as tcp (listener_port = 5022,listener_ip = ALL) for data_mirroring (role = all,authentication = certificate ca1,encryption = required algorithm AES);创建端点并定义其属性,这里设置为证书验证。
SqlServer 2014 AlaysOn 集群搭建目录SqlServer 2014 AlaysOn 集群搭建 (1)一、环境设置 (1)1、服务器: (1)2、操作系统: (2)3、数据库版本: (2)二、建立域服务器 (2)1、添加AD域角色 (2)2、建alwayson域 (3)3、创建域管理账户 (8)4、master、slave加入域 (11)三、安装故障转移集群 (12)1、Master、Slave均安装故障转移集群 (12)2、在master 创建集群 (12)四、配置故障转移集群 (17)1、domainserver 配置共享文件夹 (17)2、配置仲裁 (18)五、配置SQL账户 (20)1、修改数据库SQL代理服务和SQL 引擎服务为域账户 (20)2、添加域账户为sql登录用户,并给予sysadmin权限 (21)六、配置sqlserver AlwaysOn (23)1、启用AlwaysOn可用性组 (23)2、查看有用性 (23)3、创建AlwaysOn可用性组 (24)七、添加监听器 (30)一、环境设置1、服务器:2、操作系统:WindowsServer 2008 R2 Enterprise3、数据库版本:SQLserver 2014二、建立域服务器在DomainServer服务器上建立域服务,并把Master、Slave加入域。
1、添加AD域角色下一步,下一步默认安装。
2、建alwayson域安装域角色完成后,点击域服务安装向导点击下一步默认安装直到完成后重启服务器。
3、创建域管理账户再将此域用户加入域计算机组和域管理员组:4、master、slave加入域三、安装故障转移集群1、Master、Slave均安装故障转移集群2、在master 创建集群建立集群需要注销集群节点计算机,然后使用域用户登录把服务器添加进集群:若有以下错误、请检查对应服务器是否安装故障转移集群或者当前登录用户是否为管理员默认选项下一步直到验证验证通过后、设置集群虚拟IP、IP地址不能和已有IP冲突四、配置故障转移集群1、domainserver 配置共享文件夹需要对share目录授权集群账户写的权限否则会出现以下错误:2、配置仲裁配置成功后共享文件夹如图:五、配置SQL账户1、修改数据库SQL代理服务和SQL 引擎服务为域账户登录每一台SQLserver服务器,打开服务管理器,先修改SQL代理的启动账户为域用户,然后再修改SQL 引擎的启动账户为域用户2、添加域账户为sql登录用户,并给予sysadmin权限用sa登录后添加SQL登录用户,跟SQL 服务添加启动账户的步骤一样,将域用户添加为登录用户六、配置sqlserver AlwaysOn1、启用AlwaysOn可用性组打开每一台服务器的SQL Server配置管理器、启用AlwaysOn 可用性组2、查看有用性SELECT * FROM sys.dm_hadr_cluster_members;3、创建AlwaysOn可用性组在master创建数据库TestDB。
1.1 数据库镜像支持有关对SQL Server 2012 中的数据库镜像的支持的信息,请参考:https:///zh-cn/previous-versions/sql/sql-server-2012 /cc645993%28v%3dsql.110%291.2 其他前置条件∙需要安装.NET 补丁,详见:https:///zh-cn/help/2654347/an-update-introduc es-support-for-the-alwayson-features-in-sql-server-2。
∙确保参与参与一个或多个可用性组的计算机不是域控,域控制器节点不支持可用性组。
∙确保每台计算机都是Windows Server 故障转移群集(WSFC) 群集中的节点,详见:https:///zh-cn/previous-versions/sql/sql-server-2012 /hh270278%28v%3dsql.110%29。
∙确保有足够的WSFC节点,详见:https:///zh-cn/previous-versions/sql/sql-server-2012 /ff877884%28v%3dsql.110%29。
∙若要管理WSFC 群集,用户必须是每个群集节点上的系统管理员。
注意:建议预留足够的空间,在主数据库增长时,其相应的辅助数据库也增长相同量。
建议:建议您为WSFC 群集成员之间的通信和可用性副本之间的通信使用相同的网络链接。
1.3 其他限制∙可用性副本必须由一个WSFC 群集的不同节点承载:对于某个给定可用性组,可用性副本必须由在同一WSFC 群集的不同节点上运行的服务器实例承载。
唯一的例外是在迁移到另一个WSFC 群集时,此时一个可用性组可能会暂时跨两个群集。
∙唯一的可用性组名称:每个可用性组名称在WSFC 故障转移群集上必须唯一。
可用性组名称的最大长度为128 个字符。
∙可用性副本:每个可用性组支持一个主副本和最多四个辅助副本。
SQLServer2016⽆域群集配置AlwaysON可⽤性组图⽂教程windows server 2016 与 sql server 2016 都可⽤允许不许要加⼊AD ,管理⽅⾯省了挺多操作,也不⽤担⼼域控出现问题影响各服务器了。
本测试版本: window server 2016 datacenter + sql server 2016 ctpIP规划:主机名IP说明ad192.168.2.2域服务器()windows xpServer131192.168.2.131节点Server132192.168.2.132节点Winclt2016192.168.2.139群集Testag_listener192.168.2.135可⽤性组监听器要求:每个节点都创建⼀个本地的计算机⽤户,要求账号密码⼀致,并⾪属于管理员组 “Administrators” 。
也可使⽤默认的管理员账号administrator ,如果使⽤的不是默认的计算机管理员账号 administrator,则配置注册表添加LocalAccountTokenFilterPolicy 设置为 1 。
如下:new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1本次测试使⽤的是默认的管理员账号:administrator因不需要将计算机就加⼊到域中,但是DNS还是需要配置的,所以先安装域服务器,此处略过……各节点配置⽹卡信息:服务器不加⼊AD,但需要配置域后缀,如下:配置完成后,重启节点计算机,各节点就能通过服务器全名相互ping通了。
在域服务器管理中,将各节点主机⼿动添加到域中,如下:添加完成后,域服务器也可以通过节点全名ping通各服务器了!配置好节点名称和ip相关后,在各节点添加故障转移群集⼯具,同时添加 .net framwork 3.5 。
SQLserver2014(ForAlwaysOn)安装图⽂教程SQLserver 2014 AlwaysOn在SQLserver 2012的基础之上,进⾏了很⼤程度的增加,如可以通过“添加 Azure 副本向导”简化了⽤于 AlwaysOn 可⽤性组的混合解决⽅案创建;辅助副本的最⼤数⽬从 4 增加到 8;断开与主副本的连接时,或者在缺少群集仲裁期间,可读辅助副本现在保持可⽤于读取⼯作负荷;故障转移群集实例 (FCI) 现在可使⽤群集共享卷 (CSV) 作为群集共享磁盘;提供了⼀个新的系统函数 sys.fn_hadr_is_primary_replica 和⼀个新的 DMVsys.dm_io_cluster_valid_path_names;以下 DMV 已得到增强,现在返回 FCI 信息:sys.dm_hadr_cluster、sys.dm_hadr_cluster_members 和sys.dm_hadr_cluster_networks等等。
本⽂描述了AlwaysOn部署前SQLserver2014的安装过程,供⼤家参考。
⼀、 SQLserver2014安装软硬件需求及安装须知⼆、初始化OS SID(如果采⽤了虚拟机克隆)1)初始化SID如果使⽤了克隆⽅式克隆了Windows Server 2012,修改主机名,重启然后使⽤sysprep重置SID单击开始,运⾏,输⼊sysprep2)修改IP地址,⽹关及DNS等之后将计算机加⼊到域3)将域⽤户添加到本地管理员组打开计算机管理,选择本地⽤户和组,双击Administrators,点击”添加”,如下图三、安装.Net 3.5打开服务器管理器单击”管理”菜单,选择”添加⾓⾊和功能”单击”下⼀步”,选择”基于⾓⾊或基于功能的安装”,单击”下⼀步”选择本地服务器,单击”下⼀步”,直到功能模块,选择”.NET 3.5”安装前,需要指定安装源四、安装SQLserver20141)安装类型SQLServer AlwaysOn可以运⾏于基于故障转移群集,也可以基于单实例,为简化安装,本⽂基于单实例进⾏。
Windows2012 + Sqlserver2014
Alwayson
第一步创建域:
域控制器配置:
配置IP就不细说了配置个固定IP且DNS指向本机
添加Windows功能
然后下一把点安装
注意:安装完会重新启动!重启完如下操作:
安装完会重启,重启完成打开服务器管理器
右键你的域名
至少要把姓和用户登录名填上
推荐选这两项,视情况而定
创建好的用户如下:
域控制器配置完成,接下来配置节点机:
这个是没填写DNS的问题,DNS要填写域控制器的IP地址如图1,我域控制器IP为:10.51.82.220
回我的节点机DNS就要填写:10.51.82.220如图:
这回再点击确定
OK弹出界面:
用刚才分配的域用户登录:
OK
好了节点机现在已经加入到域了,现在登录要用你刚才输入的域用户登录了如图:
登陆进去之后开始安装数据库
第二步安装sqlserver数据库:
第三步创建群集:打开域控制器:
找到故障转移群集管理器并打开
IP为整个群集服务的IP
OK群集创建完毕
下面打开节点机
第四步启用Alwayson功能:找到并打开 Sqlserver 2014 配置管理器。
Sqlserver2012 alwayson部署攻略一、环境。
1、服务器:准备4台虚拟机。
2、操作系统:windows2008 R2 SP2或者以上版本。
3、数据库:Sqlserver 2012。
二、操作系统安装及设置。
4、在4台虚拟机上均装上操作系统windows 2008 R2,并分别设置计算机名为:DomainServer、DB1、DB2、DB3,分别设置IP为192.168.100.20、192.168.100.21、192.168.100.22、192.168.100.23。
5、在DB1、DB2、DB3上开启功能.NET3.5 SP1。
6、在DB1、DB2、DB3上安装Sqlserver2012。
7、在DomainServer服务器上建立域服务、并将DB1、DB2、DB3的DNS设置为192.168.100.20,然后加如域。
三、windows2008故障转移群集部署。
8、以\administrator域帐户登录DB1、DB2、DB3,并添加故障转移集群功能。
9、在DB1、DB2、DB3中任一台机上创建群集,并将DB1、DB2、DB3台服务器添加进去、群集名称为alwaysoncluster,群集IP为192.168.100.25,仲裁配置为“多数节点”。
四、alwayson部署。
10、关闭DB1、DB2、DB3的防火墙或者在防火墙规则中添加例外端口1433、5022。
11、分别打开DB1、DB2、DB3的“SQL Server 配置管理器”,在左侧的“SQL Server 服务”列表中找到默认的实例。
12、将Sqlserver服务的登录帐户更改为域帐户\administrator,并重启sqlserver 服务。
13、分别使用数据库管理工具连接DB1、DB2、DB3的数据库,并创建sqlserver的域登录帐户\administrator,并赋予sysadmin角色。
14、在DB1、DB2、DB3的分别建立目录D:\SQLDATA用于存放sql数据库文件,在局域网内建立一个可读写共享目录,该共享目录用于存放快照文件。
Microsoft SQL Server 2012 AlwaysOn高可用性解决方案1.术语定义1)高可用性:HA〔High Availability〕通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性2)灾难恢复:DR〔Disaster Recovery〕指自然或人为灾害后,重新启用信息系统的数据、硬件及软件设备,恢复正常商业运作的过程3)故障转移群集:WSFC〔Windows Server Failover Cluster〕微软操作系统针对服务器提供的一种服务,该服务用于防止单台服务器故障导致服务失效。
2.公司数据库使用现状及问题瓶颈其他部门对应用开发部负责的融资管理系统性能提出以下问题:1)数据部:a)服务器不稳定b)数据库性能配置低2)市场部:a)查询效率太低3)产品部:a)报表、BI支撑难这些性能问题无不涉及到后台数据库的性能及可靠性问题。
还有一个安全问题也值得重视。
目前,公司产品数据库和融资管系统都部署在10.44.1.3一台服务器上。
理论上,产品数据库不应与Web应用部署在同一台机器而暴露给用户,产品数据库最好只交由专职DBA 来管理。
因为,万一Web应用遭受黑客攻击,产品数据将会面临巨大威胁,甚至有可能被永久性物理删除。
前不久,就有报道携程数据遭受有预谋的内部攻击被物理删除〔://news.sohu/20150528/n413987338.shtml〕。
如果分开部署,那么即使Web应用遭受攻击,只要产品数据在,我们仍然可以在短时间内部署新的Web应用。
3.SQL Server 高可用技术简介1)故障转移群集(Failover Cluster)共享存储,效率高,但某一个时间点只有一个节点处于活动状态,造成硬件资源浪费。
2)数据库镜像(Database Mirror)提供几乎是瞬时的故障转移,以提高数据库的可用性。
但其最大弊端在于镜像数据库处于不可读状态,同样造成硬件资源浪费。
机器名角色系统环境IP Address DC Domain Controller Windows 2008R2 sp1 192.168.0.7 Server1 Cluster Node 1 Windows 2008R2 sp1+SQL Server 2012 x64 192.168.0.10 Server2 Cluster Node 2 Windows 2008R2 sp1+SQL Server 2012 x64 192.168.0.11 一、安装域控服务器修改DNS为127.0.0.1点击左下角的服务器管理器点击左边的角色单击右边的添加角色。
出现开始之前界面时直接点击下一步按钮。
选中Active Directory域服务复选框,在弹出的界面中单击添加必要的功能选项,单击下一步按钮。
一直点下一步,确认安装。
等待几分钟后就安装完成了。
安装成功后点击关闭,接着点角色里的Active Directory域服务,接着点击右边运行Active Directory域服务安装向导。
(直接运行dcpromo.exe)勾选使用高级模式安装点击下一步,下一步选择新建域,下一步输入一个域名,按格式随便填写,然后下一步林功能级别选择Windows Server 2008 R2,下一步下一步选择是说明数据库文件夹用来存储Active Directory数据库日志文件夹用来存储Active Directory数据库的改动记录,此日志文件可用来恢复Active Directory数据库。
SYSVOL文件夹用来存储域共享文件(例如与组策略有关的文件),注意他必须位于NTFS磁盘内。
设置还原模式的密码,下一步完成后重启,域控服务器就安装完成了完成架设修改节点计算机Server1的DNS为域服务器的IP在系统属性中选择更改设置选项来更改计算机名并加入域重启后以域账户登录操作系统二、配置Windows集群:1. 2台服务器分别安装.NETFramework 3.5.1和故障转移群集2. 2台服务器分别安装安装Windows KB 2494036补丁3.新建集群4.选择加入集群的服务器:5.检测配置:6.不需要选择检测共享磁盘(AlwaysOn不需要)7.开始检测:8.检测内容(检测完成后可以导出Report):9.之后输入Cluster名字和IP点击下一步创建成功,成功后打开Server Manager查看集群配置(可以看到并没有共享磁盘,跟传统的集群还是有区别的):三、安装SQLServer1.以管理员身份运行setup.exe安装SQLserver2012企业版2.选择单机安装(不是集群安装)3.SQL Server 2012的新功能,可以在安装的时候搜索最新的补丁,将补丁也以前安装(这个是可选项)4.规则检测5.选择安装组件6.实例名:7.计算需要的磁盘空间:8.Service账户(域账户,可后面再修改):9.排序规则(Healthone软件要求必须是Chinese_PRC_CI_AS):10.设置权限,数据库文件备份地址以及Filestream选项:11.安装配置清单:12.在ConfigurationManager中对SQL Server检查是否以域帐户登录sqlserver13.开启Always OnHigh Availability(可以自动检测到前面我们创建的Cluster名字)设置更改后需要重启Service.四、现在一切都具备了,我们可以配置Always On group了。
SQL SERVER2016always on(有域控)背景:实现数据库层面的读写分离。
数据库有SQLNODE1节点。
SQLNODE2节点。
还有一台域控的服务器Domain Controller。
整体结构如图所示注意:所有的操作都是在所有服务器都关闭防火墙的操作下完成撰写人:雷锋两个节点SQLNODE1和SQLNODE2采用非共享文件夹的方式进行存储文件。
系统和环境要求1cn_sql_server_2016_enterprise_x64_dvd_8699450.iso 2cn_windows_server_2016_x64_dvd_9327743.iso3SSMS-Setup-CHS.exe虚拟机的安装虚拟机使用VM。
虚拟就具体的安装步骤不在叙述。
1虚拟机系统的安装选择第一个典型。
点击下一步2选择稍后安装操作系统3选择windows操作系统此处选择任意版本均可4选择虚拟机文件的路径和虚拟机的名字5选择虚拟机中磁盘的大小。
选择存储为单一文件6点击完成即可。
(此步骤也可以修改虚拟机的配置)7设置虚拟机网络。
选择桥接即可8安装操作系统,选择iso文件所在路径操作系统的安装1打开虚拟机之后会自动进入系统的安装界面。
系统的安装不在介绍。
最后一步选择2016datacenter with GUI即可。
系统安装好之后设置下密码就可以了VMWare Tools安装1选择虚拟机下面的xmware tools安装工具。
会联网自动下载安装程序。
下载完成后会在虚拟机的下方提示安装2进入虚拟机的环境内输入WIN+R输入D:\Setup.exe进行安装选择下一步3提示需要进行重启。
按照提示进行操作即可Windows故障转移集群的安装1打开服务器管理器选择添加角色和功能选择故障转移集群点击安装进行集群的安装。
安装完后会提示安装成功.Net3.5的安装1将windows server iso文件中的sources文件夹下的sxs文件夹拷贝到虚拟机中c盘下面路径格式为C:\sxs选中.net FrameWork3.5功能全部选中选择指定路径输入完整的c盘下路径c:\sxs点击ok。
SQL Server 2012 AlwaysOn Failover Cluster安装部署手册目录1.AlwaysOn介绍 (3)1.1.可用性模式 (3)➢同步提交 (3)➢异步提交 (3)1.2.故障转移模式 (3)➢手动转移(不存在数据丢失) (3)➢自动转移(不存在数据丢失) (4)➢强制转移(存在数据丢失) (4)1.3.主、辅数据库连接方式 (4)➢主数据库连接方式 (4)➢辅数据库是否允许只读 (4)2.SQL SERVER 2012安装(Alwayson群集环境) (5)3.配置AlwaysOn (23)3.1.启动服务 (23)3.2.设置数据库完整恢复模式 (24)3.3.完整备份数据库 (31)3.4.设置共享目录 (34)3.5.创建AlwaysOn Group (38)3.6.设置连接方式 (54)3.7.检查Read-Only Routing List (55)3.8.检查数据库同步情况 (56)3.9.测试Read-Only Routing (57)4.可用性副本未同步状态处理方法 (58)5.SQL Server 2012 ReportSvrice KB (60)AlwaysOn是SQL Server 2012提供的全新综合、灵活、高效经济的高可用性和灾难恢复解决方案。
它整合了镜像和群集的功能,基于OS 故障转移群集(Windows Server FailOver Cluster),通过在同一个WSFC的不同Node上,安装独立的SQL Server实例,定义AlwaysOn Group,一个数据库最多可以部署4个镜像。
当热备机出现故障时,可以手工或自动实现故障转移,交换主、辅数据库的角色。
AlwaysOn的亮点在于镜像可读。
对于OLTP应用,可以将读操作集中的报表等操作转移到Read-Only的辅助库上,极大地减少Primary DB的IO、CPU等资源占用。
由于辅助库是独立的SQL实例,因此创建临时表等TempDB操作不受影响。
安装SQL2019数据库一、双击sql2019的安装程序,弹出以下界面,按图示进行下一步
我这上不了网,没有勾选检查更新,直接点下一步
按需选择需要的功能,这里只装了数据库引擎服务、sqlserver复制,和客户端连接工具
备注:tempdb数据库的大小和物理位置可能会影响系统的性能。
例如,如果为tempdb定义的大小过小,则每次重启 SQL Server 实例时,都可能会占用部分系统处理负荷,以使tempdb自动增长到支持工作负荷所需的大小。
将tempdb数据库放置在用户数据库使用的磁盘以外的磁盘中。
一般而言,如果逻辑处理器数目小于或等于8,则使用的数据文件数与逻辑处理器数相同。
如果逻辑处理器数大于 8,请指定 8 个数据文件。
如果仍然存在争用,则以 4 的倍数增加数据文件的数量,直到争用减少到可接受的级别或对工作负荷/代码进行更改。
Maxdop最大并行度。
当 SQL Server 实例在具有多个微处理器或 CPU 的计算机上运行时,数据库引擎会检测是否可以使用并行。
并行度为每次并行计划的执行设置运行单个语句时要使用的处理器数。
设置为 0,SQL Server 将能够使用至多 64 个可用的处理器。
但在大多数情况下,不推荐使用此值。
FILESTREAM 允许通过SQL Server 或通过直接访问Windows 文件系统来存储和访问大型二进制值。
大型二进制值是大于2 GB 的值
点安装,直至安装完成即可
二、数据库管理工具SSMS安装
安装完后,需重新启动系统。
安装完成。
SQL Server AlwaysOn 第二篇(配置故障转移集群)主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的四种集群的仲裁配置:1、多数节点:这种配置不会用到仲裁磁盘,而所谓多数节点就是在正常节点数量占多数的情况下,集群才会提供服务,否则就停止服务。
这种配置适用于奇数节点的集群,例如5个节点的集群,其正常节点数量必须至少3个,集群才会提供服务2、多数节点和磁盘:适用于偶数节点的集群,他在计算法定数量时会将仲裁磁盘计算进来,例如,4个节点+1个仲裁磁盘节点的集群,可以将其视为5个节点的集群,这时正常节点数量必须至少3个,集群才会提供服务3、多数节点和文件共享:它和(多数节点和磁盘)类似,不过仲裁磁盘改为共享文件夹内的文件4、没有多数:只有磁盘,只要仲裁磁盘脱机,集群就会停止提供服务(不建议使用,这种方式很早之前已经有了)我们在使用故障转移集群的时候,只用两种仲裁配置:(多数节点)和(多数节点和文件共享)如果集群节点是奇数,那么使用多数节点如果集群节点是偶数,那么使用多数节点和文件共享(需要配置一个共享文件夹,各个节点都能访问这个共享文件夹,并且共享文件夹所在机器不需要加入域)注意:域控不需要安装故障转移集群服务和SQL Server,也不需要加入到故障转移集群所有机器防火墙都关掉两个节点都需要安装相同的更新程序,建议不要开启自动更新功能,由系统管理员手动更新实施步骤1、安装故障转移集群,两个节点都同时安装故障转移集群服务(本机这里已经安装)2、两个节点都安装完故障转移集群之后,在其中一个节点上进行注销操作,然后使用DCADMIN 这个域用户登录计算机(或者注销后更换域控账号也行)3、打开故障转移集群管理器4、在“选择服务器或群集”界面中,单击“浏览”按钮将所有要加入群集的服务器添加进来,然后单击“下一步”按钮——》高级——》立即查找,选择节点服务器。
分别选择添加到这里5、在验证配置向导中最好选择运行所有测试,进行全部检测就可以查看到服务器之间建立群集的所有设置,包括网络、共享磁盘、操作系统等,然后下一步,完成。
SQL Server 2012 AlwaysOn Failover Cluster安装部署文档AlwaysOn是SQL Server 2012提供的全新综合、灵活、高效经济的高可用性和灾难恢复解决方案。
它整合了镜像和群集的功能,基于OS 故障转移群集(Windows Server FailOver Cluster),通过在同一个WSFC的不同Node上,安装独立的SQL Server实例,定义AlwaysOn Group,一个数据库最多可以部署4个镜像。
当热备机出现故障时,可以手工或自动实现故障转移,交换主、辅数据库的角色。
AlwaysOn的亮点在于镜像可读。
对于OLTP应用,可以将读操作集中的报表等操作转移到Read-Only的辅助库上,极大地减少Primary DB的IO、CPU等资源占用。
由于辅助库是独立的SQL实例,因此创建临时表等TempDB操作不受影响。
1.1. 可用性模式➢同步提交同步提交模式下,主数据库事务提交前,通知辅数据库,直到辅数据库提交成功后,主数据库成功提交。
优点:数据受到完整保护,不会存在数据不一致。
缺点:事务执行时间延长,效率降低。
➢异步提交异步提交模式下,主数据库独立提交事务,不必等待辅数据库同步,同时将数据写入日志,辅数据库通过事务日志同步数据。
优点:事务执行时间不受辅数据库影响,效率高。
缺点:数据同步存在延时。
1.2. 故障转移模式➢手动转移(不存在数据丢失)主、辅库都是同步提交模式,且故障转移为手动,由SSMS发起FailOver命令。
➢自动转移(不存在数据丢失)主、辅库都是同步提交模式,且故障转移为自动,不受人为控制,由WSFC自动仲裁。
➢强制转移(存在数据丢失)主库是异步提交模式,且故障转移为手动,由SSMS发起FailOver命令。
由于某种原因,主、辅库数据不同步,必须使用强制模式实现故障转移,此时可能存在数据丢失的情况,通常应用于突发的灾难恢复。
当主、辅库SQL实例均从灾难中恢复正常后,可以通过数据移动功能确保数据同步。
Windows2008R2+SQLServer2012AlwaysOn安装部署手册V1.0Windows2008R2+SQL Server2012AlwaysOn安装部署手册V1.0zuoxh2011年5月目录1 系统准备 (3)1.1安装操作系统 (3)1.2升级域控 (3)1.3挂载存储 (3)2 安装、配置Windows2008R集群 (3)2.1添加故障转移集群功能 (3)2.2故障群集转移验证 (6)2.3创建故障转移集群 (7)3 安装SqlServer2012 (9)4 安装SqlServer2012 Alwayson (12)5 配置SqlServer2012 AlwaysOn (19)1 系统准备1.1安装操作系统安装WindowsServer2008R操作系统(略)。
域控服务器名称为:Sql-dc节点服务器名称分别为Sql01、Sql02、Sql031.2升级域控域控服务器,指定域名,将节点加入域中。
1.3挂载存储仲裁盘、DTC盘、数据盘2 安装、配置Windows2008R集群2.1添加故障转移集群功能在节点服务器上分别添加WindowsServer2008的故障转移集群功能;控制面板——〉管理工具——〉服务器管理器服务器管理器——〉功能——〉添加功能下一步开始安装安装结束。
2.2故障群集转移验证正在验证验证成功。
2.3创建故障转移集群在节点1上操作。
加入节点服务器集群名称:sqldbs正在创建中创建完成。
3 安装SqlServer2012在几台节点机上分别安装SqlServer2012数据库。
实例名称分别为:AlwaysOn01、AlwaysOn02、AlwaysOn034 安装SqlServer2012 Alwayson 首先安装.net功能安装SqlServer2012节点1的实例名:AlwaysOn01,节点2的实例名:AlwaysOn02,节点3的实例名:AlwaysOn035 配置SqlServer2012 AlwaysOn。
SQL Server 2016无域AlwaysOn一、准备工作操作系统:Windows Server 2016 数据中心版数据库:SQL Server 2016 企业版注意:只有Windows Server 2016 才能无域配置群集环境规划:项目名称IP服务器1 WIN2016tt1 192.168.1.176服务器2 WIN2016tt2 192.168.1.177服务器3 WIN2016tt3 192.168.1.179故障转移群集 192.168.1.5AlwaysOn组AG 无AlwaysOn侦听器aglistener 192.168.1.6二、安装windows 故障转移群集1、安装windows三台机器分别安装windows Server2016,过程略,此为3个节点。
2、运行账号3个节点创建相同用户名和密码的用户,且把此用户加入到服务器本地管理员组,我这里直接用的Administrator也符合条件,把密码设置为相同即可。
3、搭建windows故障转移群集。
3.1、设置服务器名DNS后缀3.2、配置注册表把LocalAccountTokenFilterPolicy的值设置为1,配置方法:在powershell中执行如下命令new-itemproperty -pathHKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System-Name LocalAccountTokenFilterPolicy -Value 1执行成功后:3.3、在每个节点的hosts 文件中添加节点的计算机信息、群集信息、侦听器信息。
目录为C:\Windows\System32\drivers\etc3.4、关闭防火墙。
如果不能关闭防火墙,设置允许应用或功能通过防火墙,3个节点均要设置,按照下面图中红框框出的地方设置,注意选项后面打勾的位置。
3.5 安装Windows功能故障转移群集(所有节点都需要安装)3.6 创建故障转移群集将3个节点都加入之后下一步直到完成。
配置sqlserver2012的alwayson虚机准备:windows2012r21.分配两块⽹卡,关闭防⽕墙,配置私⽹和公⽹,添加⾓⾊:iis(asp,aspx),故障转移,net framework,telnet客户端,注册表修改⽇期格式,激活重启。
2.安装sqlserver2012sp1版3.克隆虚机,修改主机名,加⼊域,域⽤户加⼊本地管理组4.创建故障转移集群,启⽤sqlserver的alwayson,修改启动⽤户为域⽤户,新建登录名为域⽤户赋予sysadmin⾓⾊,确保可windows⾝份登录sqlserver5.创建测试库,完整模式,创建共享⽬录赋予域⽤户,备份全库到该⽬录。
创建可⽤性组。
脚本:--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.运⾏cmd打开两个dos窗⼝:sqlcmd -S SQL2012-01 -U "sa" -P "xxxx"sqlcmd -S SQL2012-02 -U "sa" -P "xxxx"---------------------:Connect SQL2012-01IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0BEGINALTER ENDPOINT [Hadr_endpoint] STATE = STARTEDENDGOuse [master]GOGRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [JYC\sqlcluster]GO:Connect SQL2012-02IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0BEGINALTER ENDPOINT [Hadr_endpoint] STATE = STARTEDENDGOuse [master]GOGRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [JYC\sqlcluster]GO:Connect SQL2012-01IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')BEGINALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);ENDIF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')BEGINALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;ENDGO:Connect SQL2012-02IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')BEGINALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);ENDIF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')BEGINALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;ENDGO:Connect SQL2012-01USE [master]GOCREATE AVAILABILITY GROUP [dg]WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY)FOR DATABASE [test]REPLICA ON N'SQL2012-01' WITH (ENDPOINT_URL = N'TCP://sql2012-01.jyc.local:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50,SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)),N'SQL2012-02' WITH (ENDPOINT_URL = N'TCP://sql2012-02.jyc.local:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50,SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL));GO:Connect SQL2012-02ALTER AVAILABILITY GROUP [dg] JOIN;GO:Connect SQL2012-01BACKUP DATABASE [test] TO DISK = N'\\SQL2012-01\data\test.bak' WITH COPY_ONLY, FORMAT, INIT, SKIP, REWIND, NOUNLOAD, COMPRESSION, STATS = 5GO:Connect SQL2012-02RESTORE DATABASE [test] FROM DISK = N'\\SQL2012-01\data\test.bak' WITH NORECOVERY, NOUNLOAD, STATS = 5GO:Connect SQL2012-01BACKUP LOG [test] TO DISK = N'\\SQL2012-01\data\test_20160726053541.trn' WITH NOFORMAT, NOINIT, NOSKIP, REWIND, NOUNLOAD, COMPRESSION, STATS = 5GO:Connect SQL2012-02RESTORE LOG [test] FROM DISK = N'\\SQL2012-01\data\test_20160726053541.trn' WITH NORECOVERY, NOUNLOAD, STATS = 5GO:Connect SQL2012-02-- Wait for the replica to start communicatingbegin trydeclare @conn bitdeclare @count intdeclare @replica_id uniqueidentifierdeclare @group_id uniqueidentifierset @conn = 0set @count = 30 -- wait for 5 minutesif (serverproperty('IsHadrEnabled') = 1)and (isnull((select member_state from master.sys.dm_hadr_cluster_members where upper(member_name COLLATE Latin1_General_CI_AS) = upper(cast(serverproperty('ComputerNamePhysicalNetBIOS') as nvarchar(256)) COLLATE Latin1_General_CI_AS)), 0) <> 0)and (isnull((select state from master.sys.database_mirroring_endpoints), 1) = 0)beginselect @group_id = ags.group_id from master.sys.availability_groups as ags where name = N'dg'select @replica_id = replicas.replica_id from master.sys.availability_replicas as replicas whereupper(replicas.replica_server_name COLLATE Latin1_General_CI_AS) = upper(@@SERVERNAME COLLATE Latin1_General_CI_AS) and group_id = @group_idwhile @conn <> 1 and @count > 0beginset @conn = isnull((select connected_state from master.sys.dm_hadr_availability_replica_states as states where states.replica_id = @replica_id), 1)if @conn = 1begin-- exit loop when the replica is connected, or if the query cannot find the replica statusbreakendwaitfor delay '00:00:10'set @count = @count - 1endendend trybegin catch-- If the wait loop fails, do not stop execution of the alter database statementend catchALTER DATABASE [test] SET HADR AVAILABILITY GROUP = [dg];GOGO。
配置SQL 2012的always on高性能组件配置always on高性能组件主要步骤:1、安装服务器系统Windows Server 2012并加入域yongxingroup2、安装一台服务器的“故障转移群集管理器”开始“创建群集向导”,添加另外服务器集群节点。
(必须在域账户下登陆配置)3、安装SQL 2012 ,并开启always on高性能组件4、在每个SQL 2012启动账户分别设置成域账户启动,并将域账户设置成数据库管理员权限(SysAdmin)权限5、备份数据库到路径中,共享给其他域用户访问权限6、按always on高性能组件一步步配置问题:1.需不需要重新建故障转移群集,如过需要原来加入的群集怎么退出2.故障转移群集配置时,虚拟机和物理主机能否加入同一个群集一、具体的环境如下在Windows域中,部署2台成员服务器用作SQL Server服务器,因为SQL Server 2012的高可用性组需要Windows的群集服务支持,所以必须预先在这些成员服务器上实现故障转移群集。
服务器的操作系统均为Windows Server 2012 二、实现SQL Server 2012高可用性组必须的WSFC(故障转移群集)环境首先在每台成员服务器上安装并配置WSFC:1、安装WSFC群集组件1)打开服务器管理器,选择“功能”,在右边窗口中点击“添加功能”。
2)在添加功能向导中,勾选“故障转移群集”,点击“下一步”。
3)在“确认安装选择”页面中,点击“安装”,进行安装操作。
4)完成并关闭“故障转移群集”的安装。
2、配置WSFC为所有节点均安装完“故障转移群集”服务后,在任意节点服务器的“服务器管理器”中展开“故障转移群集管理器”对WSFC进行配置。
1)通过“故障转移群集管理器”窗口点击“创建一个群集”打开“创建群集向导”2)在“开始之前”页中,点击“下一步”。
3)添加所有服务器节点,即将环境中的2台成员服务器添加为群集节点服务器。
SQL Server 2012 AlwaysOn Failover Cluster
安装部署手册
目录
1.AlwaysOn介绍 (3)
1.1.可用性模式 (3)
➢同步提交 (3)
➢异步提交 (3)
1.2.故障转移模式 (3)
➢手动转移(不存在数据丢失) (3)
➢自动转移(不存在数据丢失) (4)
➢强制转移(存在数据丢失) (4)
1.3.主、辅数据库连接方式 (4)
➢主数据库连接方式 (4)
➢辅数据库是否允许只读 (4)
2.SQL SERVER 2012安装(Alwayson群集环境) (5)
3.配置AlwaysOn (23)
3.1.启动服务 (23)
3.2.设置数据库完整恢复模式 (24)
3.3.完整备份数据库 (31)
3.4.设置共享目录 (34)
3.5.创建AlwaysOn Group (38)
3.6.设置连接方式 (54)
3.7.检查Read-Only Routing List (55)
3.8.检查数据库同步情况 (56)
3.9.测试Read-Only Routing (57)
4.可用性副本未同步状态处理方法 (58)
5.SQL Server 2012 ReportSvrice KB (60)
AlwaysOn是SQL Server 2012提供的全新综合、灵活、高效经济的高可用性和灾难恢复解决方案。
它整合了镜像和群集的功能,基于OS 故障转移群集(Windows Server FailOver Cluster),通过在同一个WSFC的不同Node上,安装独立的SQL Server实例,定义AlwaysOn Group,一个数据库最多可以部署4个镜像。
当热备机出现故障时,可以手工或自动实现故障转移,交换主、辅数据库的角色。
AlwaysOn的亮点在于镜像可读。
对于OLTP应用,可以将读操作集中的报表等操作转移到Read-Only的辅助库上,极大地减少Primary DB的IO、CPU等资源占用。
由于辅助库是独立的SQL实例,因此创建临时表等TempDB操作不受影响。
1.1. 可用性模式
➢同步提交
同步提交模式下,主数据库事务提交前,通知辅数据库,直到辅数据库提交成功后,主数据库成功提交。
优点:数据受到完整保护,不会存在数据不一致。
缺点:事务执行时间延长,效率降低。
➢异步提交
异步提交模式下,主数据库独立提交事务,不必等待辅数据库同步,同时将数据写入日志,辅数据库通过事务日志同步数据。
优点:事务执行时间不受辅数据库影响,效率高。
缺点:数据同步存在延时。
1.2. 故障转移模式
➢手动转移(不存在数据丢失)
主、辅库都是同步提交模式,且故障转移为手动,由SSMS发起FailOver命令。
➢自动转移(不存在数据丢失)
主、辅库都是同步提交模式,且故障转移为自动,不受人为控制,由WSFC自动仲裁。
➢强制转移(存在数据丢失)
主库是异步提交模式,且故障转移为手动,由SSMS发起FailOver命令。
由于某种原因,主、辅库数据不同步,必须使用强制模式实现故障转移,此时可能存在数据丢失的情况,通常应用于突发的灾难恢复。
当主、辅库SQL实例均从灾难中恢复正常后,可以通过数据移动功能确保数据同步。
可用性模式和故障转移模式兼容表:
1.3. 主、辅数据库连接方式
DotNetFramework 4. 0以后版本,为了兼容新的灾难恢复AlwaysOn Cluster数据库,连接串中增加了一个属性ApplicationIntent,用于标识应用程序连接到数据库的方式,ApplicationIntent有三种选项:
1)Null。
不设置ApplicationIntent,默认为ReadWrite,兼容.NET 4.0以前的连接串。
2)ReadWrite。
3)ReadOnly
应用程序通过AlwaysOn群集的DNS访问数据库群集时,首先路由到主数据库,然后根据应用程序连接的模式(Null、ReadWrite、ReadOnly)选择是否路由到Read-Only辅助库。
➢主数据库连接方式
a)允许所有连接。
当我们设置主数据库允许所有连接时,应用程序任何时候都可以连
接到数据库群集。
b)允许读/写连接。
当我们设置主数据库只允许读/写连接时,ApplicationIntent=
ReadOnly的应用程序连接将被阻止,并抛出异常“数据库不允许只读连接”。
➢辅数据库是否允许只读
a)NO。
辅数据库不允许读操作。
b)Read-Intent Only。
辅数据库只读,且只允许ReadOnly连接。
此选项意味着只能通过
SqlCmd –K ReadOnly、PowerShell、或者ApplicationIntent=ReadOnly的应用程序连接数据库。
我们通常使用SSMS连接到该数据库是被禁止的。
c)Yes。
辅数据库只读,且兼容以前的连接方式。
此选项意味着可以通过任何连接方式连
接到辅数据库,且辅数据库只读。
典型应用场景:
配置方案如下:
安装操作系统故障转移群集和MSDTC,见《SQL2008群集配置指南(windows 2008)》。
2.1 全新安装SQL 2012
输入序列号
功能安装
全部选择安装(选项)
2.2 所有服务器节点的数据库实例名称需要相同(默认实例)
下一步
下一步
2.2 使用域帐号管理
2.3 选择所安装数据库存储硬盘,可以是数据库服务器本地,也可以安装到磁盘阵列。
下一步
添加当前用户
下一步
下一步
下一步
2.4 安装完成。