商业银行数据库管理实践

商业银行数据库管理实践

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

引领商业银行数据库从集中式到分布式转型浪潮。

内容简介

本书主要面向企业(尤其是商业银行)的数据库架构师、数据库管理员、应用开发人员和数据库技术决策人员,也适合大学生学习数据库使用,共12章。

第1-3章讲解在金融科技大潮下,商业银行数据库架构转型的新思路,随后阐述集中式到分布式数据库实践,以及从小型机迁移到x86平台的实践;

第4-6章讲述商业银行Db2、MySQL、GoldenDB等数据库新系统上线以及数据库版本升级等重要内容;

第7-9章讲述Db2、MySQL、GoldenDB等数据库故障诊断理论及实战案例;

第10、11章分别讲述Db2和MySQL数据库的性能优化;

第12章主要讲述笔者对商业银行数据库管理方面的思考。

作者简介

编者王飞鹏,2005年毕业于北京邮电大学计算机学院,获硕士学位,随后加入IBM中国开发实验室,为国内银行、电信等重要客户提供数据库设计开发和运维服务。曾出版数据库专著4部,拥有软件专利3项,发表技术论文数十篇。2014年加入中信银行数据中心,目前带领技术团队承担全行的数据库运维管理工作。在中信银行工作期间,获得了中国人民大学工商管理硕士学位,荣获中信银行“凌云工程”二等功和人民银行科技发展奖。

章节目录

版权信息

内容简介

序一

序二

序三

序四

前言

第1章 商业银行数据库架构转型

1.1 商业银行信息科技发展环境

1.1.1 “十四五”规划

1.1.2 金融科技发展规划

1.1.3 银保监会监管新趋势

1.2 商业银行信息科技体系

1.2.1 组织架构

1.2.2 制度流程

1.2.3 IT基础设施

1.2.4 运维支撑

1.2.5 容灾体系

1.2.6 信息安全

1.3 基于ITIL规范的运维体系

1.3.1 事件处理

1.3.2 问题处理

1.3.3 变更实施

1.3.4 应急处置

1.3.5 安全配置基线

1.4 数据库架构转型

1.4.1 关系数据库起源

1.4.2 从商业数据库到开源数据库转型

1.4.3 从集中式到分布式数据库转型

1.4.4 国产数据库发展

1.4.5 数据库选型策略

1.5 转型对DBA团队的挑战

1.5.1 组织结构

1.5.2 文化建设

1.5.3 人才梯队建设

1.6 新技术运用和输出

1.6.1 NoSQL数据库

1.6.2 NewSQL数据库

1.6.3 数据库网格

1.6.4 新技术运用建议

1.6.5 新技术输出建议

小结

第2章 从集中式到分布式数据库

2.1 从某商业银行电商管家系统谈起

2.1.1 物理部署架构

2.1.2 应用服务器性能瓶颈及解决方案

2.2 从集中式到分布式数据库

2.2.1 硬件扩容方案——摩尔定律失效导致效果有限

2.2.2 Redis缓存方案——解决高并发性能问题

2.2.3 MySQL读写分离方案——解决高读写比性能问题

2.2.4 分库分表方案——解决性能和容量瓶颈问题

2.2.5 分布式数据库中间件方案——通过中间件透明访问数据库

2.2.6 分布式数据库方案——通过数据库解决所有问题

2.3 GoldenDB数据库的前世今生

2.3.1 GoldenDB数据库的研发和运用历程

2.3.2 GoldenDB数据库逻辑架构

2.3.3 GoldenDB数据库部署架构

2.3.4 GoldenDB数据库关键创新技术

2.3.5 GoldenDB数据库事务的ACID特性

2.4 GoldenDB数据库与CAP理论

2.4.1 什么是CAP理论

2.4.2 GoldenDB保证一致性

2.4.3 GoldenDB最大程度保证可用性

2.4.4 GoldenDB保证分区容错性

2.5 GoldenDB数据库应用开发和运维实践

2.5.1 分布式数据库带来的挑战

2.5.2 应用开发方面的应对措施

2.5.3 生产运维方面的应对措施

2.5.4 技术规范的制定和落实

小结

第3章 从小型机迁移到x86服务器

3.1 迁移项目概述

3.1.1 商业汇票系统下移背景与目标

3.1.2 迁移计划

3.1.3 数据迁移原理

3.1.4 迁移难点分析

3.2 小型机与x86服务器大比拼

