第1个回答 2011-09-21
DBA, 通俗点说就是数据库管理员, 所以, 数据库的知识肯定是必不可少的:
对数据库的操作而言, 无外乎SQL语言, 因此, SQL语言是基础中的基础
DBA一方面要根据需求在数据库中实现, 另一方面要指导非数据库专业人士在数据库中完成他们想实现的东西, 如果实现不了, 或者非专业人士能实现但你不能实现, 那可是丢人到家.
所以, 对于SQL语言来说, DDL和DML都要掌握的, 而且不能仅限于一般的掌握程度, 不能说公司的业务不需要临时表, 你就连临时表怎么用, 有几种, 有什么区别都搞不懂.
能实现需求, 只能说明你是对数据库有些了解了, 对于同一种需求, 你能列出多种方法, 并能评判其中的优劣(不是根据行规或者大家的习惯), 这样才有些DBA的架势. 这就需要你了解数据库架构方面的知识(架子搭不好, 房子再漂亮也没有用), 知道SQL的一些底层知识, 比较, 大家都知道索引对提高查询性能十分重要, 但过多的索引也会对数据处理造成负担, 如果你不了解索引的一些原理及sql使用索引的原理, 你如何能合理地建立索引呢?
能够有效地实现需求了, 接下来就该维护了. 再好地数据库架构, 也要经常维护和保养, 比如, 原来很有效的索引, 因为索引碎片多了, 读取性能就差了, 因为业务的变化, 有的索引该删除了, 重要的数据, 是否在不该丢的时候绝对不会丢了, 敏感数据, 是否会被不该访问的人看到了. 这一系列的东西, 除了要调查/分析/并制订出一套完整的方案外, 还需要相关的知识来实施这套方案,
日常维护, 问题少不了会遇到, 这些问题除了SQL的问题外, 还有是跟系统或者网络相关的, 甚至是程
序中出现的问题需要调试, 所以操作系统+网络+程序设计语言, 多少得懂点
为了管好数据库, 特别是管理好多台服务器, 多少你还得写些工具来辅助你完成任务.
从上面来说, DBA需要的技能大致是:
@1. 数据库知识(熟练级别)
SQL语言(DML, DDL, 备份/恢复/管理), 数据库结构知识, 数据库运作原理
@2. 熟练至少一种数据库, 了解其他数据库(有一定应用能力)
很少有不与其他类型数据库交互的数据库, 如果你只熟练一种数据库, 当需要与其他数据库交互时, 你住往会无从下手
@3. 综合能力(有一定的应用能力)
程序设计能力, 操作系统, 网络, 安全本回答被提问者和网友采纳