前言
一路走来,心怀感恩
西风烈,
长空雁叫霜晨月。
霜晨月,
马蹄声碎,
喇叭声咽。
雄关漫道真如铁,
而今迈步从头越。
从头越,
苍山如海,
残阳如血。
这首《忆秦娥·娄山关》是毛泽东主席的经典之作,写于红军取得娄山关战斗胜利之后。娄山关战斗是红军长征以来打的第一个大胜仗,这场胜利彻底粉碎了敌人围堵红军的企图,极大地鼓舞了全军的士气,抒写了人民的胜利信心。这首词是我最喜欢的,所以和广大读者首先通过这首词重温峥嵘岁月,感悟初心力量。
回想起10年前,我还在IBM中国实验室从事数据库研发工作,当时出于为广大读者献上数据库著作的情怀,出版了第一本数据库著作——《DB2设计、管理与性能优化艺术》(2019年,IBM公司将DB2改名为Db2,故本书正文中统一用Db2),接下来的3年间又陆续出版了《从Oracle到DB2开发——从容转身》《运筹帷幄DB2——从Oracle运维转型》《DB2设计、管理与性能优化艺术》,这就是“舞动DB2”系列,这个系列在中国内地和台湾省获得了很多读者的喜爱。
完成“舞动DB2”序列后,我于2014年4月加入中信银行,开始带领技术团队负责全行的数据库运维管理工作。在繁忙的日常工作之余,我和同事王宁、张聪、马学涛共同完成了《商业银行数据库管理实践》的写作。
谈起这本书的写作初衷,还有个故事。在2019年五一劳动节期间,我阅读了《大唐西域记》一书,整本书文笔简洁流畅,记述主次分明、详略得当,记录了玄奘法师西行的所见所闻。看完这本书后,我查阅相关资料得知玄奘法师西行五万余里,历时近19年,行经当时138个国家,鲁迅称赞他为“民族的脊梁”,梁启超称他为“千古一人”,我也被他九死一生舍身求法的精神所感动、所激励。回想起自己从2002年开始接触数据库到今年也有19年了,随着理论的积累和实践的深入,对商业银行如何做好数据库管理有了更加深入的理解。在玄奘精神的驱使下,我们从2019年5月1日开始动笔到2021年5月1日封笔,期间批阅9遍、增删10次,花费了两年时间最终完成本书的写作。
在向广大读者介绍本书之前,首先讲讲我的数据库研发和运维经历,期间也会带有我自己的学业和职业规划,希望能启发广大读者。
学业规划——进入信息技术的“黄埔军校”
人生是一趟心灵的伟大旅程,择高处立,向宽处行,那就要顺势而为。回想自己的成长经历,生长于一个传统文化发祥地——最早叫中国的地方,那里有巍巍的高山,滔滔的大河。唐朝宰相李吉甫曾经如此评价:“河中之地,左右王都;黄河北来,太华南依;总水陆之形势,壮关河之气色。”在这片具有浓厚历史文化底蕴的地方,我将“知识就是力量”“知识改变命运”当作最大的人生信念,这就需要走出去证明自己的价值。
出于成为一名电厂工人的目标,我在1997年成功考取了中国电力行业的最高学府——华北电力大学,我是多年以来,我所在家乡小镇上的第一个大学生。但入学以后,我曾经过相当长时间的迷茫,失去过奋斗的方向。2001年,在即将毕业的大四,我注意到电力行业早就进入了稳定期,这个时候如果继续坚持并不是最佳选择,于是我对自己将来要走的路进行了再次规划。
2001年,中国信息技术的发展正处于技术爆发的前夜,我预感到这个行业即将快速发展;但自身所掌握的计算机知识和技术还很有限,还需要进一步学习。经过思考后,我对自己的学业和职业进行了规划:首先考取计算机方向的研究生,毕业后进入大型研发企业进行锻炼以提升自己的能力。
有了规划后,我进行了不打折扣的执行,每天坚持学习12小时,过着苦行僧一般的生活,暑去寒来,最终在2002年考取了信息技术的“黄埔军校”——北京邮电大学计算机学院国家重点实验室。在国家重点实验室,我系统地学习了计算机经典理论,参与了各种项目,开阔了眼界,积累了软件开发经验,C/C++和Java语言的运用已非常娴熟。也是从那时起开始接触Oracle、MySQL等数据库。
从研究生开始,我正式建立了自己计算机科班出身的优势,至此完成了学业规划的第一步。一路走来,感谢师友,在北邮读书的时候幸运地遇到了孔祥泽、薛海强、赵文峰、李兴才等同学,感恩遇到的每个人和每件事。
必然选择——加入IBM软件开发实验室
毕业以后,我通过校园招聘于2005年进入了信息技术的摇篮——IBM中国开发实验室(IBM CDL),这些都是自己职业规划的必然选择。
那时候的IBM中国开发实验室高手云集,清一色的高学历,一个部门毕业于清华、北大的同事占到了三分之一,平时沟通邮件都是英文,和硅谷等海外实验室的电话会议也都是英文,这些对当时的我来说都是非常新奇的。
刚加入的时候,从事过较短时间的语音产品(IBM Via Voice)开发,这个技术现在看起来仍然高深,但在2005年的时候IBM就已经做出产品了。后来换到了信息管理产品研发部门,机缘巧合进入了Db2数据库研发和客户支持领域,从此确立了自己的专业方向。在实验室的那些年,自己如饥似渴地钻研,并不断向周围优秀的同事学习,建立了自己的数据库开发和支持所需知识体系。印象中最深的一次,在Db2里面独立设计开发了一个新功能,并发布给某日本客户使用,解决了困扰这个客户长期以来的难题。这个经历让我获得了成就感,那就是用技术和产品帮助客户解决问题,这就是技术人员最大的价值。
在IBM从事Db2数据库开发和客户支持期间,收获是沉甸甸的:深刻理解和学习了国际化大公司数据库研发体系;获得了坚实的数据库理论、开发和支持经验;作为第一作者,出版“舞动DB2”系列专著四部;发表技术专利,获得了对知识产权的保护意识;提升了英文水平,通过工作体验了西方企业的工作文化,等等。
在IBM期间,感谢干毅民、孙冰江兄长般的关怀和支持;感谢Claire洪给予我的指导,让我理解了IBM的全球研发和支持体系。再次感谢张建鑫、朱志辉、朱彬、彭晓强、李越、李玉明、王富国、杨小华、陈诗然、郭锐、李海峰、马镭、孙岳等实验室同事,我们有一段十分愉快的共事时光。
回想起来,IBM中国实验室的Db2开发人员很可能是中国最早从事数据库引擎研发的,这些人员目前已经在互联网以及各大商业银行承担数据库开发或者运维重任。
机缘巧合——加入中信银行数据中心
如果说考取北邮计算机学院和进入IBM中国实验室是自己有意识的规划,那么2014年加入中信银行却是机缘巧合,这个机缘还是在Db2数据库上。
刚加入中信银行时,我进入了Db2的海洋,生产环境所用数据库几乎全是Db2。我也从一名多年从事Db2开发的人员逐渐转型到了数据库运维上,后来成为团队负责人,开始带领团队承担全行数据库、中间件以及集中备份相关工作,所运维的数据库种类也从单纯的Db2扩展到了中信银行自研的GoldenDB分布式数据库。
谈起GoldenDB分布式数据库,其实中信银行早在2014年就正式启动了研发工作,当时可谓大势所趋,生逢其时。首先,安全可控的国家战略要求银行IT从传统封闭式架构向开源、开放、自主可控的架构转型;其次,高并发交易的出现要求银行IT架构支持纵向扩展;最后,银行经营环境的变化要求银行IT基础设施从昂贵的IOE设施向x86服务器、本地磁盘等低成本设施转型。
在中信银行工作时,我作为数据中心分布式数据库技术牵头人,在上线前使用高可用测试场景进行了充分测试,协助开发中心修订了数据库产品缺陷;作为牵头人设计了中信银行分布式数据库技术规范、应急手册、切换演练方案、自动化巡检方案等,这些技术规范发挥了“指南针”的作用,真正使得分布式数据库运维做到了有据可凭,从而和其他银行同业技术对标提供了基础。
我非常荣幸地深度参与了“凌云工程”,实现了中信银行总行核心系统从AS400下移到x86平台,已于2020年5月3日成功实施;深度参与“长征项目”,实现了网上银行系统从小型机Db2下移到x86平台GoldenDB分布式数据库,该项目已于2019年9月10日成功实施。
这些工作提升了我的技术深度和广度,也为本书的写作奠定了坚实基础。
感谢数据中心领导迟鲲对我工作的精心指导,以及班孝明、黄湘武、陈让宽等领导对我工作上的帮助;感谢王湛、刘小娜、李永忠、胡彦魁、刘明、刘文涛、卫东、邓琼等的关怀和鼓励,他们使我充满前进的力量;很高兴认识了周渤、周海鹏、王培发、刘鹏飞、马超、陈建锋、张兴强、张占越等同事,和他们的交流让我受益匪浅,真心感恩遇到的每个人和每件事。
学业再规划——进入管理学的“黄埔军校”
从2016年2月开始负责数据库团队开始,我主要从实践上不断摸索管理经验,从刚开始的彷徨到2018年逐渐进入角色,团队多次获得“优秀团队”称号。但是,管理实践的摸索到了一定阶段会遇到瓶颈,还需要对管理学进行系统化的学习。
经过认真准备,我在2018年考取了中国人民大学工商管理研究生,系统学习了管理学理论,并向多位教授学习,积极和同学交流,不断提升自己,最终于2020年12月20日获得管理学硕士学位。通过学习和总结,我现在有信心有能力带好团队并创造佳绩。
最难忘的是在论文开题阶段,我选择了《商业银行IT基础设施数字化转型研究》,这是一个很大的挑战。写作过程是充实并快乐的。我通过调研以及各种交流,最终完成了论文的写作并通过答辩,也让我对金融科技有了更深入的理解。
在中国人民大学,遇到了好老师、好同学,建立了管理学思维。我经常反思一个人的价值不是用名利来衡量的,而是取决于对社会的贡献。知识创造财富,更让社会进步。知识,既让我们拥有科技创新的能力,也让我们拥有文化传承的自信。
在中国人民大学读书期间,我想把我最真挚的感谢献给我的导师——王刊良教授,他把他的管理学理论以潜移默化的方式传授给我,让我从一名计算机科学毕业的学生开始踏入工商管理学的大门。在我写作遇到迷茫时,他给予我思路上的启发,使我茅塞顿开。他的博学和平易近人更是让我如沐春风,也是我做人和做学问的榜样。感谢我的同学蓝雪松、武晓燕和刘文龙,在平时的学习中他们的指点让我受益匪浅。
数据库学习之路——致商业银行数据库从业人员
目前,各大商业银行都在不断加大科技人员投入,对于当下银行业而言已经成为标配,金融科技也进一步推动了银行业务的进一步发展。对各大商业银行数据库从业人员来说,在传统数据库向分布式数据库转型阶段,应抓住机遇顺势而为,正所谓“站在台风口,猪都能飞上天”。
从数据库运维的发展趋势来看,将来必然是走向自动化和智能化,这对广大数据库从业者来说,机遇远大于挑战。在智能化时代,数据库从业者绝大部分工作是开发平台化工具,通过平台化工具将DBA从事务性工作中完全解脱出来,这样DBA能将部分精力放在数据库架构、数据模型设计、应用开发指导、运维规范、优化指南等更需要智慧的地方。
在这个时代,广大数据库从业人员需要身体力行去证明,人生最重要的不是事后的荣誉或财富,而是过程中获得的历练和成长。不在荣誉面前停留,不为失败辩解,一直在路上,风雨兼程。三分天注定七分靠打拼,爱拼才会赢。
只有数据库从业人员保持对学习、锻炼和工作的热情,心态才能永远年轻;只有拥有旺盛的精力和强大的内心,才能经得起世事的磨练。那些未能打败你的,都将使你更强大。哪有什么优秀,不过是更专注、更勤奋、更热爱。所谓的伟大,不过是简单、正直、目标远大和坚忍不拔。
我们很幸运赶上金融科技时代发展的大潮,只有为社会、为他人创造价值,才能实现自身价值。带着梦想去奋斗,感恩时代,贡献社会!
本书内容
本书内容严谨精细、生动活泼,全书共12章。第1~3章提出在金融科技大潮下,商业银行数据库架构转型新思路,随后深入阐述从集中式到分布式数据库实践,以及从小型机迁移到x86平台实践;第4~6章讲述商业银行Db2、MySQL、GoldenDB等数据库新系统上线以及数据库版本升级等重要内容;第7~9章讲述Db2、MySQL、GoldenDB等数据库故障诊断理论,并分享实战案例;第10、11章分别讲述Db2和MySQL数据库性能优化;第12章分享笔者对商业银行数据库管理方面的思考,这是全书的总结部分,以启发读者管理好所在银行的生产数据库。
为了方便读者,在书中加入了“注意”“小技巧”和“比较”这样的提示性文字。其中,“注意”的内容是需要读者在工作中重点留意的;“小技巧”的内容是重点向读者分享的实战技巧;“比较”的内容是一些容易混淆的概念,是向读者解释和澄清的。
最后,在文中的一些脚本片段采用灰底形式,这样就非常明显地和正文区别开了,同时加黑处理了脚本中的一些重点内容以示强调。
本书读者
本书主要面向企业(尤其是商业银行)的数据库架构师、数据库管理员、应用开发人员和数据库技术决策人员,可为他们提供业内先进、富有技术深度和实践意义的重要技术参考。
致谢
首先感谢清华大学出版社在本书的出版过程中给予的大力支持和帮助!感谢中信银行数据库专家骆晓瑞,他审核了大部分章节并提出了很多宝贵建议;感谢IBM中国实验室资深工程师李越,他仔细审核了部分章节并给出了修订建议;感谢民生银行资深DBA朱彬,我和他在商业银行数据库运维实践上有充分的交流,让我获益良多;感谢阿里云数据库研发总监彭晓强,他在数据库研发上技术深厚,在和他的经常性探讨中颇受启迪;感谢蚂蚁集团OceanBase数据库专家李玉明,他在分布式数据库理论和实践方面具有很深的造诣,帮助我审核了分布式数据库相关章节。
王飞鹏
2021年7月18日
于北京