3.2.1 计算资源对比分析

3.2.2 存储资源对比分析

3.2.3 可扩展性对比分析

3.2.4 可靠性对比分析

3.2.5 小型机与x86服务器计算资源实测对比分析

3.3 小型机下移x86服务器的资源转换方案

3.3.1 x86服务器资源转换原则

3.3.2 x86服务器资源转换方案

3.3.3 商业汇票系统资源转换结果

3.4 基础软件版本升级与架构优化

3.4.1 升级策略

3.4.2 不同版本差异性对比

3.4.3 软件架构优化

3.4.4 商业汇票系统软件升级和架构优化结果

3.5 小型机下移x86服务器系统测试方案

3.5.1 传统测试方法

3.5.2 高仿真测试方法

3.5.3 性能测试评估原则

3.5.4 测试方法选择策略

3.5.5 商业汇票系统测试方案选择结果

3.6 小型机下移x86服务器实施

3.6.1 Java程序迁移

3.6.2 C/C++程序迁移

3.6.3 数据库离线迁移

3.6.4 数据库平滑迁移

3.6.5 数据库迁移方案的选择策略

3.6.6 商业汇票系统数据库平滑迁移步骤

小结

第4章 集中式数据库上线部署

4.1 部署需求

4.1.1 逻辑架构

4.1.2 功能性需求

4.1.3 非功能性需求

4.1.4 容灾需求

4.1.5 某银行网络贷款系统部署需求结论

4.2 数据库部署环境规划

4.2.1 计算资源规划

4.2.2 存储资源规划

4.2.3 网络资源规划

4.2.4 数据库选型

4.2.5 灾备规划

4.2.6 某银行网络贷款系统规划结论

4.3 Db2数据库部署

4.3.1 高可用架构选择

4.3.2 软件安装

4.3.3 用户创建

4.3.4 实例创建

4.3.5 数据库创建

4.3.6 按照规范配置参数

4.3.7 灾备方案实施

4.3.8 某银行网络贷款系统数据库部署方案

4.4 MySQL数据库部署

4.4.1 高可用架构选择

4.4.2 软件安装

4.4.3 用户创建

4.4.4 数据库创建

4.4.5 按照规范配置参数

4.4.6 灾备搭建

4.5 监控、巡检和应急脚本部署

4.5.1 监控脚本部署

4.5.2 巡检脚本部署

4.5.3 应急脚本部署

4.6 集中备份方案的制订与实施

4.6.1 备份方案

4.6.2 备份策略

4.6.3 备份实施

4.6.4 某银行网络贷款系统备份方案

小结

第5章 分布式数据库上线部署

5.1 部署需求分析

5.1.1 某商业银行对私业务平台简介

5.1.2 功能性需求

5.1.3 非功能性需求

5.1.4 灾备需求

5.1.5 部署需求分析结论

5.2 基础软硬件环境规划

5.2.1 总体部署规划

5.2.2 计算资源规划

5.2.3 存储资源规划

5.2.4 网络资源规划

5.2.5 对私BP系统规划结论

5.3 GoldenDB分布式数据库部署

5.3.1 按照规范配置操作系统

5.3.2 安装管理节点双机软件

5.3.3 安装GoldenDB集群软件

5.3.4 创建GoldenDB集群

5.3.5 向集群中添加GTM节点

5.3.6 向集群中添加数据分片

5.3.7 向集群中添加DBProxy节点

5.3.8 创建DBProxy连接实例

5.3.9 按照规范配置数据库参数

5.3.10 数据迁移方案

5.4 监控、巡检和应急脚本部署

5.4.1 监控脚本部署

5.4.2 深度巡检工具部署

5.4.3 自动化应急脚本部署

5.5 集中备份方案的制订与实施

5.5.1 备份方案

5.5.2 备份策略

5.5.3 备份实施

小结

第6章 商业银行数据库升级

6.1 商业银行数据库升级概述

6.1.1 为什么要升级数据库

6.1.2 数据库升级策略

6.2 规划数据库升级

6.2.1 数据库升级前评估

6.2.2 规划数据库服务器升级

6.2.3 规划数据库客户端升级

6.2.4 规划数据库应用程序升级

6.3 测试方案的选择

6.3.1 传统测试方案

6.3.2 高仿真测试方案

6.3.3 机器人流程自动化测试方案

6.3.4 各种测试方案对比

6.4 制订数据库升级方案

