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

Oracle分区拆分问题

ASKTOM 2021-01-20
638

问题描述

你好,

我有一个生产问题,需要您的投入。
版本: 甲骨文数据库11g企业版版本11.2.0.4.0-64bit生产

1) 有一个每月分区的Oracle表,在创建表期间创建了每月分区。
2) 该应用程序运行了很多年,但是管理员忘记了及时创建新分区,现在我们有一个非常沉重的最大分区,有2亿行。
有许多表受此问题影响。
3) 应用软件提供商为我们提供了基于标准分区拆分命令的脚本,将最大分区拆分为新的每月分区,该分区可以递归运行,直到整个最大分区为空并创建未来分区。

问题: 对于一些沉重的表,使用DOP 16拆分一个月甚至需要花费近20个小时的复制。
这种关闭时间是不可能的,这个应用程序,我想避免这种情况。


是否有其他可能的方法可以帮助更快的分区拆分。
-> 我们希望最短的停机时间。
-> 活动可以在更长的时间 (例如一个月) 内执行,因为目前没有应用程序性能问题,但是对于应用程序而言,停机时间并不重要。也许只有1个停机时间,持续4-5个小时。


任何投入都将受到高度赞赏。

---
我能想到的一种方法是:-
1) 分离此最大分区 (我尝试在POC中使用EXCHAHE分区,但这需要未分区的阴影/目标表)
2) 在orig表中添加新分区。
3) 重新连接最大分区 (如何重新连接?)
4) 稍后启用行移动并更新分区键,以使行移动到正确的分区中。-这可以在几周内缓慢完成

这种方法会奏效吗?




专家解答

我不确定 “分离” 最大分区是什么意思。可以进行某种形式的分区交换过程,将分区逐渐拆分为较小的块,但这很容易。

这里有几个其他的选择,我会选择这个:

升级到12.2 (或更高),您可以在线进行分区拆分 :)

您已经说过目前没有应用程序性能问题。因此,如果你优先升级 (老实说,因为你在11.2,无论如何这应该是一个高度优先的任务),你可能能够在那时之前保持现状。

如果您不能等到升级后,可以使用DBMS_redefinition在线更改分区方法。

https://oracle-base.com/articles/11g/online-table-redefinition-enhancements-11gr1
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论