首页 热点资讯 义务教育 高等教育 出国留学 考研考公

如何在数据库运维过程中避免工作失误

发布网友 发布时间:2022-04-24 03:27

我来回答

2个回答

懂视网 时间:2022-04-30 16:37

     但是关键就是形成规模和效益,有时候一些“自动化”系统反而是降低效率的罪魁祸首,就如同有些流程其实并不能让事情“顺”起来一样。其实最关键的就在于分析目前最浪费人力,最机械的劳动是什么,然后集中解决No.1问题,每次如此,慢慢的就会形成效益了。个人虽然不反对做整体规划,但是也不建议什么都设计好了在开工,很多时候等都设计好了的时候需求已经变化了,互联网公司即时是内部项目页可以秉承快速试错的思路,慢慢的形成自己的体系。      而现在流行的DevOps,我个人认为这并不是一种职位,而是一种思路,可以应用到各个领域,和DBA并不冲突,而且我个人一向认为,运维的自动化系统一定要一线运维的人参与设计和开发,因为作为需求提出者和使用者最清楚想要解决什么样子的问题,而且,在系统出现问题和变化的时候,由于是直接利益关联方,不会出现“排期”“优先级”等问题,便于快速的对系统进行修正。        最后一个问题由于我个人离着CTO还有九九八十一难那么远,实在不知道怎么回答,但是从我个人同一些高level的技术人接触来说,并不都是技术上的“完人”,更多的感觉反而是比较容易沟通,视野很大,方向感很强,所以个人以为沟通能力,大局观,情商,坚韧的性格,这些软实例应该反而更重要一些。至于技术,用技术人常说的一句话来说就是“技术上的问题都不是问题”最后都能解决,因为大部分情况下,都没用到需要拼天赋,拼智商的情况,只要足够努力就可以了。   5、在云数据库运维中,往往是数据库研发团队主导了性能优化和特性开发,DBA的传统职能被削弱,DBA未来的方向该如何选择?如何体现专业深度?        现在的云越来越接地气,由于云平台的不断完善,确实DBA的一些日常工作已经被machina取代了,从某个角度来说,这确实意味着DBA的传统生存空间在缩小。但是,达尔文的物竞天择,适者生存的理论在任何时代任何场景下都是适用的,既然现在云是一个无法改变的大趋势,那么就只能顺势而为,任何妄图螳臂当车,改变历史车轮前进的行为都不会有一个好的结果。所以我们需要做的事情就是寻找新的生存立足点,重新定义DBA的解释。      对于DBA的未来方向,传统的运维DBA的地位肯定会被各种RDS弱化,所以发展方向无非有三种:  
  • 往前,贴近业务
  • 往后,贴近源码
  • 转身,变成云DBA
  •        分开说一下,转身比较好理解,RDS在万能也是需要有人开发和维护的,而这就是机会,只不过云DBA需要掌握更多的开发技巧以及面对非常多元化的问题(毕竟是面向整个社会提供服务了,不只是自家的业务),这种改变对于DBA来说相对少一些,也容易一些,但是这依托于公司,如果你不是云公司的DBA,那。。。我不是要忽悠你跳槽。      往后,贴近源码,大部分公司都是使用开源的数据库,开源软件的好处就是大家都可以用社区很活跃,缺点就是太过于重视通用性,并不见得契合各家自己的业务场景,这时候就需要系统开发类的DBA了,针对实际的场景和问题去对应的进行源码修改。只不过这种改变,对于DBA的技术能力,尤其是编程能力要求很高,且如果没有一个好的环境和导师,比较难入门,成功的几率相对小一些。      最后就是往前贴近业务,这也是我个人认为大部分DBA比较好的一个转变,目前据我个人了解大部分DBA往往都是在业务的后期才会接到需求,并且这些需求都是较为明确的,比如用什么软件,建几个表,每个表什么结构。而我个人认为目前数据库领域算是百花争鸣,这种各种的数据库层出不从,每种数据库都会有各自擅长的领域,并不是所有业务都放在MySQL就慢,也并不是所有业务都堆在Redis上就能快的,肯定有最适合业务场景的存储选型方案,而这就是DBA的机遇。相对于开发人员来说,我们DBA应该更加了解各个存储方案的优缺点和适用场景,更应该在项目之初就参与到项目的设计中,去掌控存储选型的发言权,从cache到db,给出较优的架构设计方案,甚至是库表结构的设计。      而向业务层靠近我认为也是体现DBA专业深度的一个方面,并不是一定要show一下数据库的源码或者path,个人认为只有设计一套存储方案,保障高可用,高性能,可扩展,低成本,业务意外的突增之后,我们还能将服务水平维持在一个较高的水位,且不用我们投入太多的精力,这才能体现我们的专业性。      最后,在说一下研发团队占主导地位这个事情,虽然现在社会已经不是像武侠小说中那样,谁拳头大就听谁的。但是在技术这个圈子里面,依然还是谁能解决问题,谁就会更加的有影响力,从这个角度说,研发团队占主导地位是一个无法规避的现象,毕竟很多问题只能通过path等方法解决,但是个人认为没有必要去想着解决这个问题,条条大路通罗马,如果是作为运维团队,应该和研发团队有机的组成一个整体,互相利用对方的优势解决问题,毕竟是焦不离孟孟不离焦的事情,缺了谁都玩不下去。

    高效运维--数据库坐而论道活动

    标签:

    热心网友 时间:2022-04-30 13:45

    linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 。。。。。

    工具如下:

    1、linux系统基础,这个不用说了,是基础中的基础,连这个都不会就别干了,参考书籍,可以看鸟哥linux基础篇,至少要掌握这书60%内容,没必须全部掌握,但基本命令总得会吧

    2、网络服务,服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行,LAMP和LNMP是必须要熟练,我所指的不是光光会搭建,而是要很熟悉里面的相当配置才行,因为公司最关键的绝对是WEB服务器,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,至少有些公司还会用tomcat,这个也最好学一下。其实网络服务方面不用太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。
    这面2点只是基础,也是必要条件,不能说是工具,下以才是真正的要掌握的工具。

    3、shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了,别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义,写系统脚本才是最有意义,而另一个脚本语言是可选的,一般是3P,即python, perl和php,php就不需要考虑了,除非你要做开发,我个人建议学python会比较好,难实现自动化运维,perl是文本处理很强大,反正这两个学一个就行了。

    4、sed和awk工具,必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。

    5、文本处理命令,sort , tr , cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。

    6、数据库,首选mysql,别问我为什么不学sqlserver和oracle,因为linux用得最多绝对是mysql,增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。

    7、防火墙,不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。

    8、监控工具,十分十分重要,我个人建议,最好学这3个,cacti,nagios,zibbix,企业用得最多应该是nagios和 zibbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。

    9、集群和热备,这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多,最好学是LVS,这是必学,最好也学学nginx集群,反向代理,还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,mysql热备也要学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。

    10、数据备份,不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, mp, rsync等,最好多了解一下。
    算了,说到这10点已经够你受了,应该可以入门了,因为有些技术会比较难学,例如apache和nginx中还有些很重要的技术,如系统调优和服务优化,还有程序优化,这些在没接触工作前很难学习到的,所以先把这10点学了吧,估计要学熟至少3个月不止,就脚本那部分已经让你很吃力了,我建议是先学熟shell,等工作后再学另一门脚本语言,这样会比较好。

    以上就是踏入linux运维工程师需要掌握的工具,其实还有很多工具要掌握的,但你在学习环境中是很难学到,最后我再提醒一下,这里所指的工具相当于技能,而不是像windows或ubuntu那些图形化工具,那些工具没用的,还有,学linux就别装图形界面,这样虚拟机就不用吃太多内存,而且绝对不建议在真机上装linux,根本达不到学习效果。

    更多相关内容可参考资料

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com