6.4.1 数据库版本升级

6.4.2 数据库升级回退方案

6.4.3 方案制订方面的建议

6.5 数据库升级实战

6.5.1 理财平台系统数据库升级规划

6.5.2 使用原地升级方案升级理财平台数据库

6.5.3 使用原地回退方案对理财平台数据库逆向升级

6.5.4 使用备份恢复升级方案升级理财平台数据库

6.5.5 使用备份恢复回退方案对理财平台数据库逆向升级

小结

第7章 Db2常用工具和诊断案例

7.1 碎片整理工具

7.1.1 碎片整理工具reorg

7.1.2 案例分享

7.2 统计信息收集

7.2.1 统计信息收集runstats

7.2.2 案例分享

7.3 重新绑定

7.3.1 重新绑定——rebind

7.3.2 案例分享

7.4 常规数据移动工具

7.4.1 导出数据export

7.4.2 导入数据import

7.4.3 ingest——性能和可用性间平衡的使者

7.4.4 导出导入数据db2move

7.4.5 特殊对象的移动——序列和IDENTITY字段

7.4.6 案例分享——迁移带有IDENTITY字段的表

7.5 海量数据移动工具load

7.5.1 load——导入大数据的核武器

7.5.2 LOAD FROM CURSOR轻松移动数据

7.5.3 案例分享——load失败导致数据库目录文件系统满

7.5.4 案例分享——load性能问题诊断

7.6 移形换位工具

7.6.1 工具说明

7.6.2 案例分享

7.7 常用运维工具的调速

7.7.1 调速参数

7.7.2 案例分享

小结

第8章 MySQL数据库故障诊断

8.1 MySQL故障诊断方法

8.1.1 MySQL基础知识

8.1.2 MySQL故障诊断思路

8.2 MySQL常用诊断工具

8.2.1 操作系统诊断命令和工具

8.2.2 数据库诊断命令和工具

8.2.3 命令和工具使用建议

8.3 问题诊断实战案例集一

8.3.1 一次数据库异常宕机问题诊断

8.3.2 一次mysqldump备份异常问题诊断

8.3.3 一次binlog无法清理问题诊断

8.3.4 一次ibtmp1临时文件巨大问题诊断

8.3.5 一次数据库文件系统权限异常问题诊断

8.4 问题诊断实战案例集二

8.4.1 一次从库表记录不存在问题诊断

8.4.2 一次从库事务执行失败问题诊断

8.4.3 一次从库无法创建连接问题诊断

8.4.4 一次从库无法清理表记录问题诊断

8.4.5 一次主从复制延迟问题诊断

小结

第9章 分布式数据库故障诊断与性能优化

9.1 故障诊断与优化方法

9.1.1 GoldenDB分布式数据库特点

9.1.2 基于平台工具诊断和优化

9.1.3 自动化应急处置

9.2 平台工具介绍

9.2.1 交易监控平台

9.2.2 日志分析平台

9.2.3 普罗米修斯监控平台

9.2.4 dbtool工具

9.2.5 深度巡检工具

9.3 某银行核心系统数据倾斜问题诊断

9.3.1 故障概述

9.3.2 分析过程

9.3.3 结论和建议

9.4 某银行分布式数据库元数据库恢复案例

9.4.1 故障概述

9.4.2 分析过程

9.4.3 结论和建议

9.5 某银行理财平台CPU繁忙调优

9.5.1 故障概述

9.5.2 分析过程

9.5.3 结论和建议

9.6 某银行网银系统内存调优

9.6.1 故障概述

9.6.2 分析过程

9.6.3 结论和建议

9.7 某银行电商管家系统响应慢调优

9.7.1 故障概述

9.7.2 分析过程

9.7.3 结论和建议

9.8 分布式数据库切换与数据紧急恢复

9.8.1 故障切换与计划性切换

9.8.2 紧急数据恢复

9.9 故障诊断和性能优化建议

9.9.1 技术规范应前置到设计开发阶段

9.9.2 高效SQL语句开发建议

9.9.3 平台工具运用建议

9.9.4 应急处置建议

小结

第10章 Db2数据库性能优化

10.1 理解Db2优化器

10.1.1 SQL语句的编译过程

10.1.2 Db2优化器的核心作用

10.1.3 SQL语句优化过程

10.2 SQL优化关键:分析访问计划

10.2.1 解释工具

10.2.2 解读访问计划

10.2.3 表扫描与索引扫描

