暂无图片
含BLOB字段的800G的非分区大表如何清理历史数据
我来答
分享
dqf646585617
2019-12-17
含BLOB字段的800G的非分区大表如何清理历史数据
暂无图片 5M

专家们好:
目前客户这边有一个需求就是清理含BLOB字段的非分区大表三年之前的历史数据。我们考虑了两种方式:
1.通过delete分批分时间-写存储过程实现,但是由于是ADG环境,且我们的归档空间有限,担心该方式持续时间过长,对生产造成的隐患较大
2.通过CTAS+Parallel保留三年之内的历史数据,然后通过停机+rename实现,客户可以接受的停机时间是4到5个小时,但是我们在生产上模拟了CTAS+parallel+6个月的数据,【create table xxxxx tablespace xxxxx lob (“xxxxx”) store as
securefile (tablespace xxxx1 compress high deduplicate) parallel 8 as select * from docxxx where xxxid >= (select min(xxx_id) from xxxlib where as_datexxxed >= add_months(trunc(sysdate), -6));】结果跑了4个小时都没跑完,更何况是3年的数据,且产生了大量的归档,我们边备边删除过时的归档,风险太大。
所以:我想问专门们是否有更好的方式可以完成以上的需求,或者说我以上提到的两种方式用的不准确

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
杨杰

写个循环,delete的时候可以按时间,分批删除分批提交,比如一次删除一个小时的数据(根据实际数据情况),建议在业务空闲时清理。

暂无图片 评论
暂无图片 有用 0
打赏 0
gelyon

1.ctas当时中加nologging并且开并发,clob能否不用压缩

2.分批创建多个表,select的时候时间控制,比如半年一个三年也就6个表

以上方式试试

暂无图片 评论
暂无图片 有用 0
打赏 0
gelyon

忘了有adg,开了附加日志,没法不记日志

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
数据库物化视图刷新慢问题
回答 2
已采纳
先看物化视图的模式,是基于日志的增量刷新还是全量刷新;然后分析物化视图的查询sql,看sql中是否有用到dblink,表是都在本地还是都在远端,如果都有分布那就得细看各表数据量、索引的情况了;如果只在
Oracle数据库定时器这个间隔写多少是让它整点或者正好半点的时候执行?
回答 3
已采纳
如果是每天一次的话trunc(sysdate1)1/24,就是每天的1点;trunc(sysdate1)1/48就是每天的0点半。但如果是每隔一小时都要在整点运行的话,建议使用schedulejob,
哪个大佬能彻底把DG中的VALID_FOR这个参数讲清楚,谢谢
回答 2
可以看看这篇,前几天总结的官方文档的加强版《爆肝一万字终于把OracleDataGuard核心参数搞明白了》https://mp.weixin.qq.com/s/m1SElWOYfh2kcrre5HN
oracle sql性能分析
回答 1
已采纳
首先awr可以。不过是全局的。这里有没有执行完毕的。这种很少。如果单独看一个正在执行的。你需求不合理。因为毕竟他还没执行完。后面还可能继续有读。当然如果要实时看也不是没有办法,但是不是太准确。这样就能
oracle删字段报错ORA-12991: 引用的列处于多列约束条件
回答 1
看看涉及到的表列是否存在外键约束的问题
海光芯片的操作系统安装Oracle
回答 1
已采纳
您好,可以安装。海光芯片是X86架构,Oracle产品包都是基于x86下的,操作系统建议选择linux系列的如:UOS,银河麒麟kylinv10。
Oracle数据库经常出现一两个表数据被删除了几条,可是整个系统就没有使用delete,一般是什么原因造成的?
回答 5
可以的话把该表的权限回收了,看谁在叫就知道了,哈哈
高水位
回答 1
对于表,在线操作shrink(避开业务高峰期去做),停业务操作可用move,move后必须重建索引。
Oracle单实例安装时,Oracle用户的主组设置成了dba,安装已完成了,后面能正常使用吗
回答 6
这个也不会有影响,我遇到几套生产库也是这样规划的
V$ACTIVE_SESSION_HISTORY.current_obj#=-1
回答 2
不是这样吧,是不是currentobj1表示读取的是undo的数据?
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~