书海网短评:
“永远在线,永远可用”对于任何一个现代化公司来说,这不仅是一个业务目标,更是竞争需求。本书重点讲述了SQLServer2016的高可用特性及企业实战技术。通过学习并掌握这些技术,读者能够亲自打造一个高可用性系统
“永远在线,永远可用”对于任何一个现代化公司来说,这不仅是一个业务目标,更是竞争需求。
《深入SQL Server 2016高可用》重点讲述了SQLServer2016的高可用特性及企业实战技术。通过学习并掌握这些技术,读者能够亲自打造一个高可用性系统。主要内容包括微软SQLServer集群、SQL数据复制、日志迁移、数据库镜像/快照、持续可用性组以及基于Azure的大数据和AzureSQL内置架构等。《深入SQL Server 2016高可用》还提供了一组反映企业真实的高可用性需求的业务场景,引导读者学习高可用性的设计过程,并讲解如何选择合适的高可用性选项、方法及策略,从而使读者学会用特定的技术方案来实现业务场景的高可用性需求。《深入SQL Server 2016高可用》业务场景的引入及实现源自真实的客户案例,便于读者理解真实业务场景的高可用性情况。
《深入SQL Server 2016高可用》适合系统设计师、系统架构师、系统管理员、数据构架师、DBA、SQL开发人员及一些管理岗位人员(如CIO、CTO等)学习参考,也适合大学数据库相关专业的师生作为参考用书。
PaulBertucci:世界著名数据专家,著有SQLServerUnleashed系列图书,他是DatabyDesign公司创始人、Symantec前总数据架构师以及Autodesk前总架构师。他将其超过30年的构建高关键性、大规模数据库经验带入他的每一本著作
前言
PartI理解高可用性
第1章理解高可用性1
1.1高可用性概述1
1.2可用性计算5
1.2.1 可用性计算示例:一个24×7×365的应用5
1.2.2 连续可用性7
1.3可用性变量9
1.4实现高可用性的一般设计方法11
1.5内置高可用性的开发方法12
1.5.1 评估现有应用14
1.5.2 什么是服务水平协议?15
1.6高可用性业务场景15
1.6.1 应用服务供应商16
1.6.2 全球销售和市场品牌推广16
1.6.3 投资组合管理17
1.6.4 挖掘前确认的呼叫中心17
1.7提供高可用性的微软技术18
1.8小结19
第2章微软高可用性选项21
2.1高可用性入门21
2.1.1 创建容错磁盘:RAID和镜像23
2.1.2 利用RAID提高系统可用性24
2.1.3 通过分散服务器来降低风险的实例29
2.2构建高可用性解决方案的微软选项30
2.2.1 Windows服务器故障转移集群31
2.2.2 SQL集群32
2.2.3 AlwaysOn可用性组34
2.2.4 数据复制35
2.2.5 日志传送36
2.2.6 数据库快照37
2.2.7 微软Azure选项和AzureSQL数据库38
2.2.8 应用集群40
2.3小结41
PartII选择正确的高可用性方法
第3章高可用性选择43
3.1实现高可用性的四步过程43
3.2步骤1:启动第0阶段高可用性评估44
3.2.1 第0阶段高可用性评估所需资源44
3.2.2 第0阶段高可用性评估的任务45
3.3步骤2:量测高可用性的主要变量47
3.4步骤3:确定高可用性最优解决方案48
3.5步骤4:检验所选高可用性解决方案的成本66
3.5.1 ROI计算66
3.5.2 在开发方法中添加高可用性元素67
3.6小结68
PartIII高可用性实现
第4章故障转移集群71
4.1不同形式的故障转移集群72
4.2集群如何工作73
4.2.1 理解WSFC74
4.2.2 利用NLB扩展WSFC77
4.2.3 在WFSC中如何设置SQLServer集群和AlwaysOn的实现阶段78
4.2.4 故障转移集群的安装79
4.3SQL集群配置84
4.4AlwaysOn可用性组配置84
4.5SQLServer数据库磁盘配置85
4.6小结86
第5章SQLServer集群87
5.1在WSFC下安装SQLServer集群88
5.2SQLServer故障转移集群中需注意的问题99
5.3多站点SQLServer故障转移集群99
5.4场景1:具有SQLServer集群的应用服务提供商100
5.5小结102
第6章SQLServerAlwaysOn可用性组103
6.1AlwaysOn可用性组用例103
6.1.1 Windows服务器故障转移集群104
6.1.2 AlwaysOn故障转移集群实例104
6.1.3 AlwaysOn可用性组105
6.1.4 故障转移与扩展选项结合108
6.2构建一个多节点AlwaysOn配置108
6.2.1 验证SQLServer实例109
6.2.2 设置故障转移集群109
6.2.3 准备数据库111
6.2.4 启用AlwaysOn高可用性111
6.2.5 备份数据库112
6.2.6 创建可用性组112
6.2.7 选择可用性组的数据库113
6.2.8 确定主副本和次要副本115
6.2.9 同步数据116
6.2.10 设置监听器118
6.2.11 连接所用的监听器121
6.2.12 故障转移到次要副本121
6.3仪表盘和监测123
6.4场景2:使用AlwaysOn可用性组的投资组合管理124
6.5小结126
第7章SQLServer数据库快照127
7.1数据库快照的含义128
7.2即写即拷技术131
7.3何时使用数据库快照132
7.3.1 恢复目的的快照还原132
7.3.2 在大规模更改之前保护数据库133
7.3.3 提供测试(或质量保证)起始点(基线)133
7.3.4 提供时间点报表数据库134
7.3.5 从镜像数据库提供高可用性和卸载报表数据库135
7.4设置和撤销数据库快照136
7.4.1 创建一个数据库快照136
7.4.2 撤销一个数据库快照140
7.5用于恢复的数据库快照还原140
7.5.1 通过数据库快照还原源数据库140
7.5.2 利用数据库快照进行测试和QA141
7.5.3 数据库快照的安全保障142
7.5.4 快照的稀疏文件大小管理142
7.5.5 每个源数据库的数据库快照个数143
7.5.6 为实现高可用性添加数据库镜像143
7.6数据库镜像的含义143
7.6.1 何时使用数据库镜像145
7.6.2 数据库镜像配置的角色145
7.6.3 角色扮演和角色切换145
7.6.4 数据库镜像工作模式146
7.7设置和配置数据库镜像147
7.7.1 准备镜像数据库147
7.7.2 创建端点149
7.7.3 授权权限151
7.7.4 在镜像服务器上创建数据库151
7.7.5 确定数据库镜像的其他端点153
7.7.6 监视镜像数据库环境154
7.7.7 删除镜像157
7.8测试从主服务器到镜像服务器的故障转移158
7.9在数据库镜像上设置数据库快照160
7.10场景3:使用数据库快照和数据库镜像的投资组合管理162
7.11小结164
第8章SQLServer数据复制165
8.1实现高可用性的数据复制165
8.1.1 快照复制165
8.1.2 事务复制166
8.1.3 合并复制166
8.1.4 数据复制的含义167
8.2发布服务器、分发服务器和订阅服务器的含义169
8.2.1 发布和项目170
8.2.2 筛选项目170
8.3复制方案173
8.3.1 中央发布服务器174
8.3.2 具有远程分发服务器的中央发布服务器175
8.4订阅176
8.4.1 请求订阅176
8.4.2 推送订阅177
8.5分发数据库177
8.6复制代理178
8.6.1 快照代理178
8.6.2 日志读取器代理179
8.6.3 分发代理179
8.6.4 各种其他代理180
8.7用户需求驱动的复制设计180
8.8复制设置180
8.8.1 启用分发服务器181
8.8.2 发布183
8.8.3 创建一个发布183
8.8.4 创建一个订阅185
8.9切换到温备用(订阅服务器)190
8.9.1 切换到温备用的场景190
8.9.2 切换到温备用(订阅服务器)190
8.9.3 订阅服务器转换为发布服务器(如果需要)191
8.10复制监视191
8.10.1 SQL语句191
8.10.2 SQLServerManagementStudio192
8.10.3 Windows性能监视器与复制194
8.10.4 复制配置的备份和恢复194
8.11场景2:利用数据复制的全球销售和市场营销196
8.12小结198
第9章SQLServer日志传送199
9.1廉价的高可用性199
9.1.1 数据延迟和日志传送200
9.1.2 日志传送的设计和管理含义201
9.2日志传送设置202
9.2.1 创建日志传送之前202
9.2.2 利用数据库日志传送任务203
9.2.3 源服务器发生故障时211
9.3场景4:使用日志传送的挖掘前呼叫211
9.4小结213
第10章云平台的高可用性选项215
10.1高可用性云存在的问题215
10.2利用云计算的高可用性混合方法216
10.2.1 复制拓扑的云扩展217
10.2.2 为提高高可用性的日志传送云扩展219
10.2.3 为提高高可用性创建一个云端拉伸数据库220
10.2.4 将AlwaysOn可用性组应用到云端221
10.2.5 利用云端的AlwaysOn可用性组222
10.2.6 在云端使用高可用性的AzureSQL数据库224
10.2.7 使用主动式异地数据复制备援225
10.2.8 使用云端Azure大数据选项时的高可用性226
10.3小结226
第11章高可用性和大数据选项227
11.1Azure的大数据选项227
11.1.1 HDInsight228
11.1.2 机器学习Web服务229
11.1.3 数据流分析229
11.1.4 认知服务229
11.1.5 数据湖分析229
11.1.6 数据湖存储229
11.1.7 数据工厂230
11.1.8 嵌入式PowerBI231
11.1.9 微软Azure数据湖服务231
11.2HDInsight特性231
11.2.1 使用NoSQL功能232
11.2.2 实时处理232
11.2.3 交互式分析的Spark233
11.2.4 用于预测分析和机器学习的R服务器233
11.2.5 Azure数据湖分析233
11.2.6 Azure数据湖存储234
11.3Azure大数据的高可用性235
11.3.1 数据冗余235
11.3.2 高可用性服务236
11.4如何创建一个高可用性的HDInsight集群236
11.5大数据访问244
11.6从企业初创到形成规模的过程中,大数据经历的七个主要阶段246
11.7大数据解决方案需要考虑的其他事项249
11.8Azure大数据用例249
11.8.1 用例1:迭代探索249
11.8.2 用例2:基于需求的数据仓库250
11.8.3 用例3:ETL自动化250
11.8.4 用例4:BI集成250
11.8.5 用例5:预测分析250
11.9小结250
第12章高可用性的硬件和操作系统选项253
12.1服务器高可用性的考虑254
12.1.1 故障转移集群254
12.1.2 网络配置255
12.1.3 虚拟机集群复制256
12.1.4 虚拟化竞争256
12.2备份考虑258
12.2.1 集成虚拟机管理程序复制259
12.2.2 虚拟机快照259
12.2.3 灾难恢复即服务260
12.3小结260
第13章灾难恢复和业务连续性261
13.1如何实现灾难恢复262
13.1.1 灾难恢复模式263
13.1.2 恢复目标268
13.1.3 以数据为中心的灾难恢复方法268
13.2灾难恢复的微软选项269
13.2.1 数据复制269
13.2.2 日志传送271
13.2.3 数据库镜像和快照272
13.2.4 数据变更捕获272
13.2.5 AlwaysOn可用性组273
13.2.6 Azure和主动式异地数据复制备援275
13.3灾难恢复的整体过程275
13.3.1 灾难恢复的重点关注问题276
13.3.2 规划和执行灾难恢复282
13.4近期是否有过拆分数据库282
13.5第三方灾难恢复方案283
13.6小结283
第14章高可用性实现285
14.1首要基础285
14.2组建高可用性评估小组287
14.3设置高可用性评估项目计划进度/时间表288
14.4执行第0阶段高可用性评估288
14.4.1 步骤1:进行高可用性评估289
14.4.2 步骤2:确定高可用性主要变量291
14.4.3 在开发生命周期中集成高可用性任务292
14.5选择高可用性解决方案294
14.6确定高可用性解决方案是否具有高性价比296
14.7小结298
第15章当前部署的高可用性升级299
15.1量化当前部署300
15.2确定采用何种高可用性解决方案进行升级302
15.3规划升级306
15.4执行升级306
15.5测试高可用性配置307
15.6监视高可用性的性能状况308
15.7小结310
第16章高可用性和安全性313
16.1安全性总体框架314
16.1.1 使用对象权限和角色315
16.1.2 使用模式绑定视图的对象保护317
16.2确保高可用性选项具有适当的安全性319
16.2.1 SQL集群安全性考虑319
16.2.2 日志传送安全性考虑320
16.2.3 数据复制安全性考虑321
16.2.4 数据库快照安全性考虑322
16.2.5 AlwaysOn可用性组安全性考虑323
16.3SQLServer审核324
16.4小结327
第17章高可用性的未来发展方向329
17.1高可用性即服务329
17.2100%虚拟化的平台330
17.3100%的云平台331
17.4先进的异地数据复制备援332
17.5灾难恢复即服务?334
17.6小结335
“永远在线,永远可用。”对于任何一个希望在云计算领域具有竞争力的公司来说,这不仅是一个业务目标,更是竞争需求。部署在正确架构之上的高可用性技术,能够不间断地为客户提供价值。
—JeffBrzycki,Autodesk首席信息官,2017年3月
●99.999%
宕机(系统服务不可用)带来的损失简单而直接,如带来直接的利润损失、部署能力的损失、客户体验的损失等。如果您的应用经常宕机或者存在较大的宕机风险,那么《深入SQL Server 2016高可用》非常适合您。如果您的业务需要通过“高可用”或“持续可用”来保证公司利润、部署能力、客户体验不受损失,那么《深入SQL Server 2016高可用》也非常适合您。
帮助您理解高可用性(HA)解决方案、选择高可用性方法,从而达到利益最大化、成本最小化是《深入SQL Server 2016高可用》的核心目标。《深入SQL Server 2016高可用》为您提供了高可用解决方案设计与实施的路径。一个好消息是,一般的软硬件提供商,特别是微软公司,在产品的可用性方面已经进行了长期的探索,并向着99.999%(简称5个9)的可用性目标努力前进。一个期望达到5个9可用性的24×7的应用,一年的总宕机时间不过5.26分钟,所以,如何设计出如此高的可用性是一项非常艰巨的挑战。
《深入SQL Server 2016高可用》甚至涉及了一些关于“100%可用性”的选项。这些技术伴随着高可用性解决方案的正式方法论,将使您能够用最少的开发及平台成本,让系统从设计、安装到维护获得最高的可用性。
满足需求的合适的高可用方法、高可用解决方案的投资回报率(ReturnonInvestment,RIO)是搭建高可用环境的两个核心因素,对这两个因素的理解与把握能力决定了公司的成功或失败。一个公司的核心应用可能需要某种类型的高可用性解决方案。比如,对于一个全球在线定货系统,较长时间宕机不但会造成利润损失,还会影响客户对该公司的口碑,这个赌注就太大了。
《深入SQL Server 2016高可用》讲述了如何为新的应用程序进行高可用性设计,以及如何更新当前的应用以提高可用性。在所有案例中,一个关键的考虑是业务驱动,即业务对应用的可用性需求的影响,以及在任何时期内如果该应用不具备这种可用性所带来的生产成本及客户口碑成本。
《深入SQL Server 2016高可用》着重讲述了最新的MicrosoftSQLServer产品的高可用性能力及选项,这些能力将使您能够打造一个高可用性系统,其中包含微软集群服务、SQLServer2016的SQL集群、SQL数据复制、日志传输、数据库镜像/快照、保持可用性组以及基于Azure的大数据和AzureSQL内置架构。
最重要的是,《深入SQL Server 2016高可用》提供了一组反映企业真实的高可用性需求的商业场景。通过这些特定的商业场景,使您学会高可用性的设计过程,并告诉您如何选择最合适的高可用性方法,从而学会用特定的技术方案来实现商业场景需求的途径。
与一本技术手册相比,也许您感觉《深入SQL Server 2016高可用》更像一本菜谱或谷歌地图中的路线建议,而这正是我们所要达到的效果。一方面,《深入SQL Server 2016高可用》对技术语法进行了讲解,但《深入SQL Server 2016高可用》更多地聚焦于解释你为什么要选择某个特定方法来满足特定商业或应用需求。《深入SQL Server 2016高可用》商业场景的引入及实现源自真实的客户实现,当然鉴于保密因素,《深入SQL Server 2016高可用》并没有透露这些客户的具体名称。这些商业场景可用于纠正在面临这些商业场景时的高可用性情况。《深入SQL Server 2016高可用》还包含一些使用了微软提供的声名不佳的AdventureWorks数据库的案例,使用AdventureWorks可以让您快速而方便地重现一些解决方案。
可以在《深入SQL Server 2016高可用》的网站链接获得启动您的下一个高可用性实现的工具、脚本、文档、索引,网址是www.informit.com/title/9780672337765。
●《深入SQL Server 2016高可用》适用人群
《深入SQL Server 2016高可用》适合系统设计师,系统架构师,系统管理员,数据构架师,DBA、SQL开发人员,以及一些管理岗位人员(如CIO、CTO等)学习参考。此外,由于很多问题及影响会导致利润、产品及客户美誉度的损失,所以《深入SQL Server 2016高可用》也会对关心判断、选择及投资回报率的CFO有所帮助。一个积极的、深刻理解高可用性的好外、复杂性、能力的CFO,将更容易地了解公司是否很好地处于优秀高可用性技术的保护之下。
●《深入SQL Server 2016高可用》的组织结构
《深入SQL Server 2016高可用》分为以下三个部分:
第一部分,理解高可用性。第1章、第2章主要阐明高可用性的定义、介绍常见的高可用性商业场景,并介绍了微软产品家族中与高可用性有直接关系的不同的软硬件选择。
第二部分,选择正确的高可用性方法。第3章明确定义了一个正式的设计方法,用于在各种商业场景下实现高可用性。
第三部分,实现高可用。第4章~第17章讲述了每种高可用方案的架构、设计、实现步骤及所需技术。每一个业务场景都达到了完全的高可用性实现。最后是一个对《深入SQL Server 2016高可用》涉及的所有方法的总结,同时对高可用性的未来发展进行了展望。
鉴于越来越多的企业或组织涉足大数据业务,所以《深入SQL Server 2016高可用》也讨论了关于大数据业务的高可用性。
《深入SQL Server 2016高可用》关于高可用性方法的讲解一应俱全。对于给定的业务和服务,从业务需求开始到高可用性实现的结束,相信《深入SQL Server 2016高可用》必将带给您足够清晰的理解与认知。
●《深入SQL Server 2016高可用》的约定惯例
《深入SQL Server 2016高可用》中,命令与存储过程的名称一律以等宽字体呈现。对于关键字及对象的名称,我们尽量保持了大小写的一致性,但由于SQLServer默认安装的情况下并不区分关键字与对象名称的大小写,所以例子中的关键字或对象名称的大小写并不一定完全一致。
《深入SQL Server 2016高可用》的“提示”涵盖了与讨论主题相关的设计与架构思想,表示对所讨论的观点的补充或对设计向导的帮助。例如,对于一个数据库的不同数据存取类型,什么样的磁盘阵列级别是合适的,就会通过“提示”来提供一些额外视角,这些提示可能会高于或超出对磁盘阵列的普通解释,但在创建SQLServer数据库时,能够考虑到这些问题是非常有益的。
●设定目标
与大家接触过的很多其他系统一样,根据用户(业务)对系统可用性需求的期望,建立起需求文档是非常重要的。对于渴望高可用性的系统来说,这些高可用性需求必须十分精确。创建高可用系统的风险非常高,《深入SQL Server 2016高可用》所讲的具有良好理论基础的、经过时间检验的方法论,很好地平衡了成本与收益,并且减少了高可用性技术选择的随意性。对现有或未来的应用的高可用性需求来说,我们还有很多事情要做。《深入SQL Server 2016高可用》简单而直接地向您展示了如何理解、进行成本调整、达到这些高可用性目标以及将宕机时间控制在最小的程度。另外,《深入SQL Server 2016高可用》还是Sams出版公司出版的MicrosoftSQLServer2014Unleashed的绝佳姊妹篇。









