一种Oracle的批量清理空free块坏的方法

VALIDATE database;

查询坏块列表

select * from V$DATABASE_BLOCK_CORRUPTION;    
select file# from V$DATABASE_BLOCK_CORRUPTION group by file# order by file#;--一共涉及到多个文件,并排序。

 
删除上次检查的临时坏块列表

drop table cb7; 
create table cb7 as select * from V$DATABASE_BLOCK_CORRUPTION;    
select * from cb7;


查询free-block-获取exteand

drop table fblock;
create table fblock as Select d.name,f.BYTES bytes,c.block# block#,c.file# file# from dba_free_space f,cb7 c,v$datafile d  where d.file#=c.file# and file_id=c.file# and c.block# between f.block_id and f.block_id + f.blocks -1;
select * from fblock;


批量创建表

select 'create  table  test.s'||block#||'  (n  number,c varchar2(4000) )nologging  tablespace  test pctfree 99;'  from    fblock;

快速填充free-block

select '
BEGIN
for i in 1..1000000 loop
EXECUTE IMMED
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值