1、精选优质文档-倾情为你奉上Sqlserver2012Alwayson高可用性方案编制日期2015-09审核日期批准日期发布实施变更记录版本修订时间修订人修订类型修订章节修订内容V1.0.02015-09龚新艳A创建*修订类型分为 A - ADDED M - MODIFIED D DELETED注:对该文件内容增加、删除或修改均需填写此记录,详细记载变更信息,以保证其可追溯性目录1 需求分析1.1 背景说明31.2 系统目标与系统边界42 AlwaysOn高可用性配置2.4 AlwaysOn部署.73 数据库备份4 .125 灾备系统测试.12存储设备有故障.13.131 1 需求分析1.1 背
2、景说明AlwaysOn利用了Windows故障转移群集的健康监测和自动故障转移的特性,因此它必须建立在Windows故障转移群集之上。但是和SQLServer群集不同的是,可用性组里的数据库并不是一定要求存放在共享存储(SharedDisk)上的,它们也可以存储在本地磁盘上。另外,可用性组是以用户数据库的集合为单位进行健康检测和故障转移的,而不像SQLServer群集那样是以整个实例为单位。AlwaysOn具有以下这些关键特性:1.像群集一样,AlwaysOn支持故障转移,但是它具有其独特的特点: 多个用户数据库可以一同进行故障转移。这对要同时使用多个用户数据库的应用,例如Microsoft
3、SharePoint,会很有帮助。 提供一个虚拟的服务器网络名,无论哪个服务器是当前的主服务器,客户端都可以使用统一的虚拟服务器名进行连接。 具有三种故障转移模式:自动,手动和强制,用户可以选择发生故障切换的条件。 一个主服务器可以对应最多达4个辅助服务器(总共5个服务器)。发生故障时可以切换到任意一个辅助服务器上。 有Dashboard可用于监视AlwaysOn的运行状态。有丰富的信息可用于故障诊断(DMV,性能计数器,扩展事件日志等) 得益于Windows Server 2008群集,可以实现多站点的部署。主服务器和辅助服务器之间可以在物理上相隔很远。2.像镜像和日志传递一样,Always
4、On在辅助服务器上有数据库的另外一份拷贝。所不同的是,这份拷贝可以支持更多的只读功能。 每个辅助服务器上都有一份数据的拷贝,可以使服务器上的数据拷贝和主服务器上的数据完全同步。 辅助服务器可用于只读的访问请求。 辅助服务器可以执行备份和DBCC命令。 在某些配置情况下,客户端的只读请求可以被自动定向到辅助服务器。 可以自动修复某些类型的数据页面损坏问题。 主服务器和辅助服务器之间的数据会被加密和压缩,提高了安全性又降低了网络流量。通过上面这些特性,相信你已经很清楚地看到,AlwaysOn集合了许多以往SQLServer高可用和灾难恢复技术的优点,同时又具有自己独特的功能。这些特性不但保证了SQ
5、LServer更高的可用性,而且还实现了一定程度上的负载均衡,减轻了SQLServer主服务器的压力。1.2 系统目标与系统边界通过高可用性AlwaysOn方案实现负载均衡,读写分离,减轻sqlserver主服务器的负担,为灾难恢复提供有效保障。2 AlwaysOn高可用性配置 2.1 环境1、服务器:准备3台服务器SQL01,SQL02,SQL03。 2、操作系统:windows2008 R2 SP2或者以上版本。 3、数据库:Sqlserver 2012。2.2 操作系统安装及设置1、在3台服务器上均安装操作系统windows 2008 R2,并分别设置计算机名为: Sql01、SQL02
6、sql03,分别设置IP为10.0.0.11,10.0.0.12,10.0.0.13. 子网掩码都是255.255.255.0.默认网关是10.0.0.251.2、在Sql01、SQL02、sql03上开启功能.NET3.5 SP1。 3、在Sql01、SQL02、sql03上安装Sqlserver2012。 4、在Sql01服务器上建立域服务HMD.com、并将Sql01、SQL02、sql03的DNS设置为10.0.0.20,然后加域HMD.com。2.3 windows2008故障转移群集部署1、以HMD.comadministrator域帐户登录Sql01、SQL02、sql03,并
7、添加故障转移集群功能。 2、在Sql01、SQL02、sql03中任一台机上创建群集,并将Sql01、SQL02、sql03台服务器添加进去、群集名称为,群集IP为10.0.0.20。2.4 alwayson部署1.启动Always On高可用性功能2.附加SQL数据库3. Always On高可用添加节点指定可用性组名称: sqlalwayson分别添加副本服务器SQL02SQL033 数据库备份3.1 在辅助服务器sql02上面进行数据库完整备份和日志备份 AlwaysOn在辅助服务器sql02上面进行数据库完整备份和事物日志备份。3.2 查看主服务器备份文件有效性。 AlwaysOn为了
8、减轻主服务器的压力,选择在辅助服务器sql02上面进行数据库完整备份和事物日志备份。备份频率分别是:每周进行一次数据库完整备份,每半小时进行一次事物日志备份。4 模拟故障转移切换节点 4.1 在主节点实施故障转移策略右键故障转移选择副本SQL02作为新的主副本。4.2 将节点sql03部署在异地机房,选择异步提交,允许10ms延时当机房sql01,sql02服务器均发生故障灾难时,手动将sql03故障转移切换成主副本。4.3 读写分离的故障转移模式主节点sql01作为写应用,辅助节点sql02作为同步提交的故障转移只读应用,延时10ms.当主节点sql01发生灾难故障时,自动切换到sql02辅
9、助节点作为新的主节点接入写应用。Sql03就变成辅助节点提交接入只读应用。5 灾备系统测试5.1 模拟上海数据中心的客户数据库发生故障(一) 目标:1分钟之内将所有上海数据中心的客户数据库转向北京数据中心的客户数据库。(二) 测试步骤:1. 将homeother数据库设置为脱机。2. 立即访问电商网站发现相关页面发生系统性功能失效。3. 一分钟内再次访问电商网站发现故障已恢复。4. 一切恢复正常运转。5.2 模拟上海数据中心的硬件发生故障(一)目标:1分钟之内将所有上海数据中心的客户数据库转向北京数据中心的客户数据库。(二)测试步骤:1.将上海数据中心的服务器sql01内存条拆除。2.立即访问
10、电商网站发现相关页面发生系统性功能失效。3.一分钟内再次访问电商网站发现故障已恢复。4.一切恢复正常运转。5.3 模拟上海数据中心的数据在14:31分人为删除丢失数据(一)目标:3分钟之内将所有上海数据中心的客户数据库转向北京数据中心的客户数据库。(二)测试步骤:1.将上海数据中心的重要订单数据在14:31分删除一条。2.立即访问电商网站该客户的订单数据发现缺失。3. 将最后一次的完整备份和14:31分的日志备份恢复即可。3.三分钟内再次访问电商网站发现故障已恢复。4.一切恢复正常运转。5.4 模拟上海数据中心存储设备有故障(一)目标:1分钟之内将所有上海数据中心的客户数据库转向北京数据中心的
11、客户数据库。(二)测试步骤:1.将上海数据中心的服务器sql01硬盘拆除。2.访问电商网站发现相关页面发生系统性功能失效。3.一分钟内再次访问电商网站发现故障已恢复。4.一切恢复正常运转。5.5 灾备检测工具DBCC在危急时刻,数据库一致性检测(DBCC)可能是你最重要的工具。它们包括:检测表和相关目录的完整性;检测整个数据库;检测数据库页的完整性;重建任何指定表中的目录;包括以下扩展:CheckDB:检测整个数据库的一致性,是检查数据库破坏的基本方法。CheckTable:检测特定表的问题。CheckAlloc:检测数据库的单个页面,包括表和目录。 Reindex:重建某个特定表的目录。Ca
12、cheStats:说明当前存储在内存缓存中的对象。DropCleanBuffers:释放当前存储在缓冲区中的所有数据,这样你就可以继续进行检测,而不必使用前面的结果。Errorlog:删除(缩短)当前日志。你可以考虑确定包含这个命令的操作的时间,一个星期左右运行一次。FlushProclnDB:清除特定数据库的存储过程缓存(使用它的数据库id而不是名称)。使用下列代码找出id: SELECT dbid FROM master.dbo.sysdatabases WHERE name = IndexDefrag:减少目录分裂,但不给文件加锁,以便用户能够继续应用数据库。 CheckCatalog:
13、检测特定数据库表及表之间的一致性(后者意味着使用外键等。)DBCC命令分类维护语句DBCC DBREINDEX 重建指定数据库中表的一个或多个索引DBCC DBREPAIR 除去损坏的数据库 DBCC INDEXDEFRAG 整理指定的表或视图的聚集索引和辅助索引碎片DBCC SHRINKDATABASE 收缩指定数据库中的数据文件大小DBCC SHRINKFILE 收缩相关数据库的指定数据文件或日志文件大小DBCC UPDATEUSAGE 报告和更正 sysindexes 表的不正确内容,该内容可能会导致通过 sp_spaceused 系统存储过程产生不正确的空间使用报表状态语句DBCC I
14、NPUTBUFFER 显示从客户端发送到MS SQL Server 的最后一个语句DBCC OPENTRAN 如果在指定数据库内存在最旧的活动事务和最旧的分布和 非分布式复制事务, 则显示与之相关的信息。只有当存在活动事务或数据库包含复制信息时, 才显示结果。如果没有活动事务,就显示信息性消息DBCC OUTPUTBUFFER 以十六进制或 ASCII 格式返回指定系统进程 ID (SPID) 的当前输出缓冲区DBCC PROCCACHE 以报表形式显示有关过程高速缓存的信息DBCC SHOWCONTIG 显示指定的表的数据和索引的碎片信息DBCC SHOW_STATISTICS 显示指定表上
15、的指定目标的当前分布统计信息DBCC SQLPERF 提供有关所有数据库中的事务日志空间使用情况的统计信息DBCC TRACESTATUS 显示跟踪标记的状态DBCC USEROPTIONS 返回当前连接的活动(设置)的 SET 选项验证语句DBCC CHECKALLOC 检查指定数据库的磁盘空间分配结构的一致性DBCC CHECKCATALOG 检查指定数据库中的系统表内及系统表间的一致性DBCC CHECKCONSTRAINTS 检查指定表上的指定约束或所有约束的完整性DBCC CHECKDB 检查指定数据库中的所有对象的分配和结构完整性DBCC CHECKFILEGROUP 检查指定文件组中的所有表(在当前数据库中)的分配和结构完整性DBCC CHECKIDENT 检查指定表的当前标识值,如有必要,还对标识值进行更正DBCC CHECKTABLE 检查指定表或索引视图的数据、索引及 text、ntext 和 image 页的完整性专心-专注-专业