ITPub博客

首页 > 数据库 > Oracle > oracle DBA 日常工作职责

oracle DBA 日常工作职责

Oracle 作者:tianya_2011 时间:2013-04-11 10:12:07 0 删除 编辑
 ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控:
 
     一,每天对ORACLE数据库的运行状态,日志文件,备份情况,数据库的磁盘空间使用情况,系统资源的使用情况进行检查,发现并解决问题。
 
    (1).确认所有的INSTANCE状态正常,登陆到所有数据库或例程,检测ORACLE后台进程: $ps –ef|grep ora_
 
    (2). 检查文件系统的使用(剩余空间)。如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。 清理空间时请务必小心! $df –k  或 bdf
 
    (3). 检查日志文件和trace文件记录alert和trace文件中的错误。
 
      连接到每个需管理的系统对每个数据库,cd 到bdump目录,通常是$ORACLE_BASE/admin/$ORACLE_SID/bdump
 
      使用 Unix tail 命令来查看alert_.log文件如果发现任何新的ORA- 错误,记录并解决.
 
    (4). 检查数据库当日备份的有效性。
 
      对RMAN备份方式: 检查第三方备份工具的备份日志以确定备份是否成功
 
      对EXPORT备份方式: 检查exp日志文件以确定备份是否成功
 
      对其他备份方式: 检查相应的日志文件
 
    (5). 检查数据文件的状态记录状态不是“online”的数据文件,并考虑是否需要做恢复。
 
    Select file_name ,status from dba_data_files where status=‘OFFLINE’;
    v$recover_file
 
    (6). 检查表空间的使用情况
 
      SELECT tablespace_name, max_m, count_blocks free_blk_cnt, sum_free_m,to_char(100*sum_free_m/sum_m, '99.99') || '%' AS pct_free
      FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name),
      ( SELECT tablespace_name AS fs_ts_name, max(bytes)/1024/1024 AS max_m, count(blocks) AS count_blocks, sum(bytes/1024/1024)        
                      AS sum_free_m FROM dba_free_space GROUP BY tablespace_name )
      WHERE tablespace_name = fs_ts_name
      order by pct_free;
 
      System:  字典空间,不能被损坏
 
      Sysaux:  10g高并发,或者系统繁忙时候,会造成system争用,可以将工具放在sysaux中减轻system的压力,sysaux不影响系统(影响性能)
 
      Example:
 
      Users: 10g 用户数据从system剥离出来
 
      Undo: dml,dql把数据快照到此,数据提交之后立即消失(用户回复)
 
      解决方法:设置预警、设置表空间为自动增长、添加数据文件
 
    (7). 监控数据库性能
 
      运行statspack生成系统报告 (oracle9i)
 
      1、使用statspack的要求   job_queue_processes >0 ;    timed_statistics  =true
 
      2、statspack存储统计信息,需要创建一个足够大的表空间。
 
             create tablespace perfstat  datafile '/u01/perfstat.dbf' size 500m  extent management local;
 
      3、执行安装脚本,安装statspack
 
      cd $ORACLE_HOME/rdmbs/admin/spcreate.sql   以sp开头的都是statspack的脚本
 
      4、收集统计信息:  exec statspack.snap ;  exec statspack.snap
 
      5、 生成statspack报告   @spreport.sql
                    
                      运行生成AWR报告(oracle10g及以上)
                      
                        sql> @$ORACLE_HOME/rdbms/admin/awrrpt.sql
                  
           
    (8). 检查数据库性能,记录数据库的cpu使用、IO、buffer命中率等等
 
      使用vmstat,iostat,sar,top等命令
 
      VMstat显示虚拟内存的使用状态,
 
      iostat显示cpu和设备的输入输出统计信息的状态,
 
      sar收集并显示系统中的动态活动信息,
 
      top动态显示linux中的系统任务。
 
 
 
  二,每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。
 
    (1). 监控数据库对象的空间扩展情况
 
      根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施
 
      -- 删除历史数据
 
      -- 扩表空间
 
      alter tablespace add datafile ‘’ size
 
      -- 调整数据对象的存储参数 或者放在合理存储参数的本地管理表空间上
 
      next extent
 
      pct_increase
 
    (2)系统健康检查
 
      检查以下内容:
 
      init.ora
 
      controlfile
 
      redo log file
 
      archiving
 
      sort area size
 
      tablespace(system,temporary,tablespace fragment)
 
      datafiles(autoextend,location)
 
      object(number of extent,next extent,index)
 
      rollback segment
 
      logging &tracing(alert.log,max_dump_file_size,sqlnet)
 
    (3)检查无效的数据库对象
 
      SELECT owner, object_name, object_type FROM dba_objects WHERE status='INVALID'
 
    (4)检查不起作用的约束
 
      SELECT   owner, constraint_name, table_name, constraint_type, status FROM     dba_constraints WHERE    status = 'DISABLED' AND constraint_type = 'P'
 
    (5)检查无效的trigger
 
      SELECT  owner, trigger_name, table_name, status  FROM   dba_triggers WHERE  status = 'DISABLED'
 
 
 
 
 
    三, 每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查。
 
      (1)如果使用CBO(在10g中这部分工作被简化了)
 
        analyze Tables/Indexes/Cluster
 
        analyze table estimate statistics sample 40 percent;
 
      (2). 检查表空间碎片
 
        根据本月每周的检查分析数据库碎片情况,找到相应的解决方法。(SQL)
 
      (3). 寻找数据库性能调整的机会
 
        比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整
 
      (4). 数据库性能调整
 
        如有必要,进行性能调整
 
      (5). 提出下一步空间管理计划
 
        根据每周的监控,提出空间管理的改进方法
 
 
 
    四,其他工作:
 
  1、做好备份!!!
 
  2、找环境做灾难测试
 
  3、应对领导、用户等各个方面的需求变更
 
  4、根据新的需求设计新的数据库架构方案
 
  5、为其他部门提供业务或者脚本支持
 
  6、考虑存储的使用
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25373498/viewspace-758221/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-04-11

  • 博文量
    85
  • 访问量
    631249