兼职数据库运维的工作内容

         作为linux运维工程师,难免与数据库打交道。小型的主流就是mysql了。虽然我们不是专业的DBA,但是基本的知识跟简单的操作应该了解的,而且还不能太浅。 以类似LAMP的网站环境为例,在数据库方面的一些操作流程大概为以下几点。

1.规划

     基本就是选择环境跟选择硬件。前端的webserver是什么,项目是否有大的广告投放,是否需要主从、读写分离,或者智能DNS的选择,机房的位置等等。

2.开发

     开发一般都是在一个跟线上环境一样的测试环境进行。缩短周期的话也可以在线上进行,但是要配合好DNS的解析。这样的好处是开发人员无需在对测试好的程序进行更改。具体开发的内容就不过多讨论了。

3.实施

     如果在测试环境基本正常,就需要部署到线上,然后对数据库进行相应的授权以及与webserver连通性的测试。为了开发人员日后的调试更新方便,需要在数据库对开发人员的数据库客户端进行授权,以及webserver的ftp权限的开通。

      最后就进入正常的工作状态了。正常状态下运维还是有很多工作要做

1. 备份/还原

      数据大家都知道是最重要的东西,如果丢失了就很难找回,会带来巨大的损失。所以对数据的备份是最重要的工作内容之一。像我们这样的小公司一般就采用两种,本地备份跟异地备份。本地备份很简单,就是通过crontab中跑的脚本将本地的数据库备份到指定位置,放置数据的损坏丢失。异地备份顾名思义就是定时的将数据内容备份带异地的存储服务器上,这样双层保险应该能保障数据的安全、

2. 监控

       监控是非常重要的,他是我们第一事件发现问题的关键。现在开源监控的软件有很多,合理的利用会对服务器的相关信息及时了解。针对于数据库方面,就是写端口,进程以及主从等等的监控。之前遇到的问题,因为小公司,没有专业的DBA或者数据库优化人员,所以有些时候因为开发人员的疏忽会导致数据库出现很多问题,锁表或语句没优化好经常出现。数据库一旦出问题,会到这所在的服务器负载增大,直接影响到web服务器无法正常工作,这对运维来说是非常严重的。所以监控是非常重要的。

3. 故障处理

      故障难免,及时的发现问题解决问题使业务正常运作是我们需要做的。以mysql为例,有个很好的命令就是show processlist,它可以看到那个数据库使用的资源过多,那条sql语句执行的异常,就知道那个网站出问题了。通过对日志的过滤排查,也能对解决问题有很大的帮助。