DBA该做什么与不该做什么

 本文原创  作者:老老仙   时间:2008-10-28 23:46
也许你看了我这个标题会感到一丝迷惑,DBA该做什么与不该做什么?
是啊,我要说 是,请不要认为你做好了DBA该做的事情就有理由去躲避不该做的工作。
举个例子比如主要学习基于LINUX的新型脚本语言,目的是可以以简洁的编写SHELL手法来应对一切DB不可预见的需求。我认为做好DBA还需要掌握很多很多相关技能,以下是我个人罗列的基本工作职责与内容。
一:系统安装与升级

与开发人员协作安装最佳开发的数据版本,搭建合适的环境等,在需要的时候,进行系统更新。升级RDBMS软件并且在必要时 使用补丁。必要时升级或者迁移数据库实例/通过数据库相关动作来支持应用程序开发人员

二:性能监控

把监视数据库实例当作每日必做工作以保证其可用性。解决不可用的问题。
收集系统统计和性能信息以便定向和配置分析。
配置和调整数据库实例以便在应用程序特定要求下达到最佳性能。

三:优化

执行存储和物理设计。均衡设计问题以完成性能优化,比如该做的有 负载均衡,集群系统,缓存系统的建立,维护,升级.
建议开发人员修改影响性能程序
表结构,引擎定期检测跟踪,生成报告,并尽力优化或必要时候进行重构。

四:安全应对一切灾难冲击(备份/恢复)

分析和管理数据库安全性。控制和监视用户对数据库的访问。必要时审计数据库的使用
监视备份程序。必要时提供恢复。测试备份与恢复程序。
定期执行数据库和事务日志备份以使数据丢失减到最低程度。
同时备份系统和用户数据库
检查剩余表空间,以备超出限制问题产生。


五: DBA协作开发(包含数据结构,合理建表,引擎优化)
数据表结构与引擎选择,直接影响到开发人员的程序速率统计,以及整个系统的运行。
DBA以自身+开发 的不同角度去看待问题

六:定期检测数据库运行状况(并生成报告)

线程锁表情况,负载情况,数据系统稳定情况,安全情况等等,并且生成报告。
为有效的,定期的维护数据库创建任何必要的脚本
检查数据库性能,记录数据库的cpu使用、IO、buffer命中率等等  
使用vmstat,iostat,glance,top等命令

七:执行与验证:

只是这样做。但是,为后代的缘故,记录你的调查结果,确保它们符合你的测试结果,然后安心入睡

八:错误预案(容错方案,自动容错能力)

能够考虑到如何把性能提高到最佳状态,但是同样应该了解和发掘错误的产品,以及系统不可抗拒的灾难快速恢复,比如火灾,断网断电等等,并且提前建立好容灾预案。
不断尝试与研究错误的发生于发生概率,从而做到应对一切灾难,从容应对的素质。
必要时使用C/C++编写容错程序或使用一些成熟的SOFT。

九: 构建稳定系统

对应新项目的数据层面进行尽量优化,同时从不同点出发,进行多次压力测试,
从而生成总结报告,最后评估结果,上线使用。
对于以往系统,需要做到定期维护优化处理。
定期检测数据运行情况,使用空间情况,对于数据增长情况的掌握,对数据库做健康检查
检查数据表空间碎片,寻找优化性能调整的计划。
检查文件系统空间使用情况,做到心中有数。
每日检查日志,检查系统备份情况。
十: 不断提升自身(应该掌握日常工作以外的技能)

自身不断提高,才能应对解决一切问题的能力的一个提升。
跟随数据库趋向和技术。当可应用时使用新技术。安装,测试和评估数据系统新的相关产品
----------------------------------------------------------------------------------------------

以上是个人总结,也是我能想到的,不免有所局限于缺陷,望大家指教,谢谢。

你可能感兴趣的:(DBA该做什么与不该做什么)