10.2.4 嵌套循环连接、归并连接和哈希连接

10.2.5 基数估计和统计信息

10.3 性能问题诊断过程

10.3.1 分析思路

10.3.2 捕获低效SQL语句

10.3.3 分析低效SQL语句

10.3.4 优化低效SQL语句

10.4 实战案例集锦

10.4.1 案例1:理财平台系统案例——高消耗应用态CPU问题

10.4.2 案例2:电子渠道系统案例——SQL语句运行时间超长问题

10.4.3 案例3:自动调度平台系统案例——存储过程运行时间超长问题

10.5 编写高效SQL语句

10.5.1 尽量避免排序

10.5.2 OR/IN或OR/UNION ALL等价转换

10.5.3 不要检索多余的数据

10.5.4 模糊查询优化

10.5.5 避免在连接谓词中使用复杂表达式

10.5.6 将复杂表达式放在常量上

10.5.7 使用Db2提供的日期类型

10.5.8 谨慎对待隐式类型转换

10.5.9 外连接的顺序

10.5.10 IN和EXISTS子查询

10.5.11 OFNR和FFNR子句

10.5.12 动态SQL VS.静态SQL

10.5.13 事务结束后及时COMMIT

小结

第11章 MySQL数据库性能优化

11.1 MySQL性能优化方法论

11.1.1 MySQL逻辑架构基础知识

11.1.2 MySQL优化方法简介

11.1.3 MySQL优化最佳实践

11.2 MySQL优化基础知识

11.2.1 聚集索引和二级索引

11.2.2 主键索引和唯一索引

11.2.3 多列索引

11.2.4 前缀索引

11.2.5 索引使用策略

11.2.6 索引条件下推

11.2.7 多范围读

11.2.8 特定场景优化策略

11.3 收集性能数据

11.3.1 收集操作系统性能数据

11.3.2 收集数据库性能数据

11.3.3 性能数据收集建议

11.4 捕获问题SQL语句

11.4.1 使用快照命令捕获问题SQL语句

11.4.2 通过pt-query-digest定位问题SQL语句

11.5 分析问题SQL语句执行计划

11.5.1 Explain输出字段说明

11.5.2 语句标识

11.5.3 查询类型(select_type)

11.5.4 访问类型(type)

11.5.5 索引长度(key_len)

11.5.6 额外信息(Extra)

11.5.7 Explain重点关注项

11.5.8 不同版本下Explain的注意事项

11.6 MySQL性能优化实战集锦

11.6.1 案例1:一次客服语音系统数据库服务器CPU负载高的优化案例

11.6.2 案例2:一次业务档案系统数据库缓慢批处理优化案例

11.6.3 案例3:一次员工渠道系统用户登录缓慢优化案例

11.7 MySQL性能优化最佳实践

11.7.1 硬件配置优化建议

11.7.2 操作系统配置优化建议

11.7.3 数据库配置优化建议

小结

第12章 商业银行数据库管理思考

12.1 商业银行数据库管理演化阶段

12.1.1 奴隶社会——手工运维阶段

12.1.2 封建社会——工具化阶段

12.1.3 资本主义社会——云化管理阶段

12.1.4 共产主义社会——智能化阶段

12.2 新系统上线方面的思考

12.2.1 流程的优化

12.2.2 安装自动化

12.2.3 高效服务化部署

12.3 数据库事件管理思考

12.3.1 事件管理优化

12.3.2 事件自动化统计与分析

12.4 问题处理方面的思考

12.4.1 深挖问题根本原因

12.4.2 问题总结与沉淀

12.5 数据库变更方面的思考

12.5.1 数据库变更的标准化

12.5.2 数据库变更的自动化

12.6 数据库应急方面的思考

12.6.1 数据库应急预案的制订

12.6.2 一键式数据库应急处置平台

12.6.3 数据库自愈方面的思考

12.7 数据库安全方面的思考

12.7.1 安全的流程化管控

12.7.2 打造坚不可摧的数据库安全体系

12.8 开发运维一体化(DevOps)的思考

12.8.1 什么是开发运维一体化

12.8.2 构建部落式团队

12.8.3 智能化运维(AIOps)的思考

12.8.4 数据库管理员(DBA)的转型

小结

参考文献

缩略语

后记

商业银行数据库管理实践是2021年由清华大学出版社出版,作者王飞鹏 编著。

得书感谢您对《商业银行数据库管理实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。