online table redefinition

online table redefinition

online table redefinitionoracle9i引入的新特性,在10g加强了这个特性,该特性通过DBMS_REDEFINITON包实现的。online table redefinitio保证了表的可用性,(alter table ...move create index会在整个执行过程中锁表)online table redefinition只有在完成online table redefinition阶段时锁表,且锁表时间不长。

DBMS_REDEFINITION

DBMS_REDEFINITION由下的8procedure组成

ABORT_REDEF_TABLE:取消或错误后取消redefinition

CAN_REDEF_TABLE:检查是否可以online redefinition

COPY_TABLE_DEPENDENTS:interim表上创建dependents

START_REDEF_TABLE:开始online redefinition

FINISH_REDEF_TABLE:完成online redefinition

SYNC_INTERIM_TABLE:同步在online redefinition过程中的更新

REGISTER_DEPENDENT_OBJECT:注册手动创建的dependent

UNREGISTER_DEPENDENT_OBJECT:取消dependent的注册

为了执行online table redefinition你需要下的权限:

execute dbms_redefinition package

create any table

alter any table

drop any table

lock any table

select any table

create any index

create any trigger

online table redefinition步骤:

1.调用dbms_redefinition.can_redef_table procedure 确认是否可以online redefinition

example:  EXECUTE dbms_redefinition.can_redef_table ('FINANCE', 'ACCTS_PAYABLE');

2.redefinition schema下创建interim table

3. 如果你redefinition一个大表,你可以用下面的Statement来改善性能:

alter session force parallel dml parallel degree-of-parallelism;

alter session force parallel query parallel degree-of-parallelism;

4.调用dbms_redefinition.start_redef_table procedure开如redefinition

example:dbms_redefinition.start_redef_table ('FINANCE', 'ACCTS_PAYABLE','ACCTS_PAYABLE_STAGE');

5.创建dependent objects on interim table

有两种方法:

调用dbms_redefinition.copy_table_dependents自动创建dependent objects

使用create statement手动创建dependent objects﹐手动创建的dependents需要调用register_dependent_object注册

6.更新在redefinition过程中的更新到interim

7.调用dbms_redefinition.finish_redef_table完成redefinition

8.删除收回空间如interim table使用的表

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

转载于:http://blog.itpub.net/7419833/viewspace-503857/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值