ORACLE 12.2c 新特性-Restarting Redefinition From Failure

如果联机表重新定义失败,则可以检查DBA_REDEFINITION_STATUS视图来查看错误信息和可重新启动的信息。

如果RESTARTABLEY,则可以更正错误并重新启动上次停止的在线重新定义过程。如果RESTARTABLEN,则必须中止重定义操作。

在某些情况下,可以在失败后重新启动表的在线重新定义。重新启动操作意味着在线重新定义过程从故障停止的地方开始,并且不会丢失任何工作。例如,如果SYNC_INTERIM_TABLE由于“无法表空间中的扩展表”错误而导致过程调用失败,则可以通过增加空间不足并重新运行SYNC_INTERIM_TABLE过程调用的表空间大小来纠正问题。

如果联机表重新定义失败,则可以完成以下步骤以重新启动它:

  1. 查询DBA_REDEFINITION_STATUS视图以确定故障原因以及纠正故障所需的操作。例如,运行以下查询:
    SELECT BASE_TABLE_NAME, 
           INTERIM_OBJECT_NAME, 
           OPERATION, 
           STATUS, 
           RESTARTABLE, 
           ACTION 
       FROM DBA_REDEFINITION_STATUS;

    如果RESTARTABLE值为Y,则可以重新开始操作。如果RESTARTABLE值为N,则无法重新启动操作,并且必须从头开始重新定义。

  2. 执行上一步查询结果中指定的操作。
  3. 使用查询结果中指定的操作重新启动在线重新定义,并运行所有后续操作以完成表的在线重新定义。

 

Example SYNC_INTERIM_TABLE Procedure Call Failure

此示例说明重新启动在SYNC_INTERIM_TABLE过程调用上失败的联机重定义操作,但出现以下错误:

BEGIN
DBMS_REDEFINITION.SYNC_INTERIM_TABLE('U2', 'ORIG', 'INT');
END;
/
ORA-42009: error occurred while synchronizing the redefinition
ORA-01653: unable to extend table U1.INT by 8 in tablespace my_tbs
ORA-06512: at "SYS.DBMS_REDEFINITION", line 148
ORA-06512: at "SYS.DBMS_REDEFINITION", line 2807
ORA-06512: at line 2
  1. 查询DBA_REDEFINITION_STATUS视图:

    SELECT BASE_TABLE_NAME,  INT_TABLE_NAME, OPERATION, STATUS, RESTARTABLE, ACTION 
       FROM DBA_REDEFINITION_STATUS;
    
    BASE_TABLE_NAME INT_OBJ_NAME OPERATION          STATUS  RESTARTABLE ACTION
    --------------- ------------ ------------------ ------- ----------- ---------
    ORIG            INT          SYNC_INTERIM_TABLE FAILED  Y           Fix error
    

    在线重定义操作可以重新开始,因为RESTARTABLEY在查询结果中。要重新启动操作,请更正操作失败时返回的错误并重新启动操作。在此示例中,错误为“ORA-01653: unable to extend table U1.INT by 8 in tablespace my_tbs”.

  2. my_tbs表空间通过向其添加数据文件来增加表空间的大小:
    ALTER TABLESPACE my_tbs
       ADD DATAFILE '/u02/oracle/data/my_tbs2.dbf' SIZE 100M;
  3. 重新运行SYNC_INTERIM_TABLE程序调用:

    BEGIN
       DBMS_REDEFINITION.SYNC_INTERIM_TABLE('U2', 'ORIG', 'INT');
    END;
    /
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值