在使用在线重定义对表进行复制的过程中,意外中断,再次执行start_redef_table时提示 ORA-232539操作,提示‘当前正在重新定义表’,通过finish_refed_table解释重定义操作,提示'重新定义未实例化',
这里只能尝试一下abort_redef_table操作,好像也花费好长时间,10分钟。
-
SQL> exec dbms_redefinition.start_redef_table(uname => 'testtemp',orig_table => 'record',int_table => 'record_partition');
-
-
begin dbms_redefinition.start_redef_table(uname => 'testtemp',orig_table => 'record',int_table => 'record_partition'); end;
-
-
ORA-23539: 当前正在重新定义 "TESTTEMP"."RECORD" 表
-
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 56
-
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 1498
-
ORA-06512: 在 line 2
-
-
SQL>
-
SQL> exec dbms_redefinition.can_redef_table(uname => 'testtemp',tname => 'record');
-
-
begin dbms_redefinition.can_redef_table(uname => 'testtemp',tname => 'record'); end;
-
-
ORA-23539: 当前正在重新定义 "TESTTEMP"."RECORD" 表
-
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 143
-
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 1635
-
ORA-06512: 在 line 2
-
-
SQL>
-
SQL>
-
SQL> exec dbms_redefinition.finish_redef_table(uname => 'testtemp',orig_table => 'record',int_table => 'record_partition');
-
-
begin dbms_redefinition.finish_redef_table(uname => 'testtemp',orig_table => 'record',int_table => 'record_partition'); end;
-
-
ORA-42004: 重新定义未实例化
-
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 82
-
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 1532
-
ORA-06512: 在 line 2
-
-
SQL> exec dbms_redefinition.abort_redef_table(uname => 'testtemp',orig_table => 'record',int_table => 'record_partition');
-
PL/SQL procedure successfully completed
Executed in 577.703 seconds
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27039319/viewspace-2121133/
,如需转载,请注明出处,否则将追究法律责任。