数据库可靠性工程数据库系统设计与运维指南

数据库可靠性工程数据库系统设计与运维指南
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: (Charity Majors) , (Laine Campbell) , , ,
2020-11
版次: 1
ISBN: 9787115548863
定价: 89.00
装帧: 平装
开本: 其他
页数: 212页
字数: 289千字
7人买过
  • 数据是当今企业的宝贵资产,设计、构建并维护数据存储的重要性不言而喻,而技术的快速迭代给数据库可靠性带来了更多挑战,也向数据库管理员提出了更高要求。本书从可靠性这一视角就数据库的构建和运维展开细致讨论。全书内容分为两大部分:前一部分介绍运维基础知识,包括行为准则、服务等级管理、风险管理和运维可见性;后一部分深入研究数据本身,包括基础设施、备份和恢复、安全、存储和复制、架构等。 莱恩.坎贝尔(Laine Campbell)是Facebook生产工程总监,曾任Fastly生产工程高级总监,PalominoDB/Blackbird创始人、前CEO,为众多公司提供数据库需求咨询服务,在运行大型数据库和分布式系统方面有近20年经验。
    夏丽蒂.梅杰斯(Charity Majors)是Honeycomb公司联合创始人和CTO,曾任Facebook生产工程经理,是一位有15年以上经验的高级系统工程师。 序 xii

    前言 xiii

    第 1章 数据库可靠性工程介绍 1

    1.1 数据库可靠性工程师的指导原则 2

    1.1.1 保护数据 2

    1.1.2 大量自助服务 3

    1.1.3 消除琐事 3

    1.1.4 数据库并不特殊 4

    1.1.5 消除软件和运维之间的障碍 4

    1.2 运维核心概述 5

    1.3 需求层次 6

    1.3.1 生存和安全 . 6

    1.3.2 爱和归属感 7

    1.3.3 尊重 7

    1.3.4 自我实现 8

    1.4 小结 9

    第 2章 服务等级管理 10

    2.1 为何需要SLO 10

    2.2 服务等级指标 12

    2.2.1 延时 12

    2.2.2 可用性 12

    2.2.3 吞吐量 12

    2.2.4 持久性 13

    2.2.5 成本或效率 13

    2.3 定义服务目标 13

    2.3.1 延时指标 13

    2.3.2 可用性指标 16

    2.3.3 吞吐量指标 18

    2.4 SLO的监控和报告 19

    2.4.1 可用性监控 20

    2.4.2 延时监控 21

    2.4.3 吞吐量监控 22

    2.4.4 监控成本和效率 22

    2.5 小结 23

    第3章 风险管理 24

    3.1 风险考量因素 25

    3.1.1 未知因素和复杂性 25

    3.1.2 可用资源 25

    3.1.3 人为因素 25

    3.1.4 团队因素 26

    3.2 可以做什么 27

    3.3 不可以做什么 27

    3.4 工作流程:初始版本 28

    3.4.1 服务风险评估 29

    3.4.2 架构清单 30

    3.4.3 优先级 31

    3.4.4 风险控制和决策制定 34

    3.5 持续迭代 36

    3.6 小结 37

    第 4 章 操作可见性 38

    4.1 操作可见性的新规则 40

    4.1.1 把操作可见性视为商业智能系统 40

    4.1.2 分布式易失环境成为趋势 40

    4.1.3 高频存储关键度量值 42

    4.1.4 保持架构简洁 43

    4.2 操作可见性框架 44

    4.3 数据输入 45

    4.3.1 遥测/度量值 46

    4.3.2 事件 47

    4.3.3 日志 47

    4.4 数据输出 47

    4.5 监控的初始版本 48

    4.5.1 数据安全吗 49

    4.5.2 服务运行正常吗 50

    4.5.3 用户受影响了吗 51

    4.6 度量应用程序 51

    4.6.1 分布式追踪 52

    4.6.2 事件与日志 53

    4.7 度量服务器或实例 53

    4.8 度量数据存储 55

    4.9 数据存储连接层 56

    4.9.1 利用率 56

    4.9.2 饱和度 56

    4.9.3 错误 57

    4.10 数据库内部可见性 58

    4.10.1 吞吐量和延时度量值 58

    4.10.2 提交、重做和日志 58

    4.10.3 复制状态 59

    4.10.4 内存结构 60

    4.10.5 锁与并发 60

    4.11 数据库对象 62

    4.12 数据库查询 62

    4.13 数据库报警和事件 62

    4.14 小结 63

    第5章 基础设施工程 64

    5.1 主机 64

    5.1.1 物理服务器 64

    5.1.2 系统或内核的运维 65

    5.1.3 存储区域网络 72

    5.1.4 物理服务器的优点 73

    5.1.5 物理服务器的缺点 73

    5.2 虚拟化 73

    5.2.1 虚拟机管理程序 74

    5.2.2 并发 74

    5.2.3 存储 74

    5.2.4 用例 74

    5.3 容器 75

    5.4 DaaS 75

    5.4.1 DaaS面临的挑战 76

    5.4.2 数据库可靠性工程师与DaaS 76

    5.5 小结 77

    第6章 基础设施管理 78

    6.1 版本控制 79

    6.2 配置定义 79

    6.3 基于配置的构建 81

    6.4 维护配置 82

    6.5 基础设施定义和编排 83

    6.5.1 单一基础设施定义 83

    6.5.2 垂直拆分 84

    6.5.3 分层(水平定义) 85

    6.6 验收测试和合规性 86

    6.7 服务目录 86

    6.8 完成拼图 87

    6.9 开发环境 88

    6.10 小结 88

    第7章 备份和恢复 89

    7.1 核心概念 90

    7.1.1 物理与逻辑 90

    7.1.2 在线与离线 90

    7.1.3 全量、增量和差量 90

    7.2 恢复的考量 91

    7.3 恢复场景 91

    7.3.1 计划内的恢复场景 92

    7.3.2 计划外的场景 93

    7.3.3 场景的范围 95

    7.3.4 不同场景的影响 95

    7.4 恢复策略分解 96

    7.4.1 策略第 1步:检测 96

    7.4.2 策略第 2步:分层存储 98

    7.4.3 策略第3步:多样的工具集 98

    7.4.4 策略第4步:测试 100

    7.5 既定恢复策略 100

    7.5.1 在线快速存储的全量备份和增量备份 100

    7.5.2 在线慢速存储的全量备份和增量备份 101

    7.5.3 离线存储 102

    7.5.4 对象存储 103

    7.6 小结 103

    第8章 发布管理 104

    8.1 培训与合作 104

    8.1.1 收集并分享相关资讯 105

    8.1.2 促进对话 105

    8.1.3 特定领域知识 105

    8.1.4 协作 108

    8.2 集成 108

    8.3 测试 111

    8.3.1 测试友好的开发实践 111

    8.3.2 变更签入后的测试 112

    8.3.3 完整的数据集测试 112

    8.3.4 下游测试 113

    8.3.5 操作测试 114

    8.4 部署 114

    8.4.1 迁移和版本 114

    8.4.2 影响分析 115

    8.4.3 变更模式 115

    8.4.4 手动或自动化 118

    8.5 小结 118

    第9章 安全 119

    9.1 安全的目标 119

    9.1.1 防止数据被窃 119

    9.1.2 防止故意破坏 120

    9.1.3 防止意外损坏 120

    9.1.4 保护数据免于泄露 120

    9.1.5 合规与审计标准 120

    9.2 数据库安全即功能 121

    9.2.1 培训与合作 121

    9.2.2 自助服务 122

    9.2.3 集成和测试 122

    9.2.4 操作可见性 123

    9.3 漏洞和漏洞利用 124

    9.3.1 STRIDE 125

    9.3.2 DREAD 125

    9.3.3 基本防御措施 126

    9.3.4 DoS攻击 127

    9.3.5 SQL注入 129

    9.3.6 网络和身份验证协议 131

    9.4 数据加密 131

    9.4.1 财务数据 132

    9.4.2 个人健康数据 132

    9.4.3 个人隐私数据 132

    9.4.4 军事数据或政府数据 132

    9.4.5 机密或敏感的业务数据 132

    9.4.6 传输中的数据 133

    9.4.7 数据库中的数据 136

    9.4.8 文件系统中的数据 138

    9.5 小结 139

    第 10章 数据存储、索引和复制 141

    10.1 数据的存储结构 141

    10.1.1 数据库行的存储 141

    10.1.2 SSTable和LSM树 144

    10.1.3 索引 146

    10.1.4 日志和数据库 147

    10.2 数据复制 148

    10.2.1 单leader复制 148

    10.2.2 多leader复制 158

    10.3 小结 163

    第 11章 数据存储领域指南 164

    11.1 数据存储的概念属性 164

    11.1.1 数据模型 165

    11.1.2 事务 167

    11.1.3 BASE 171

    11.2 数据存储的内部属性 172

    11.2.1 存储 172

    11.2.2 无处不在的CAP理论 173

    11.2.3 一致性与延时的权衡 174

    11.2.4 可用性 175

    11.3 小结 176

    第 12章 数据架构示例 177

    12.1 架构组件 177

    12.1.1 前端数据库 177

    12.1.2 数据访问层 178

    12.1.3 数据库代理 179

    12.1.4 事件与消息系统 180

    12.1.5 缓存和内存存储 182

    12.2 数据架构 184

    12.2.1 Lambda和Kappa 184

    12.2.2 事件溯源 186

    12.2.3 CQRS 186

    12.3 小结 187

    第 13章 数据库可靠性工程师行为指南 188

    13.1 数据库可靠性工程文化 188

    13.1.1 突破障碍 189

    13.1.2 数据驱动决策 192

    13.1.3 数据完整性和可恢复性 193

    13.2 小结 193

    关于作者 194

    封面介绍 194
  • 内容简介:
    数据是当今企业的宝贵资产,设计、构建并维护数据存储的重要性不言而喻,而技术的快速迭代给数据库可靠性带来了更多挑战,也向数据库管理员提出了更高要求。本书从可靠性这一视角就数据库的构建和运维展开细致讨论。全书内容分为两大部分:前一部分介绍运维基础知识,包括行为准则、服务等级管理、风险管理和运维可见性;后一部分深入研究数据本身,包括基础设施、备份和恢复、安全、存储和复制、架构等。
  • 作者简介:
    莱恩.坎贝尔(Laine Campbell)是Facebook生产工程总监,曾任Fastly生产工程高级总监,PalominoDB/Blackbird创始人、前CEO,为众多公司提供数据库需求咨询服务,在运行大型数据库和分布式系统方面有近20年经验。
    夏丽蒂.梅杰斯(Charity Majors)是Honeycomb公司联合创始人和CTO,曾任Facebook生产工程经理,是一位有15年以上经验的高级系统工程师。
  • 目录:
    序 xii

    前言 xiii

    第 1章 数据库可靠性工程介绍 1

    1.1 数据库可靠性工程师的指导原则 2

    1.1.1 保护数据 2

    1.1.2 大量自助服务 3

    1.1.3 消除琐事 3

    1.1.4 数据库并不特殊 4

    1.1.5 消除软件和运维之间的障碍 4

    1.2 运维核心概述 5

    1.3 需求层次 6

    1.3.1 生存和安全 . 6

    1.3.2 爱和归属感 7

    1.3.3 尊重 7

    1.3.4 自我实现 8

    1.4 小结 9

    第 2章 服务等级管理 10

    2.1 为何需要SLO 10

    2.2 服务等级指标 12

    2.2.1 延时 12

    2.2.2 可用性 12

    2.2.3 吞吐量 12

    2.2.4 持久性 13

    2.2.5 成本或效率 13

    2.3 定义服务目标 13

    2.3.1 延时指标 13

    2.3.2 可用性指标 16

    2.3.3 吞吐量指标 18

    2.4 SLO的监控和报告 19

    2.4.1 可用性监控 20

    2.4.2 延时监控 21

    2.4.3 吞吐量监控 22

    2.4.4 监控成本和效率 22

    2.5 小结 23

    第3章 风险管理 24

    3.1 风险考量因素 25

    3.1.1 未知因素和复杂性 25

    3.1.2 可用资源 25

    3.1.3 人为因素 25

    3.1.4 团队因素 26

    3.2 可以做什么 27

    3.3 不可以做什么 27

    3.4 工作流程:初始版本 28

    3.4.1 服务风险评估 29

    3.4.2 架构清单 30

    3.4.3 优先级 31

    3.4.4 风险控制和决策制定 34

    3.5 持续迭代 36

    3.6 小结 37

    第 4 章 操作可见性 38

    4.1 操作可见性的新规则 40

    4.1.1 把操作可见性视为商业智能系统 40

    4.1.2 分布式易失环境成为趋势 40

    4.1.3 高频存储关键度量值 42

    4.1.4 保持架构简洁 43

    4.2 操作可见性框架 44

    4.3 数据输入 45

    4.3.1 遥测/度量值 46

    4.3.2 事件 47

    4.3.3 日志 47

    4.4 数据输出 47

    4.5 监控的初始版本 48

    4.5.1 数据安全吗 49

    4.5.2 服务运行正常吗 50

    4.5.3 用户受影响了吗 51

    4.6 度量应用程序 51

    4.6.1 分布式追踪 52

    4.6.2 事件与日志 53

    4.7 度量服务器或实例 53

    4.8 度量数据存储 55

    4.9 数据存储连接层 56

    4.9.1 利用率 56

    4.9.2 饱和度 56

    4.9.3 错误 57

    4.10 数据库内部可见性 58

    4.10.1 吞吐量和延时度量值 58

    4.10.2 提交、重做和日志 58

    4.10.3 复制状态 59

    4.10.4 内存结构 60

    4.10.5 锁与并发 60

    4.11 数据库对象 62

    4.12 数据库查询 62

    4.13 数据库报警和事件 62

    4.14 小结 63

    第5章 基础设施工程 64

    5.1 主机 64

    5.1.1 物理服务器 64

    5.1.2 系统或内核的运维 65

    5.1.3 存储区域网络 72

    5.1.4 物理服务器的优点 73

    5.1.5 物理服务器的缺点 73

    5.2 虚拟化 73

    5.2.1 虚拟机管理程序 74

    5.2.2 并发 74

    5.2.3 存储 74

    5.2.4 用例 74

    5.3 容器 75

    5.4 DaaS 75

    5.4.1 DaaS面临的挑战 76

    5.4.2 数据库可靠性工程师与DaaS 76

    5.5 小结 77

    第6章 基础设施管理 78

    6.1 版本控制 79

    6.2 配置定义 79

    6.3 基于配置的构建 81

    6.4 维护配置 82

    6.5 基础设施定义和编排 83

    6.5.1 单一基础设施定义 83

    6.5.2 垂直拆分 84

    6.5.3 分层(水平定义) 85

    6.6 验收测试和合规性 86

    6.7 服务目录 86

    6.8 完成拼图 87

    6.9 开发环境 88

    6.10 小结 88

    第7章 备份和恢复 89

    7.1 核心概念 90

    7.1.1 物理与逻辑 90

    7.1.2 在线与离线 90

    7.1.3 全量、增量和差量 90

    7.2 恢复的考量 91

    7.3 恢复场景 91

    7.3.1 计划内的恢复场景 92

    7.3.2 计划外的场景 93

    7.3.3 场景的范围 95

    7.3.4 不同场景的影响 95

    7.4 恢复策略分解 96

    7.4.1 策略第 1步:检测 96

    7.4.2 策略第 2步:分层存储 98

    7.4.3 策略第3步:多样的工具集 98

    7.4.4 策略第4步:测试 100

    7.5 既定恢复策略 100

    7.5.1 在线快速存储的全量备份和增量备份 100

    7.5.2 在线慢速存储的全量备份和增量备份 101

    7.5.3 离线存储 102

    7.5.4 对象存储 103

    7.6 小结 103

    第8章 发布管理 104

    8.1 培训与合作 104

    8.1.1 收集并分享相关资讯 105

    8.1.2 促进对话 105

    8.1.3 特定领域知识 105

    8.1.4 协作 108

    8.2 集成 108

    8.3 测试 111

    8.3.1 测试友好的开发实践 111

    8.3.2 变更签入后的测试 112

    8.3.3 完整的数据集测试 112

    8.3.4 下游测试 113

    8.3.5 操作测试 114

    8.4 部署 114

    8.4.1 迁移和版本 114

    8.4.2 影响分析 115

    8.4.3 变更模式 115

    8.4.4 手动或自动化 118

    8.5 小结 118

    第9章 安全 119

    9.1 安全的目标 119

    9.1.1 防止数据被窃 119

    9.1.2 防止故意破坏 120

    9.1.3 防止意外损坏 120

    9.1.4 保护数据免于泄露 120

    9.1.5 合规与审计标准 120

    9.2 数据库安全即功能 121

    9.2.1 培训与合作 121

    9.2.2 自助服务 122

    9.2.3 集成和测试 122

    9.2.4 操作可见性 123

    9.3 漏洞和漏洞利用 124

    9.3.1 STRIDE 125

    9.3.2 DREAD 125

    9.3.3 基本防御措施 126

    9.3.4 DoS攻击 127

    9.3.5 SQL注入 129

    9.3.6 网络和身份验证协议 131

    9.4 数据加密 131

    9.4.1 财务数据 132

    9.4.2 个人健康数据 132

    9.4.3 个人隐私数据 132

    9.4.4 军事数据或政府数据 132

    9.4.5 机密或敏感的业务数据 132

    9.4.6 传输中的数据 133

    9.4.7 数据库中的数据 136

    9.4.8 文件系统中的数据 138

    9.5 小结 139

    第 10章 数据存储、索引和复制 141

    10.1 数据的存储结构 141

    10.1.1 数据库行的存储 141

    10.1.2 SSTable和LSM树 144

    10.1.3 索引 146

    10.1.4 日志和数据库 147

    10.2 数据复制 148

    10.2.1 单leader复制 148

    10.2.2 多leader复制 158

    10.3 小结 163

    第 11章 数据存储领域指南 164

    11.1 数据存储的概念属性 164

    11.1.1 数据模型 165

    11.1.2 事务 167

    11.1.3 BASE 171

    11.2 数据存储的内部属性 172

    11.2.1 存储 172

    11.2.2 无处不在的CAP理论 173

    11.2.3 一致性与延时的权衡 174

    11.2.4 可用性 175

    11.3 小结 176

    第 12章 数据架构示例 177

    12.1 架构组件 177

    12.1.1 前端数据库 177

    12.1.2 数据访问层 178

    12.1.3 数据库代理 179

    12.1.4 事件与消息系统 180

    12.1.5 缓存和内存存储 182

    12.2 数据架构 184

    12.2.1 Lambda和Kappa 184

    12.2.2 事件溯源 186

    12.2.3 CQRS 186

    12.3 小结 187

    第 13章 数据库可靠性工程师行为指南 188

    13.1 数据库可靠性工程文化 188

    13.1.1 突破障碍 189

    13.1.2 数据驱动决策 192

    13.1.3 数据完整性和可恢复性 193

    13.2 小结 193

    关于作者 194

    封面介绍 194
