ORACLE DBA 职责, 基本相当于日常工作.
0. 数据库设计
1. 模式对象的创建与管理(table, index 等等)
2. 事物管理, 例如并发等
3. SQL 调优 只是针对SQL的 troubleshooting
4. 用户管理, & 权限管理
5. 实时运行监控 (借助 toad, statspack)
6. 数据库问题诊断 trouble shooting (可能也需要确认)
-----------------------------------------------------------
7. 建立, 升级 oracle -基本完成-
8. 备份, 恢复 (忽略)
9. instance 调优 (忽略)
10. 网络设置 -完成-
11. 安全管理 & 资源管理 (忽略)
其中, 上半部分是个人觉的自己应该掌握的, 下边的先忽略.
另外, 要精通 SQL, PL/SQL.
开发与监控的步骤
part A (创建 & 设计)
1. 数据库建立, 网络配置 (ok)
2. 用户建立(dba用户, 开发用户) 相关权限
3. 数据库设计, 模式创建
part B (管理 & 监视)
1. 模式管理
2. 事务管理, 并发控制
3. 实时运行监控
4. SQL 调优
5. 数据库问题诊断 (可能不用)
网络上转载的 DBA 职责
首先 要多做 实验
入门: 理解 oracle 结构, 并了解 oracle 组成(database + instance)的部分. 然后在大脑中形成框架
oracle 技能:
- windows/ linux / unix 平台下的安装, 卸载
- 冷备份与冷备份还原
- 逻辑备份与还原
- RMAN 备份与还原
- 数据搬迁: 可用逻辑备份或 RMAN 来做
- 添加表空间
- 高可用之 Data Guard 安装与维护
- 高可用之 RAC 安装于维护
- 数据库性能诊断与调优
dba 职责 (盖)
1.实时监控数据库告警日志(alert_sid.log)
这是必须进行的工作,并且应该根据不同的严重级别,发送不同级别的告警,及时了解数据库的变化与告警。
2.实时监控数据库的重要统计信息
实施监控对于数据库运行至关重要、能够表征数据库重要变化的统计信息,并且据此发送报警信息。那么应当监控哪些统计信息呢?大家可以思考一下,对于单机、RAC环境各不相同
3.部署自动的Statspack/AWR报告生成机制
每天检查前日的AWR报告,熟悉数据库的运行状况,做到对于数据库了如指掌
4.每天至少优化和熟悉一个Top SQL
根据AWR或Statspack报告,每天至少了解或熟悉一个Top SQL,能优化的要提出优化和调整建议
5.部署完善的监控和数据采样系统
DBA应该对数据库部署完善的监控系统,并对重要信息进行采样,能够实时或定期生成数据库重要指标的曲线图,展现数据库的运行趋势.
6.全面深入的了解应用架构
不了解应用的DBA是没有前途的DBA,对应用了解不深入的DBA算不上Expert,所以一定要深入了解应用。
7.撰写系统架构、现状、调整备忘录
根据对数据库的研究和了解,不断记录数据库的状况,撰写数据库架构、现状及调整备忘录,不放过任何可能的优化与改进的机会。
现在的 dba 提供了很多可视化的方便的工具, 对于类似搜集信息, 自动优化都有好处, 但是, 实际骨子里的东西, 不能浮在上面, 所以, 现在的重点不是放在"背", 而是, "理解 + 深入 + 实验实现".
所以, 尽量少用图形化的工具, 哪些只是工具, 多用 sqlplus.