《深入Oracle》之DBA日常工作和职责---[1]
《深入Oracle》之DBA日常工作和职责---[1]
以下总结是学完 炼数成金 对应的《深入Oracle》所写的总结
1、先看一下Oracle的学习路线:
2、学习基础:学习过Oracle的基本知识,对Oracle有大体的认识。
3、学习目的:
让已经学过Oracle基础的同学,对Oracle的机制有进一步的了解。
了解OracleDBA的工作和能力要求。
在技术上对Oracle有进一步的深入认识。
4、预期目标:
对Oracle的技术有较深入的了解
通努力达到中级Oracle DBA的水平
5、课程介绍:
第一课 DBA日常工作内容和职责
第二课 Oracle的内存结构与后台进程[Oracle实例的基本组成]
第三课 重做日志和日志挖掘 [Oracle重要的组成,记录了数据的改变,可以做日志挖掘]
第四课 回滚[非常重要,有关事务等,重要的方面]
第五课 Oracle数据结构[Oracle数据块构成]
第六课 ASM管理[解决了Oracle的很多问题,解决了表空间的存放等]
第七课 Oracle的备份恢复及数据迁移。
第八课 Rman备份,恢复与管理
第九课 闪回机制和用途
第十课 事务与数据一致性(一)[重要]
第十一课 事务与数据一致性(二)
第十二课 Oracle安全管理和审计(一)
第十三课 Oracle安全管理和审计(二)
第十四课 常用工具 sql*loader和数据泵
第十五课 Oracle字符集
第十六课 Data gaurd和流复制简介
6、Oracle DBA的职责
▶系统建设时期:
数据库的设计
数据库的建模
数据库的安全
-[备份方案、容灾方案]
数据库性能
▶运维时期:
保证数据的安全
-[备份方案、容灾方案]
数据库的可用性
日常故障的处理
性能分析处理
数据库的升级、改造
-[打补丁、升级、改造]
7、Oracle DBA的日常工作
▶通用数据库的监控
-表空间(磁盘、ASM)容量的监控
流行的做法,一整块存储[一个机柜,磁盘阵列]---ASM---表空间---数据文件自动扩展--->监控ASM的使用率[比较轻松、灵活、动态扩展空间]。
-告警日志文件(alert_sid.ora)
写一个自动分析文件的程序,做到alert错误实时告警。
▶定制监控指标
-某个表空间的数据增长率
-某个对象(表、索引)的数据增长率。
-阻塞(v$lock)
-CPU
-I/O
-内存(SGA+PGA)
-会话
8、养成良好的习惯
▶DBA应该多使用SQLPlus工具
-SQLPlus是Oracle最基本的配置,在大多数情况下都存在,DBA本身是意外情况解决者,应该熟练使用
-熟悉Oracle的内部视图[包括V$和DBA_开头的表和视图]
9、Oracle DBA常用的SQL语句
注意一下SQL需要以DBA的身份执行
▶表空间的大小 [sql] select tablespace_name,sum(user_bytes) from dba_data_files group by tablespace_name union select tablespace_name,sum(user_bytes) from dba_temp_files group by tablespace_name / [sql] select tablespace_name,sum(user_bytes) from dba_data_files group by tablespace_name union select tablespace_name,sum(user_bytes) from dba_temp_files group by tablespace_name / ▶数据对象的大小(数据对象占用的空间) [sql] select segment_name,segment_type,bytes from user_segments where segment_name in ('T','IDX_t') / [sql] select segment_name,segment_type,bytes from user_segments where segment_name in ('T','IDX_t') / ▶会话当前的SQL语句 [sql] select sid,status,sql_id from v$session where sid = 68 / [sql] select sid,status,sql_id from v$session where sid = 68 / ▶会话对应的进程号 [sql] select spid from v$process where addr = (select paddr from v$session where sid=68) / [sql] select spid from v$process where addr = (select paddr from v$session where sid=68) / ▶会话的阻塞 [sql] select sid,lmode,type,request,block from v$lock where type in ('TX','TM') order by 1,3 / [sql] select sid,lmode,type,request,block from v$lock where type in ('TX','TM') order by 1,3 / ▶SQL的执行计划 -set autotrace [sql] set autotrace trace exp; select * from dual; [sql] set autotrace trace exp; select * from dual; -explain plan [sql] explain plan for select * from dual; select * from table(dbms_xplan.display); [sql] explain plan for select * from dual; select * from table(dbms_xplan.display); ▶跟踪SQL语句 [sql] alter session set sql_trace=true; select * from dual; [sql] alter session set sql_trace=true; select * from dual; ▶另一种方式 [sql] alter session set events '10046 trace name context forever,level 12'; select * from dual; [sql] alter session set events '10046 trace name context forever,level 12'; select * from dual;