查看详情
12
相关图书 / 更多
数据库可靠性工程数据库系统设计与运维指南
数据科学
朝乐门
数据库可靠性工程数据库系统设计与运维指南
数据采集与处理(高等职业教育人工智能与大数据专业群人才培养系列教材)
刘珍 编者;章红燕;责编:李静
数据库可靠性工程数据库系统设计与运维指南
数据采集与预处理(微课版)
安俊秀徐传运戴宇睿
数据库可靠性工程数据库系统设计与运维指南
数据结构与算法设计(第二版)
张小艳
数据库可靠性工程数据库系统设计与运维指南
数据要素交易的法律制度构造
郭如愿
数据库可靠性工程数据库系统设计与运维指南
数据库简史
盖国强
数据库可靠性工程数据库系统设计与运维指南
数据分析基础(高等职业教育人工智能与大数据专业群人才培养系列教材)
芦娅云 编者;李新萍;责编:李静
数据库可靠性工程数据库系统设计与运维指南
数据结构与算法 (2024年版) 全国高等教育自学考试指导委员会
高等教育自学试指导委员会
数据库可靠性工程数据库系统设计与运维指南
数据结构简明教程(第3版·微课视频版)
李春葆;蒋林
数据库可靠性工程数据库系统设计与运维指南
数据可视化/数据科学与大数据管理丛书
蒋国银雷俊丽冯小东
数据库可靠性工程数据库系统设计与运维指南
数据分析与建模方法
作者
数据库可靠性工程数据库系统设计与运维指南
数据库技术及应用(人工智能与大数据专业群人才培养系列教材)
陈翠松 编者;王莹莹;赵静;责编:李静