暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用分区技术从Oracle db(11g) 中删除40% (10TB中的4tb) 不需要的数据,并回收空间。

ASKTOM 2020-11-24
322

问题描述

问题陈述: 使用Oracle db(11g) 中的分区技术删除40% (10TB中的4tb) 不需要的数据,并回收空间。

详细信息:
我的应用程序DB架构大小10 TBOracle 11g,该架构与许多其他架构位于同一位置,因此允许使用DB关闭时间的任何选项。
• 基于大小的顶部表将从3 TB (Table_1),2 TB(Table_2) 开始,依此类推。
• 计划从每个表中删除40% 不需要的数据 (带有where标准)。
• 删除脚本实际上是不可能在巨大的表数据,因为它导致数据库服务器挂起并影响其他架构服务。

以下不是由于停机时间限制而导致的选项,并且没有FS来创建临时表并切换回。
• 通过创建表删除数据
切换表格 (cta)

提议的删除策略:
根据数据模式 (where子句) 对这些表进行分区 (split partition/sub-portiing) 来分离。
分离清除合格数据后,将其截断 (在业务中断期间)。-> 删除/截断不需要的分区。
Trunc截断分区后,使表非分区回原始。

回收空间: 最佳选择?

1.更改数据库数据文件xxx.dbf调整大小
2. alter表空间xxx合并
3.进出口
4. dbms_redefinition
5.改变表xxx收缩

关于拟议解决方案的任何指导吗 ???-
 有join/where子句包含3到4个表的模式要使用哪些分区?
基于模式的分区示例,在11g中支持吗?
 如何在截断不需要的分区后将主表重新分区回原始表?

专家解答

你还没有告诉我们你目前对这些表有什么分区。但是从我读到的-可能没有?

但是,这是一个很大的选择-如果您 * 确实 * 没有空间容纳临时数据 (即数据的辅助副本),那么您的选择将受到极大的限制,因为

-您不能使用DataPump (无法将文件转储到何处)
-您无法使用cta (相同的原因-您暂时需要新旧空间)
-您不能使用DBMS_REDEFINITION (相同的原因)
-您无法从未分区转换为分区 (原因相同)

因此,如果您 * 真的 * 说您没有可用空间... 那么您将返回删除。

多年来,我的经验是,当管理层告诉我 “你不能有空间” 时,这实际上是 “我们宁愿不再使用任何空间” 的情况。

我将向他们提供一些基准:

-运行4TB的删除需要多长时间
-结果您可能会产生多少存档重做
-它将对服务器产生多大影响

他们可能会更慷慨 :-) 你只需要暂时的空间,如果有 * 真的 * 没有剩余的空闲空间,那么我会想象你的整个数据库基础设施将很快陷入停顿,因为肯定其他模式/数据库仍在增长?


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论