描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787517067238
●大咖作者:全球著名数据专家Paul Bertucci亲著,超过30年构建高关键性、大规模数据库经验。
●案例宝贵:本书全部案例,均来自全球500强企业的真实实践。
●从浅入深:理论讲解深入浅出,实践操作步骤详细。
●内容全面:涵盖了数据库高可用从入门深入的方方面面。
“永远在线,永远可用”对于任何一个现代化公司来说,这不仅是一个业务目标,更是竞争需求。
本书重点讲述了SQL Server 2016的高可用特性及企业实战技术。通过学习并掌握这些技术,读者能够亲自打造一个高可用性系统。主要内容包括微软SQL Server集群、SQL数据复制、日志迁移、数据库镜像/快照、持续可用性组以及基于Azure的大数据和Azure SQL内置架构等。本书还提供了一组反映企业真实的高可用性需求的业务场景,引领读者学习高可用性的设计过程,并讲解如何选择*合适的高可用性选项、方法及策略,从而使读者学会用特定的技术方案来实现业务场景的高可用性需求。本书业务场景的引入及实现源自真实的客户案例,便于读者理解真实业务场景的高可用性情况。
本书适合系统设计师、系统架构师、系统管理员、数据构架师、DBA、SQL开发人员及一些管理岗位人员(如CIO、CTO等)学习参考,也适合大学数据库相关专业的师生作为参考用书。
前言
Part I 理解高可用性
第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选项和Azure
SQL数据库 38
2.2.8 应用集群
40
2.3 小结
41
Part II 选择正确的高可用性方法
第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
Part III 高可用性实现
第4章 故障转移集群 71
4.1 不同形式的故障转移集群 72
4.2 集群如何工作 73
4.2.1 理解WSFC 74
4.2.2 利用NLB扩展WSFC 77
4.2.3 在WFSC中如何设置SQL
Server集群和AlwaysOn的实现阶段 78
4.2.4 故障转移集群的安装 79
4.3 SQL集群配置 84
4.4 AlwaysOn可用性组配置 84
4.5 SQL Server数据库磁盘配置 85
4.6 小结 86
第5章 SQL Server集群 87
5.1 在WSFC下安装SQL Server集群
88
5.2 SQL Server故障转移集群中需注意的问题 99
5.3 多站点SQL
Server故障转移集群 99
5.4 场景1:具有SQL Server集群的应用服务提供商 100
5.5 小结 102
第6章 SQL Server AlwaysOn可用性组 103
6.1 AlwaysOn可用性组用例 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 验证SQL Server实例 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章 SQL Server数据库快照 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 利用数据库快照进行测试和QA 141
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章 SQL Server数据复制 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 SQL Server Management Studio 192
8.10.3 Windows性能监视器与复制 194
8.10.4 复制配置的备份和恢复 194
8.11 场景2:利用数据复制的全球销售和市场营销 196
8.12 小结 198
第9章 SQL Server日志传送 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 在云端使用高可用性的Azure SQL数据库 224
10.2.7 使用主动式异地数据复制备援 225
10.2.8 使用云端Azure大数据选项时的高可用性 226
10.3 小结
226
第11章 高可用性和大数据选项 227
11.1 Azure的大数据选项 227
11.1.1 HDInsight 228
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 嵌入式Power BI 231
11.1.9 微软Azure数据湖服务 231
11.2 HDInsight特性 231
11.2.1 使用NoSQL功能 232
11.2.2 实时处理 232
11.2.3 交互式分析的Spark 233
11.2.4 用于预测分析和机器学习的R服务器 233
11.2.5 Azure数据湖分析 233
11.2.6 Azure数据湖存储 234
11.3 Azure大数据的高可用性 235
11.3.1 数据冗余 235
11.3.2 高可用性服务 236
11.4 如何创建一个高可用性的HDInsight集群 236
11.5 大数据访问 244
11.6 从企业初创到形成规模的过程中,大数据经历的七个主要阶段 246
11.7 大数据解决方案需要考虑的其他事项 249
11.8 Azure大数据用例 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
“永远在线,永远可用。”对于任何一个希望在云计算领域具有竞争力的公司来说,这不仅是一个业务目标,更是竞争需求。部署在正确架构之上的高可用性技术,能够不间断地为客户提供价值。
—Jeff Brzycki,Autodesk首席信息官,2017年3月
●99.999%
宕机(系统服务不可用)带来的损失简单而直接,如带来直接的利润损失、部署能力的损失、客户体验的损失等。如果您的应用经常宕机或者存在较大的宕机风险,那么本书非常适合您。如果您的业务需要通过“高可用”或“持续可用”来保证公司利润、部署能力、客户体验不受损失,那么本书也非常适合您。
帮助您理解高可用性(HA)解决方案、选择高可用性方法,从而达到利益化、成本小化是本书的核心目标。本书为您提供了高可用解决方案设计与实施的路径。一个好消息是,一般的软硬件提供商,特别是微软公司,在产品的可用性方面已经进行了长期的探索,并向着99.999%(简称5个9)的可用性目标努力前进。一个期望达到5个9可用性的24×7的应用,一年的总宕机时间不过5.26分钟,所以,如何设计出如此高的可用性是一项非常艰巨的挑战。
本书甚至涉及了一些关于“100%可用性”的选项。这些技术伴随着高可用性解决方案的正式方法论,将使您能够用少的开发及平台成本,让系统从设计、安装到维护获得的可用性。
满足需求的合适的高可用方法、高可用解决方案的投资回报率(Return
on Investment,RIO)是搭建高可用环境的两个核心因素,对这两个因素的理解与把握能力决定了公司的成功或失败。一个公司的核心应用可能需要某种类型的高可用性解决方案。比如,对于一个全球在线定货系统,较长时间宕机不但会造成利润损失,还会影响客户对该公司的口碑,这个赌注就太大了。
本书讲述了如何为新的应用程序进行高可用性设计,以及如何更新当前的应用以提高可用性。在所有案例中,一个关键的考虑是业务驱动,即业务对应用的可用性需求的影响,以及在任何时期内如果该应用不具备这种可用性所带来的生产成本及客户口碑成本。
本书着重讲述了的 Microsoft SQL Server产品的高可用性能力及选项,这些能力将使您能够打造一个高可用性系统,其中包含微软集群服务、SQL Server 2016的SQL集群、SQL数据复制、日志传输、数据库镜像/快照、保持可用性组以及基于Azure的大数据和Azure SQL内置架构。
重要的是,本书提供了一组反映企业真实的高可用性需求的商业场景。通过这些特定的商业场景,使您学会高可用性的设计过程,并告诉您如何选择合适的高可用性方法,从而学会用特定的技术方案来实现商业场景需求的途径。
与一本技术手册相比,也许您感觉本书更像一本菜谱或谷歌地图中的路线建议,而这正是我们所要达到的效果。一方面,本书对技术语法进行了讲解,但本书更多地聚焦于解释你为什么要选择某个特定方法来满足特定商业或应用需求。本书商业场景的引入及实现源自真实的客户实现,当然鉴于保密因素,本书并没有透露这些客户的具体名称。这些商业场景可用于纠正在面临这些商业场景时的高可用性情况。本书还包含一些使用了微软提供的声名不佳的AdventureWorks数据库的案例,使用AdventureWorks可以让您快速而方便地重现一些解决方案。
可以在本书的网站链接获得启动您的下一个高可用性实现的工具、脚本、文档、索引,网址是www.informit.com/title/9780672337765。
●本书适用人群
本书适合系统设计师,系统架构师,系统管理员,数据构架师,DBA、SQL开发人员,以及一些管理岗位人员(如CIO、CTO等)学习参考。此外,由于很多问题及影响会导致利润、产品及客户美誉度的损失,所以本书也会对关心判断、选择及投资回报率的CFO有所帮助。一个积极的、深刻理解高可用性的好外、复杂性、能力的CFO,将更容易地了解公司是否很好地处于优秀高可用性技术的保护之下。
●本书的组织结构
本书分为以下三个部分:
部分,理解高可用性。第1章、第2章主要阐明高可用性的定义、介绍常见的高可用性商业场景,并介绍了微软产品家族中与高可用性有直接关系的不同的软硬件选择。
第二部分,选择正确的高可用性方法。第3章明确定义了一个正式的设计方法,用于在各种商业场景下实现高可用性。
第三部分,实现高可用。第4章~第17章讲述了每种高可用方案的架构、设计、实现步骤及所需技术。每一个业务场景都达到了完全的高可用性实现。后是一个对全书涉及的所有方法的总结,同时对高可用性的未来发展进行了展望。
鉴于越来越多的企业或组织涉足大数据业务,所以本书也讨论了关于大数据业务的高可用性。
本书关于高可用性方法的讲解一应俱全。对于给定的业务和服务,从业务需求开始到高可用性实现的结束,相信本书必将带给您足够清晰的理解与认知。
●本书的约定惯例
本书中,命令与存储过程的名称一律以等宽字体呈现。对于关键字及对象的名称,我们尽量保持了大小写的一致性,但由于SQL Server默认安装的情况下并不区分关键字与对象名称的大小写,所以例子中的关键字或对象名称的大小写并不一定完全一致。
本书的“提示”涵盖了与讨论主题相关的设计与架构思想,表示对所讨论的观点的补充或对设计向导的帮助。例如,对于一个数据库的不同数据存取类型,什么样的磁盘阵列级别是合适的,就会通过“提示”来提供一些额外视角,这些提示可能会高于或超出对磁盘阵列的普通解释,但在创建SQL Server数据库时,能够考虑到这些问题是非常有益的。
●设定目标
与大家接触过的很多其他系统一样,根据用户(业务)对系统可用性需求的期望,建立起需求文档是非常重要的。对于渴望高可用性的系统来说,这些高可用性需求必须十分精确。创建高可用系统的风险非常高,本书所讲的具有良好理论基础的、经过时间检验的方法论,很好地平衡了成本与收益,并且减少了高可用性技术选择的随意性。对现有或未来的应用的高可用性需求来说,我们还有很多事情要做。本书简单而直接地向您展示了如何理解、进行成本调整、达到这些高可用性目标以及将宕机时间控制在小的程度。另外,本书还是Sams出版公司出版的Microsoft
SQL Server2014 Unleashed的绝佳姊妹篇。
评论
还没有评论。