数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,他属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。
DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。
在国外,也有公司把DBA称作数据库工程师(Database Engineer),两者的工作内容基本相同,都是保证数据库服务7*24小时的稳定高效运转,但是需要区分一下DBA和数据库开发工程师(Database Developer):
数据库开发工程师的主要职责是设计和开发数据库管理系统和数据库应用软件系统,侧重于软件研发;
DBA的主要职责是运维和管理数据库管理系统,侧重于运维管理。
职责
一般监视
1. 监控数据库的警告日志。Alert.log,定期做备份删除。
2. Linstener.log的监控,/network/admin/linstener.ora。
3. 重做日志状态监视,留意视图v$log,v$logfile,该两个视图存储重做日志的信息。
4. 监控数据库的日常会话情况。
5. 碎片、剩余表空间监控,及时了解表空间的扩展情况、以及剩余空间分布情况,如果有连续的自由空间,手工合并。
6. 监控回滚段的使用情况。生产系统中,要做比较大的维护和数据库结构更改时,用rbs_big01来做。
7. 监控扩展段是否存在不满足扩展的表。
8. 监控临时表空间。
9. 监视对象的修改。定期列出所有变化的对象。%BB%B6 target="_new" class=innerlink>;文件,有初始化参数文件、用户后台文件、系统后台文件。
备份
对数据库的备份监控和管理数据库的备份至关重要,对数据库的备份策略要根据实际要求进行更改,数据的日常备份情况进行监控。由于我们使用了磁带库,所以要对legato备份软件进行监控,同时也要对rman备份数据库进行监控。
修改密码
规范数据库用户的管理定期对管理员等重要用户密码进行修改。对于每一个项目,应该建立一个用户。DBA应该和相应的项目管理人员或者是程序员沟通,确定怎样建立相应的数据库底层模型,最后由DBA统一管理,建立和维护。任何数据库对象的更改,应该由DBA根据需求来操作。
SQL语句
对SQL语句的书写规范的要求一个SQL语句,如果写得不理想,对数据库的影响是很大的。所以,每一个程序员或相应的工作人员在写相应的SQL语句时,应该严格按照《SQL书写规范》一文。最后要有DBA检查才可以正式运行。
深层次管理和研究
DBA深层次要求一个数据库能否健康有效的运行,仅靠这些日常的维护还是不够的,还应该致力于数据库的更深一层次的管理和研究:数据库本身的优化,开发上的性能优化;项目的合理化;安全化审计方面的工作;数据库的底层建模研究、规划设计;各种数据类型的处理;内部机制的研究;ora-600错误的研究、故障排除,等等很多值得探讨的问题。ORACLE数据库管理员应按如下方式对ORACLE数
据库系统做定期监控:
⑴. 每天对ORACLE数据库的运行状态,日志文件,备份情况,数据库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。
⑵. 每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。
⑶. 每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查。
日常管理
这篇文档有很详细的资料记录着对一个甚至更多的ORACLE数据库每天的,每月的,每年的运行的状态的结果及检查的结果,在文档的附录中你将会看到所有检查,修改的SQL 和PL/SQL 代码。