我的 ”三个一切“


    想写这篇文章很久了,一直没有时间动笔。时间一刻也不曾停留,回想自己,踏上南国的这片热土近十年了,竟然弹指一挥间。在这个没有文化底蕴而又多元文化的移民城市,深深感受到了那句至理名言,时间就是生命,效率就是金钱。同样,改革是深圳之魂,创新文化无处不在,也印证了那亘古不变的道理,唯一不变的就是变化。由特区到自由贸易区,30余年的时间走完了西方近百年的历程,可谓实时日新月异,与时俱进。想想自己 自己在数据库圈子里也摸爬打滚了好些年,认识了些大牛,也喜欢关公面前耍大刀,搬门弄斧,只是希望自己的只言片语能让大家有所收获,仅此而已。

    言归正题,这次想与大家分享的是DBA领域的一点小心得,如本文标题。

    一是备份重于一切。这是个老生长谈的话题,记得自己都救火多次了。如果你是一个DBA,出了故障无法恢复,“悟空,怎么能没有备份呢。没有备份这就是你的不对了,就算没有DataGuard,database mirror或replicate 之类的,总得有个物理备份吧,没有物理备份总得有逻辑备份吧。啊?这些都没有,那怎么能降妖呢,那就去赶紧回去菩提老祖那里闭关吧,省得被妖精炖汤喝了”。各位亲们,备份恢复基本功得扎实,搞清备份恢复的原理,至少的搞清热备,冷备,全备,增备,部分备份及其恢复,以及各自的优缺点,适用场景等等,这是DBA起码的一点要求,这样才能逢凶化吉,幸免于难。总有很多朋友问到这些原理性的东西,不过很抱歉,很多时候难以一一回复。建议大家多看官方文档,结合数据库体系结构,结合实践,举一反三,很多问题就无师自通了。

    二是架构决定一切。数据库的架构是涉及数据库性能至关重要的一环。高可用是我们见过和听过最多的同时满足RTO和RPO不可缺少的部分,达到5个9。如果要提高吞吐,实现负载均衡,自动故障转移,RAC ,sqlserver集群,Xtradb Cluster或gelare 都是不二之选。如果要提高性能,可以基于备从库备份,实现主备从库读写分离,以及分散I/O。当然解决性能问题远不止这些,诸如使用滑动窗口分区表,物化视图,创建高性能索引,使用memory引擎,memcached,启用in-memory特性,乃至到最初的业务逻辑设计,数据库设计。写到这里让我想起了体和用。什么是体,关系性数据库来源于关系代数,就是连接,投影,选择,就是集合,这些可以看做体。更进一步,所有关系型数据库需要解决的是数据的封装即存储;数据的一致性即事务;数据的读写即SQL优化器的模式;数据的完整性即备份恢复以及数据库的并发,这些是数据库的体。各大关系型数据库厂商用他们特有的方式解决了这些难题那就他们的用。对DBA而言,任一数据库体系结构(即原理)是体,基于其上去设计部署数据库是用。有体有用,体用一如。因此良好的架构设计是将数据库发挥到极致的关键。相对复杂的是mysql的架构,都是七拼八凑,诸如drbd+heartbeat,keepalived+mha,mmm,haproxy ,fabaric ,ndb,xtradb cluster ,galera cluster,还有N多叫不上名的第三方开源工具了。因此结合自身的业务,以及不同架构的优缺点,应合理地使用相应的架构。即结合自身业务将工具的优点发挥到极致来部署你的架构。

    三是责任心高于一切。最近的几起空难让人毛股悚然,不是因为飞行员缺乏合格的飞行技术,而是极度缺乏社会感与责任感。真希望他们在出事前好好领略中国传统文化的大爱无疆。记得之前有个同事说什么叫听天由命,那就是飞机升空的那一刻起。哈哈!对企业而言,没有一个老板愿意把他们企业的核心命脉,数据,交给一个缺乏责任心的人,这就好比定时炸弹,随时会有空难。因此练就良好的心里素质和高度的责任感给老板安心,给自己欢心。因为这里边蕴藏了无限的机会,而不仅是一个DBA需要具备的。任何一个岗位都离不开它,乐于奉献,敢于承担,止于至善,在平凡中见证伟大。尤其是这点,说易行难。做到并非易事。

    做好一件事容易,做好一个人难,难能可贵!唯愿各位朋友随处结祥云,功道自然成。
                                                                       2015.4.29晚于武深高铁

猜你喜欢

转载自blog.csdn.net/robinson_0612/article/details/45497905