Oracle数据库空间的管理与监控

Oracle数据库的故障分可预测和不可预测两种。可预测的故障指的是DBA凭着经验将问题扼杀在“摇篮”中,从而避免事态进一步恶化,这要求DBA有比较高的风险控制意识和故障处理经验。不可预测的故障指的是突发性的故障,如数据库性能的急剧恶化、硬件故障等。当发生此类故障时,DBA需要有较为稳定的心理素质和丰富的事后故障处理经验。DBA对潜在问题敏感程度的高低,很大程度上取决于故障处理经验。“初生牛犊不怕虎”、“经验越做越丰富,胆子越练越小”这两句话很大程度地反映了初级DBA和高级DBA两种截然不同的心态。所以,在到处充斥着Oracle理论的今天,运维经验会显得弥足珍贵。
本章很少涉及理论,侧重探讨数据库在日常运维过程中的注意事项。但“尺有所短,寸有所长”,相关的运维注意事项和知识点不可能面面俱到,读者如果有疑惑可以参考Oracle官方文档《Concepts》,其内容详实,浅显易懂,值得每位DBA仔细研读。很多DBA简单地认为只要将数据库存放在足够大小的存储上,就完全可以无后顾之忧了。因为这样一来,数据库就不会因为空间紧张而发生故障。事实上,随着业务量的不断加大,数据库的容量也会越来越大。因此,数据库容量的大小在某种程度上决定着数据库的性能,所以数据库的空间管理一直是数据库运维过程中最重要的一项工作。笔者一直认为,只要管理得当,空间方面的故障完全是可控、可防的。
数据库空间管理主要指的是DBA对ORACLE_HOME目录、表空间、数据文件、日志文件等数据库组件的管理。这几个组件相对独立,所以本章各小节之间的联系也不是非常紧密,读者可以有选择性地阅读自己感兴趣的小节。
严格来说,数据库是由数据文件、控制文件、日志文件等组成的。但在正常情况下,数据文件占用了绝大多数的操作系统空间。所以这里的数据库空间指的是数据文件所占的空间。可以通过以下脚本来观察数据库空间的使用情况(没有包含TEMP文件):

set serveroutput on
declare
   v_b number;
   v_c number;      
   v_d number;
   v_e number;  
begin
   dbms_output.put_line(chr(10)); 
   select sum(bytes)/1024/1024 into v_b  from v$datafile;
   select sum(bytes)/1024/1024 into v_c  from dba_free_space;
   v_d:=v_b - v_c;
   v_e:=trunc((v_b-v_c)/v_b*100,2);  
   dbms_output.put_line('本次ORACLE检查数据:');
   dbms_output.put_line('数据库空间分配总规模: '||v_b||' (M)');
   dbms_output.put_line('数据库空闲空间总规模: '||v_c||' (M)');
   dbms_output.put_line('数据库已使用空间:     '||v_d||' (M)');
   dbms_output.put_line('已使用总空间比率:     '||v_e||' %');  
end;
/

很多DBA喜欢在建库之初就给数据库分配很多空闲空间,这种方法虽然可以避免数据库空间不足,但会导致数据库的空闲空间很大,而过大的空闲空间可能会带来如下副作用:
占用大量的操作系统空间,进而导致数据库物理备份时间过长。备份时间过长通常也就意味着恢复时间过长。另外,预分配的空闲空间越多也就意味着空间浪费越严重,当数据库发生灾难时,你又不得不拷贝这些空闲空间。所以数据库空闲空间越大,浪费的时间越多。
增加数据库的管理成本。不论数据文件空闲与否,Oracle对其的管理方式都是一样的。过大的数据库,在极端情况下还会影响数据库的打开和关闭时间,因为数据库在正常打开或关闭时需要校验数据文件头内容,过多的数据文件会影响校验速度。
增加数据库的迁移难度。过大的数据库在物理迁移时需要较长的拷贝时间。
基于以上考虑,我们一般建议给数据库预留够用的剩余空间即可。一套运行良好的数据库是用心管理出来的,而不是空间预分配出来的。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值