DBA的职责
系统建设中:
- 数据库的设计
- 数据库的建模
- 数据安全(备份方案、容灾方案)
- 数据库性能(系统性能)
运维当中:
保证数据的安全(备份方案、容灾方案)
数据库的可用性
日常故障处理
性能分析处理
数据库升级(打补丁)、改造
DBA的日常工作
通用户数据库的监控:
- 表空间(磁盘、ASM)容量的监控
流行的做法:整个存储的机柜交给ASM管理,将表空间建立到ASM上,将数据文件设置为自动扩展,最后只需要监控ASM的使用率。
ASM扩展比较方便,而且扩展之后可以自动将数据按照新扩展的空间进行重新均衡分布。
- 告警日志文件(alert_sid.ora)
写一个自动分析alert文件的程序,做到alert错误实时告警
定制监控指标:
- 某个表空间的数据增长率
- 某个对象(表、索引)的数据增长率
- 阻塞(v$lock)
- CPU
- IO
- 内存(SGA + PGA)
- 会话数
常用SQL
查看执行计划:
- 方式1:使用
set autotrace
set autotrace;
select * from T;
- 方式2:使用
explain plan
explain plan for select * from T;
select * from T(dbms_xplan.display);
跟踪SQL语句:
- 方式1:使用trace文件
-- 方式1:对后续sql进行trace,输出到trace文件中
alter session set sql_trace=true;
- 方式2:使用10046跟踪事件
-- 使用10046跟踪事件,如果设置level为12,不仅可以输出绑定变量,还可以输出一些等待事件等信息
alter session set events '10046 trace name context forever ,level n';
-- 停止10046事件跟踪
alter session set events '10046 trace name context off';