《深入Oracle》之DBA日常工作和职责---[1](一)

2014-11-24 14:32:00 · 作者: · 浏览: 2
《深入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';