20190402-expdp ORA-01555(二)(大表拆分)

在这里插入图片描述

环境信息:

DB:Oracle 11.2.0.1.0
OS:Windows Server 2012

—敏感数据已替换

问题:

expdp导出一张含有BLOG字段的大表(100G)时,报错ORA-01555
—expdp_log

Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type SCHEMA_EXPORT/VIEW/VIEW
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
ORA-31693: Table data object "CHENJCH"."T_XXX_XXXXX" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-01555: snapshot too old: rollback segment number 10 with name "_SYSSMU10_XXXXXXXXX$" too small

—alert_XXX.log

XXX XXX XXX 2019
Archived Log entry 6560 added for thread 1 sequence 46359 ID 0x7262bbad dest 1:
XXX XXX XXX 2019
ORA-01555 caused by SQL statement below (SQL ID: 88tquba1dj6s0, SCN: 0x0000.47dd74a2):
SELECT * FROM RELATIONAL("CHENJCH"."T_XXX_XXXXX")
XXX XXX XXX 2019

问题分析:

大表数据量增长很快,增加retention后只能缓解几天,无限制加大retention也不现实;

http://blog.itpub.net/29785807/viewspace-2218168/

单个大表可以根据时间进行数据拆分成逻辑上的多个小表,在进行导出即可;

解决方案:

更改备份脚本
原脚本

expdp chenjch/***** directory=dir_chenjch dumpfile=%backupfile1% logfile=%logfile1% schemas=chenjch exclude=STATISTICS

新脚本
1 先将大表排除

expdp chenjch/***** directory=dir_chnenjch dumpfile=%backupfile1% logfile=%logfile1% schemas=chenjch 
exclude=TABLE:\"IN\(\'T_XXX_XXXXX\'\)\" exclude=STATISTICS

2 将大表按年拆分

expdp chenjch/***** directory=dir_chenjch dumpfile=%backupfile3% logfile=%logfile3% tables=T_XXX_XXXXX 
query=T_XXX_XXXXX:\"where to_char(XXXTime,'yyyy')='2019'\" exclude=STATISTICS 
expdp chenjch/***** directory=dir_chenjch dumpfile=%backupfile4% logfile=%logfile4% tables=T_XXX_XXXXX 
query=T_XXX_XXXXX:\"where to_char(XXXTime,'yyyy')='2018'\" exclude=STATISTICS

大表拆分后可以正常导出了
欢迎关注我的微信公众号"IT小Chen"

### ORA-31693、ORA-02354 和 ORA-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、付费专栏及课程。

余额充值