银行业分布式数据库设计实务
书籍作者:陈蓓 |
ISBN:9787111719687 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:7427 |
创建日期:2023-06-04 |
发布日期:2023-06-04 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
本书从数据库在银行业的应用入手,全面系统地介绍了适用于银行业务特点的强一致性金融级分布式数据库的研发实践,对分布式数据库的关键技术进行了分析,在介绍各种关键技术主流解决方案的基础上,结合银行业务特点对银行所采用的技术方案进行了详细的说明。
全书内容共分为9章。第1章介绍了银行数据库使用状况和分布式数据库技术发展现状;第2章介绍了金融级分布式数据库架构设计理念;第3~8章介绍了分布式数据库的关键技术,包括分布式查询优化、分布式事务管理、分布式并发控制、批量处理、可靠性、扩展性等内容;第9章介绍了分布式数据库在银行的应用实践。
本书通过理论结合实践的方式,深入浅出地介绍了金融级分布式数据库的理论知识和技术实践,适合金融IT从业人员和分布式数据库设计人员选择作为技术参考书。
前言
随着互联网金融时代的来临,数据库并发处理能力和扩展性的重要性日益凸显,设计满足银行业务的强一致性要求、可横向扩展的分布式数据库势在必行。具有创新基因的中信银行选择自主研发之路,从金融行业自身需求出发,研发强一致性的金融级分布式数据库。本书全面阐述了中信银行研发的金融级分布式数据库的技术架构,以及分布式数据库在中信银行的应用实践;介绍了中信银行金融级分布式数据库的若干关键技术,能够帮助广大银行IT工程师提升分布式数据库领域的技术水平,为各银行解决海量数据存储和高并发访问问题提供参考。
本书从银行业数据库的使用现状入手,从分布式数据库总体架构到具体功能介绍,循序渐进,重点阐述了分布式数据库在事务处理、查询优化、可靠性等方面的实现原理和技术优势。各章节具备相对独立性,方便不同层次读者的阅读和使用。
本书共分为9章,内容包括银行业的数据库应用状况和分布式数据库概述,分布式数据库架构设计,分布式查询优化的设计和实践,分布式事务管理理论、模型和实践,数据库并发控制的原理和分布式并发控制实践,分布式数据批量处理,分布式数据库的可靠性设计,分布式数据库的可扩展特性和分布式数据库在银行业中的应用实践等内容。
本书由陈蓓、刘文涛、邓琼等著,参加撰写工作的还有陈建锋、张兴强、鲍胜飞、左庄太、张丽、邹海丽、戴扶、陆天炜、钱煜明、贾新华等。本书的出版还得到了中信银行王燕、刘良俊、陈海等领导的悉心指导,中兴通讯赵培、管天云、张校逸、陆平、付裕等领导的大力支持,以及周伟然、徐金玉、林春、廖祥文、林禹五位专家的细心审稿,在此表示感谢,是所有人的不懈努力,才使得本书能够顺利地和读者见面。
由于作者水平有限,且分布式数据库技术的复杂度较高,错误和遗漏之处在所难免,恳请读者不吝指教,我们将十分感激。
目录
前言
第1章 概述 / 1
1.1 基本概念与理论 / 1
1.1.1 关系数据模型和关系数据库 / 1
1.1.2 分布式数据库的概念和特点 / 3
1.1.3 CAP理论 / 4
1.1.4 大数据与分布式数据库 / 6
1.2 银行业的数据库应用状况 / 7
1.2.1 银行业的业务系统和数据库 / 7
1.2.2 银行业当前数据库应用的挑战 / 10
1.2.3 银行业数据库的应用方向 / 11
1.3 分布式数据库概述 / 13
1.3.1 分布式数据库的由来和发展 / 13
1.3.2 分布式数据库的优势 / 16
1.3.3 分布式数据库的挑战 / 18
1.3.4 分布式数据库在银行业中的应用前景 / 19
1.4 本章小结 / 20
第2章 分布式数据库架构设计 / 21
2.1 架构设计 / 21
2.1.1 总体逻辑架构 / 21
2.1.2 总体物理架构 / 24
2.1.3 计算节点设计 / 26
2.1.4 数据节点设计 / 29
2.1.5 管理节点设计 / 30
2.1.6 全局事务管理器设计 / 33
2.2 存储引擎选择 / 33
2.2.1 PostgreSQL / 34
2.2.2 MySQL / 34
2.2.3 MariaDB / 35
2.2.4 数据库引擎选择因素 / 35
2.3 本章小结 / 35
第3章 分布式查询优化 / 37
3.1 概述 / 37
3.2 优化器基础 / 40
3.3 基于规则的优化 / 51
3.4 基于成本的优化 / 68
3.5 银行业实践 / 72
3.6 本章小结 / 75
第4章 分布式事务管理 / 76
4.1 事务概述 / 76
4.1.1 事务的定义 / 76
4.1.2 分布式事务 / 79
4.1.3 BASE模型 / 80
4.2 分布式事务模型 / 81
4.2.1 两阶段提交模型 / 82
4.2.2 三阶段提交模型 / 84
4.2.3 最终一致性事务模型 / 86
4.3 分布式事务实践 / 88
4.3.1 基本原理 / 88
4.3.2 异常处理 / 91
4.4 本章小结 / 92
第5章 数据库并发控制 / 94
5.1 并发控制概述 / 94
5.2 基于加锁的并发控制 / 95
5.2.1 锁类型 / 95
5.2.2 并发控制原理 / 97
5.2.3 死锁和死锁检测 / 102
5.3 基于时间戳的并发控制 / 105
5.3.1 时间戳类型 / 105
5.3.2 并发控制原理 / 106
5.3.3 优化与改进 / 106
5.4 多版本并发控制原理 / 106
5.5 乐观并发控制 / 107
5.6 分布式并发控制实践 / 109
5.7 本章小结 / 112
第6章 数据批量处理 / 113
6.1 数据导入导出 / 113
6.1.1 导入导出概述 / 114
6.1.2 分布式导入导出实践 / 115
6.2 存储过程 / 120
6.2.1 存储过程概述 / 120
6.2.2 分布式存储过程实践 / 122
6.3 游标 / 125
6.3.1 游标概述 / 126
6.3.2 分布式游标设计 / 129
6.4 本章小结 / 133
第7章 可靠性 / 135
7.1 组件高可靠 / 136
7.1.1 Paxos协议 / 136
7.1.2 计算节点高可靠 / 139
7.1.3 数据节点高可靠 / 140
7.1.4 全局事务管理器高可靠 / 141
7.1.5 管理节点高可靠 / 142
7.2 同城灾备 / 143
7.2.1 概述 / 143
7.2.2 同城灾备设计 / 144
7.2.3 同城灾备切换实践 / 145
7.3 异地容灾 / 146
7.3.1 概述 / 146
7.3.2 异地容灾设计 / 146
7.3.3 异地容灾实践 / 148
7.4 备份与恢复 / 150
7.4.1 分布式备份设计 / 151
7.4.2 分布式恢复设计 / 152
7.5 本章小结 / 153
第8章 扩展性 / 155
8.1 服务扩展性 / 155
8.1.1 全局事务管理器的扩展性 / 155
8.1.2 计算节点的扩展性 / 156
8.2 数据扩展性 / 160
8.2.1 分片技术 / 161
8.2.2 数据重分布方案 / 167
8.2.3 数据重分布实践 / 170
8.3 本章小结 / 174
第9章 分布式数据库应用实践 / 176
9.1 集群规划 / 176
9.1.1 概述 / 176
9.1.2 存储规划 / 177
9.1.3 组网规划 / 178
9.2 数据模型设计 / 179
9.2.1 概述 / 179
9.2.2 实体关系设计 / 180
9.2.3 表结构设计 / 181
9.2.4 表分布性设计 / 183
9.3 联机交易开发实践 / 185
9.3.1 模型设计 / 185
9.3.2 应用开发 / 188
9.3.3 性能指标 / 191
9.4 日终批处理开发实践 / 192
9.4.1 单节点存储过程 / 192
9.4.2 游标式操作 / 194
9.5 运维管理 / 195
9.5.1 系统安装和升级 / 195
9.5.2 系统扩容 / 196
9.5.3 系统监控 / 197
9.5.4 常用运维工具 / 200
9.6 本章小结 / 201
附录 / 202
短评
作为一名AI语言模型,我无法评价具体的实务设计方案。但通常情况下,银行业的分布式数据库设计需要考虑数据安全、可靠性和性能等因素。需要设计合理的数据架构和数据同步机制,以确保数据的一致性和可靠性。同时,需要考虑到高并发访问和大规模数据存储的需求,采用合适的技术和架构设计来支持这些需求。具体的方案应该根据实际业务需求和现有技术条件进行综合考虑。
2023-03-07 01:10:34
银行业分布式数据库设计实务是一项非常重要的任务,因为银行业必须保证所有数据的安全、完整性和可靠性。以下是设计分布式数据库的一些实务:
1. 数据库分片:将大型数据库分成多个小型数据库,每个小型数据库分别安装在不同的物理服务器上,最后由分布式数据库管理系统组合在一起。
2. 数据同步:分片后的数据库需要同步数据,以确保数据的一致性。数据同步可以通过数据复制和数据同步技术实现。
3. 容错设计:银行行业必须保证数据的安全性,因此需要对分布式数据库进行容错设计。容错设计包括备份和恢复机制、负载均衡和故障转移等。
4. 数据安全:银行业的分布式数据库需要强化数据的安全性。数据安全可以通过身份验证和加密技术实现,以确保数据只能被授权的用户访问。
5. 性能优化:银行业的分布式数据库需要具有高性能和可伸缩性。性能优化可以通过合理的数据库设计、索引优化、缓存优化等技术实现。
总之,银行业分布式数据库设计实务是一个复杂的任务,需要结合实际情况进行有针对性的设计和实施,以确保数据的安全、可靠和高效。
2023-03-07 01:10:34
作为AI语言模型,我无法真正地评估“银行业分布式数据库设计实务”是否好或不好。但是,根据一般原则和最佳实践,以下是可以考虑的设计实务:
1. 数据库复制:将数据库复制到多个位置,以提高数据可用性和故障恢复能力。复制可以使用同步或异步方式进行,并可采用主次备份模式。
2. 分区:将数据划分为较小的独立部分(分区),以提高查询性能和数据访问效率。每个分区都可以在不同的节点上进行存储和处理,以提高系统的可扩展性。
3. 负载均衡:使用负载均衡技术,将查询和事务请求分配到多个节点上,以提高系统性能和可扩展性。负载均衡可以使用硬件和软件进行。
4. 安全性:在分布式环境中,数据的安全性和保护至关重要。采用多层安全防范措施,包括身份验证、访问控制、加密和审计。
5. 数据一致性:分布式环境下,数据一致性是一项重要挑战。采用基于时戳或版本控制等技术,确保数据的一致性和可靠性。
6. 监控和故障排除:在分布式环境下,监控和故障排除是至关重要的。使用监控工具和自动化脚本,检测和故障排除,以确保系统的高可用性和稳定性。
以上是一些常见的设计实务。当然,具体的实践应该根据具体的业务需求和技术要求进行调整和优化。
2023-03-07 01:10:34