
银行传统上使用的Oracle、Db2等商业数据库,都属于集中式架构。集中式数据库安装在单台服务器上,供本地用户和远程用户访问。

和传统集中式数据库的区别
与集中式数据库相比,分布式数据库有以下区别。
分布式数据库特点
分布式架构的局限性
分布式数据库带来了数据去中心化、负载分摊的优势,同时也带来了某些局限性。不单需要从架构上解决,还需要通过应用和规范来解决。
(1)分布式架构带来的复杂性,比集中式数据库运维难度大。
解决方案:通过平台化运维的新思路,统一上报告警及统计信息、统一日志中心、自动化监控、自动化运维、自动化巡检等。
(2)X86服务器可靠性低。
解决方案:服务器和数据都进行冗余配置,当出现节点故障时,通过主备切换保证服务的持续可用性。
(3)应用设计复杂度高。
解决方案:设计层面需合理设置分发键、增加冗余字段、减少多表关联、尽可能减少跨节点交互。
(4)分布式事务一致性维护成本高。
解决方案:分布式依赖网络,网络问题会导致事务一致性提交时间变长,因此应用编写的SQL语句应尽可能带分发键,减少跨节点事务数量。
分布式数据库设计与运维需要注意的点
从集中式数据库转型到分布式数据库后,需要从以下几方面关注设计开发和运维方面带来的新问题。
1
●
设计开发方面
设计开发方面主要涉及SQL兼容性问题、性能问题、异地一致性问题等。
(1)SQL兼容性问题。
GoldenDB完全兼容MySQL语法。但部分语句在分布式环境下执行代价过大,通过产品迭代,完善执行效率、逐步放开代价过大的SQL语句功能。
(2)性能问题。
由于数据切分到多个数据节点,涉及网络通信的交互次数和交换的数据量较多时,存在SQL语句性能慢、锁冲突、多分片访问不均匀问题,需要采取针对性的优化方案。
(3)异地数据一致性。
由于网络时延、网络带宽等问题,异地数据可能存在一致性问题。异地对外提供服务前,分布式数据库会进行业务数据一致性对齐,自动恢复到最新的一致性时间点。
2
●
运维方面
运维方面主要涉及用户安全问题、数据安全问题、扩展性问题等,
(1)用户安全。
分布式数据库中涉及多种用户,包括Linux操作系统用户、数据库用户,对这些用户如何进行管理是个难题。需要按照相关规范控制用户权限:。
(2)数据安全。
数据的安全问题是重中之重,从设计、部署到日常运维均需要保障。
(3)扩展性。
扩展性包括纵向扩展和横向扩展,纵向扩展增加硬件,横向扩展增加数据分片。横向扩容之后需要重分布,重分布之前规划磁盘空间,确保空间足够。
(4)运维中的性能问题。
通过监控及时发现性能问题并进行优化。
(5)监控问题。
分布式数据库组件众多,通过单一种类的监控定位问题比较困难,需要一套或者多套监控体系配合来精准定位到故障节点。
(6)巡检问题。
需要开发一键式巡检脚本,通过生成的巡检报告展示分布式数据库运行趋势,从而配合监控更早定位出问题。
(7)备份恢复问题。
对数据备份和一致性恢复要求高,目前使用NBU软件进行备份恢复。
(8)读写分离问题。
为了提升交易处理的吞吐量,将读操作分流到备机。
(9)自动化应急。
分布式数据库涉及的组件多,必须实现自动化应急,真正做到“预防为主,处置高效”。
参考图书

扫码优惠购书
《商业银行数据库管理实践》
ISBN:9787302587576
作者:王飞鹏 王宁 张聪 马学涛
定价:128元



精彩推荐
精通JPA与Hibernate │ JPA API的基本用法 精通JPA与Hibernate │ 对象-关系的映射概念 Java技术详解 │ Spring、JPA与Hibernate的整合 Java技术详解 │ 比较EntityManager接口与Session接口 数据分析 │ 电影营销能力模型构建 数据分析 │ 案例:2016年国产电影票房和网络评价 人工智能溯源|附音频 机器学习中的卷积神经网络 前端入门详细攻略|CSS3基础(附源码+视频) 前端入门详细攻略|编写一个简单的 HTML5(附源码+视频)






