分区表的可用性及相关错误案例

分区表的可用性:

  创建一个分区表:

  create TABLE employee
  ( empno int,
  ename varchar2(20)
  )
  PARTITION BY HASH (empno)
  ( partition part_1 tablespace TBS_DAIMIN,
  partition part_2 tablespace USERS
  )
  SQL> insert into employee select empno, ename from scott.emp
  2 ;
  14 rows created.
  commit;
  SQL> select * from employee partition(part_1);
  EMPNO ENAME
  ---------- --------------------
  7369 SMITH
  7499 ALLEN
  7654 MARTIN
  7698 BLAKE
  7782 CLARK
  7839 KING
  7876 ADAMS
  7934 MILLER
  8 rows selected.
  SQL> select * from employee partition(part_2);
  EMPNO ENAME
  ---------- --------------------
  7521 WARD
  7566 JONES
  7788 SCOTT
  7844 TURNER
  7900 JAMES
  7902 FORD

  6 rows selected.

  假如将该表的一个分区offline之后,出现下面的错误:

  SQL> alter tablespace TBS_DAIMIN offline;
  SQL> select * from employee;
  select * from employee
  *
  ERROR at line 1:
  ORA-00376: file 12 cannot be read at this time
  ORA-01110: data file 12: ’/opt/ora9/product/9.2/dbs/tbs_daimin02.dat’

  原因:

  主要是因为该表的一个分区已经offline,而 select * from employee是访问整个表的信息,这样必然需要访问表的所有分区,当访问到已经offline的时候,则会报错;

  但是如果是试图访问联机的分区的数据,则可以成功;如下:

 SQL> variable n number
  exec :n :=SQL> 7521
  PL/SQL procedure successfully completed.
  SQL> select * from employee where empno = :n
  2 ;
  EMPNO ENAME
  ---------- --------------------
  7521 WARD

  但是这样分区有个好处就是放一张分区表出现故障时,可以通过分析确认是表的哪个分区出现故障,然后将出现故障的分区通过优化器从方案中排除对该分区的数据查询,可以减少故障时间。

  比方说:

  有一个100GB的表,并且这个表被分成50个2GB的分区,可以更快的从系统错误中恢复过来。如果有一个2GB的分区受损,则恢复时间则就恢复一个2GB分区所花费的时间,而不是恢复一个100GB的表所花费的时间

  可用性得到了提高:

  1、分区可以用优化器来排除,使得一个分区的破坏不会对用户产生很大的影响,最多就是查询不到受损分区的数据;

  2、分区受损,只需要恢复该受损分区及可,这样减少了系统故障时间。

[@more@]

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

转载于:http://blog.itpub.net/350519/viewspace-1041739/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值