对于运维DBA来说,主要的职责为以下几点:
1) 监控:对数据库服务运行的状态进行实时的监控,包括数据库会话、数据库日志、数据文件碎片、表空间监控、用户访问监控等,
随时发现数据库服务的运行异常和资源消耗情况;输出重要的日常数据库服务运行报表以评估数据库服务整体运行状况,发现数据库隐患;
监控对于DBA来说是至关重要的,是DBA的第三只眼 睛,利于监控可以自动处理一些常规的故障,提前发现并解决潜在隐患,
监控对于运维是必备的技能,如果你不懂监控,那么你就不是一个称职的运维人员。
2)备份:制定和实施数据库备份计划,灾难出现时对数据库信息进行恢复,维护适当介质上的存档或者备份数据。
对数据库的备份策略要根据实际要求进行更改,数据的日常备份情况进行监控。备份大概分为两种:一种是定时、计划性的备份,
包含全备和增量备份,常用的工具一般为mysqldump以及xtrabackup为代表的第三方备份工具;一种是执行DML时更新和删除的备份,
这种备份一般有以下几种备份方式:一种为create tablexxx_mmddhhmm select的方式备份到表中,一种是mysqldump加上条件做备份,
还有一种是select into oufile等几种方式,防止执行错误时可以快速的恢复。在日常对数据库的操作中,特别作为一个DBA,
永远要给自己留一个后手,保证在需要进行数据恢复的时候可以随手拈来。
4)故障处理:对数据库服务出现的任何异常进行及时处理,尽可能避免问题的扩大化甚至中止服务。这之前DBA需要针对各类服务异常,
如机房/网络故障、程序bug等问题制定处理的预案,问题出现时可以自动或手动执行预案达到止损的目的。
在故障处理中,DBA的反应至关重要,可能在分分钟钟的时间内,小的故障引发大的故障,对业务的影响更大,
对于常见的故障,比如连接数突然增多、数据库服务器空间的清理、主从同步延迟、CPU使用过高等,可以和研发一起制定相应的预案,并且和监控结合,当达到一定的阀值,
使用相应的脚本自动处理,这样在一定程度上减少DBA的工作量、提高故障处理效率,更重要的是可以为DBA争取一定的时间,
防止故障升级对业务带来更大的影响。