测试truncate,delete 对rman 备份集大小的影响

思路:
创建5张一模一样大小的表并插入blob 字段,表b3 在表空间b3上, 表b4 在表空间b4上,表b7 在表空间b4上,表b5 在表空间b5上,。b8 在表空间b8上
create table xx(id int ,img blob);
上面表空间里面都只有一个文件,加载完数据后大小都为800M。
1、备份表空间 b3 
rman>backup tablespace b3  format '/orabak/tb_%d_%U';
备份集大小为
[oracle@DATABASE orabak]$ du -h tb_ORCL_0aq1jkl2_1_1
775M tb_ORCL_0aq1jkl2_1_1
truncate table B3;
继续备份表空间b3
rman>backup tablespace b3  format '/orabak/tbs_%d_%U';
备份集大小为
-rw-r-----   1 oracle oinstall   1613824 Mar 11 23:42 tbs_ORCL_0bq1jkrt_1_1 16M
一个775M truncate后为16M
2、继续往下看
truncate 表b4
备份表空间b4 
[oracle@DATABASE orabak]$ du -h tbs4_ORCL_0cq1jlc7_1_1
775M tbs4_ORCL_0cq1jlc7_1_1
大小同样为775M
3、测试删除 
  1、删除单数行数据(这里删除单行是造成空闲块不连续)
delete from b5 where mod(id,2)=1
备份表空间b5 (没有关系的因为每个表空间只有一个数据文件且存放一张表所有的表数据量相同)
 rman>backup tablespace b5 format '/orabak/tbs5_%d_%U';
备份集合大小为
[oracle@DATABASE orabak]$ du -h tbs5_ORCL_0dq1jmp1_1_1
776M tbs5_ORCL_0dq1jmp1_1_1
2、删除id 小于2048的数据
delete from b5 where id<1024;
备份表空间b5
 backup tablespace b5 format '/orabak/tbs5_%d_%U';  
[oracle@DATABASE orabak]$ du -h tbs52_ORCL_0eq1jn3b_1_1
776M tbs52_ORCL_0eq1jn3b_1_1
大小不变
3、删除id>1024的数据我们在b8表上操作
delete from b8 where id>1024;
备份表空间b8
[oracle@DATABASE orabak]$ du -h tbs8_ORCL_0fq1jnk8_1_1 
776M tbs8_ORCL_0fq1jnk8_1_1
备份集大小不变
结论:truncate 对rman 是有效果的
delete 对rman 来讲 就算你删除了数据他的备份大小还是文件的大小相当
我这里删除单行,删除<1024 删除>1024 是想验证备份时候时不时基于block 块的ID 来计算的。你要了解数据库分配空间的过程和原理
---------------------------------------注意本次实验是在测试库上基于普通文件系统非ASM 离散文件系统-----------------------------------------------

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

转载于:http://blog.itpub.net/26764973/viewspace-1455460/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值