expdp 报错ORA-31693、ORA-02354、ORA-01591

某项目逻辑备份报错

ORA-31693: Table data object "amf"."TVON7LOG" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-01591: lock held by in-doubt distributed transaction 22.26.10043216

检查dba_2pc_pending视图发现

对于state状态一般有三种rollback 、prepared  、commit、collecting

根据mos2081894.1 对30个事务进行处理

To resolve the issue please execute the following action plan
Purging the transactions may not work
SQL> execute DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('640.135.3086');
BEGIN DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('640.135.3086'); END;
*
ERROR at line 1:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "SYS.DBMS_TRANSACTION", line 105
ORA-06512: at line 1
Use the following query to check for any pending transactions
SQL> SELECT local_tran_id FROM dba_2pc_pending;
LOCAL_TRAN_ID
----------------------
640.135.3086
Use the following workaround to clear the pending transactions or lock held by in-doubt distributed transactions by executing Rollback force
and purge
SQL> rollback force '640.135.3086';
Rollback complete.
SQL> commit;
Commit complete.
SQL> begin
2 dbms_transaction.purge_lost_db_entry('640.135.3086');
3 end;
4 /

PL/SQL procedure successfully completed.
SQL> SELECT * FROM dba_2pc_pending;
no rows selected
SQL> commit;
Commit complete.
SQL> SELECT * FROM dba_2pc_pending;
no rows selected

### ORA-31693ORA-02354ORA-01555 错误对数据影响分析 #### 一、错误概述 当执行 `expdp` 或其他导出操作时遇到这些错误,通常意味着某些表的数据未能成功导出。具体来说: - **ORA-31693**: 表明特定的对象(通常是表)在尝试加载或卸载过程中失败并被跳过[^1]。 - **ORA-02354**: 提示在导出或导入期间发生了某种形式的内部处理错误,这可能是由于文件损坏或其他底层存储问题引起的。 - **ORA-01555**: 指的是快照太旧的问题,在读取一致性视图的过程中遇到了不一致的状态,即事务回滚段不足以提供所需的历史版本记录[^2]。 #### 二、对数据的具体影响 对于上述提到的三个错误组合而言,最直接的结果就是部分指定对象的数据未被包含到最终生成的转储文件中。这意味着如果后续基于此转储文件进行恢复,则那些受影响的对象将会丢失其最新状态下的全部或部分内容。 更进一步讲,因为这些问题往往发生在大型表格上或是涉及长时间运行的操作里,所以可能会影响到业务逻辑紧密关联的关键性资料。例如订单详情、交易流水等重要商业信息可能会因此而残缺不全,进而给应用程序带来潜在的风险和挑战[^3]。 另外值得注意的一点是,虽然单次导出作业中的个别对象缺失不会立即造成整个系统的崩溃,但如果频繁发生此类事件,不仅会增加维护成本,还可能导致灾难性的后果——尤其是在缺乏有效监控机制的情况下[^4]。 ```sql -- 示例:查询哪些表受到了影响 SELECT * FROM dba_expdp_log WHERE status = 'FAILED'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值