在线重定义19G表,转化为组合分区表。应用无需停止。
2016-12-09 11:56
375 查看
Oracle 高可用特性, 想必大家都知道。 这里我想记录一次工作中的小小尝试。 在线重定义19G表转化为二级分区表
系统中表 ST_MNTR_BUS_ORDER_SUM3 现在按照list 分区, 改成组合分区, 原来的数据堆积起来有4 5 个月的数据 共19G。查询很多过期数据
于是性能问题出现。 自动化清空大批过期数据,数据量始终可控。 我感觉精华部分在于分区的设计。 但是我这里不想重点说, 说说在线重定义。
上干货: 表木有主键, 哥通过rowid 完成在线重定义, 关于前骤, 自己去百度下,这里不多说。
begin
dbms_redefinition.can_redef_table('JS_ZWXN','ST_MNTR_BUS_ORDER_SUM3',Dbms_Redefinition.cons_use_rowid);
end;
begin
dbms_redefinition.start_redef_table('JS_ZWXN','ST_MNTR_BUS_ORDER_SUM3','ST_MNTR_BUS_ORDER_SUM_ONLINE',null,dbms_redefinition.cons_use_rowid);
end;
begin
DBMS_REDEFINITION.FINISH_REDEF_TABLE('JS_ZWXN', 'ST_MNTR_BUS_ORDER_SUM3', 'ST_MNTR_BUS_ORDER_SUM_ONLINE');
end;
卡在第二步,哥看了等待事件, 多块读 每次读取11-16个数据块, 如果哥改成 每次读64,或者128 个块时间缩短到多少?? 当时哥花了15分钟。 哥是在业务不忙时候判断的, 关于如何判断哥不是通过时间 估测, 有相当精准的判断方案, IO压力, 内存压力, 每秒执行的SQL数量, 以及redo undo 综合判断得出的,
关于判断重定义时间经度, 哥不多说, 只提供两个方案 1 等待事件指向的 对象, 2 对应物化视图的总量,以及增加速度。
15分钟搞定, 不影响业务正常使用。 简单纪念, 记录之.........
系统中表 ST_MNTR_BUS_ORDER_SUM3 现在按照list 分区, 改成组合分区, 原来的数据堆积起来有4 5 个月的数据 共19G。查询很多过期数据
于是性能问题出现。 自动化清空大批过期数据,数据量始终可控。 我感觉精华部分在于分区的设计。 但是我这里不想重点说, 说说在线重定义。
上干货: 表木有主键, 哥通过rowid 完成在线重定义, 关于前骤, 自己去百度下,这里不多说。
begin
dbms_redefinition.can_redef_table('JS_ZWXN','ST_MNTR_BUS_ORDER_SUM3',Dbms_Redefinition.cons_use_rowid);
end;
begin
dbms_redefinition.start_redef_table('JS_ZWXN','ST_MNTR_BUS_ORDER_SUM3','ST_MNTR_BUS_ORDER_SUM_ONLINE',null,dbms_redefinition.cons_use_rowid);
end;
begin
DBMS_REDEFINITION.FINISH_REDEF_TABLE('JS_ZWXN', 'ST_MNTR_BUS_ORDER_SUM3', 'ST_MNTR_BUS_ORDER_SUM_ONLINE');
end;
卡在第二步,哥看了等待事件, 多块读 每次读取11-16个数据块, 如果哥改成 每次读64,或者128 个块时间缩短到多少?? 当时哥花了15分钟。 哥是在业务不忙时候判断的, 关于如何判断哥不是通过时间 估测, 有相当精准的判断方案, IO压力, 内存压力, 每秒执行的SQL数量, 以及redo undo 综合判断得出的,
关于判断重定义时间经度, 哥不多说, 只提供两个方案 1 等待事件指向的 对象, 2 对应物化视图的总量,以及增加速度。
15分钟搞定, 不影响业务正常使用。 简单纪念, 记录之.........
相关文章推荐
- ORACLE在线重定义--将普通表转化为分区表
- ORACLE在线重定义--将普通表转化为分区表
- ORACLE 普通表转换成分区表(在线重定义)
- 10款在线格式转化应用
- list分区表转化为list-list组合分区表的测试过程
- oracle range分区表已经有了MAXVALUE 分区,如何添加分区?要不能删除MAXVALUE分区里的数据,不影响在线应用。
- 使用ORACLE在线重定义将普通表改为分区表
- ORACLE 普通表转换成分区表(在线重定义) --转帖
- ORACLE 普通表转换成分区表(在线重定义)
- 使用ORACLE在线重定义将普通表改为分区表
- 使用用rowid 在线重定义分区表
- oracle在线重定义将普通表改为分区表
- Oracle 在线重定义(将普通堆表转换成分区表)
- oracle 在线重定义将普通表转换成分区表
- Android源码学习之组合模式定义及应用
- 将普通表在线重定义为分区表
- 应用吧:10款在线格式转化应用
- ORACLE普通表转换成分区表(在线重定义)
- 一个完整的以在线重定义方式普通表转分区表的方案
- 用Oracle在线重定义把普通表改成分区表