上一篇
场景还原:
凌晨3点,你正喝着第4杯咖啡☕赶项目,突然监控系统狂闪——Oracle数据库抛出了ORA-29353: transportable tablespace list is too long!客户催着要数据迁移报告,而你的传输列表像春运火车票一样爆满了…别慌!这篇实战指南就是你的救星✨
ORA-29353通常发生在使用可传输表空间(TTS)迁移数据时,当你的TRANSPORT_TABLESPACES
参数指定的表空间列表超过Oracle内部限制(通常约30个字符)就会触发,简单说就是:你想一次性搬的家当太多,卡车装不下了🚛💨
-- 查看当前报错的传输命令 SELECT * FROM DBA_DATAPUMP_JOBS WHERE STATE = 'EXECUTING'; -- 强制停止异常作业(谨慎操作!) BEGIN DBMS_DATAPUMP.STOP_JOB('你的作业ID', immediate=>TRUE); END;
将长列表拆分成多个迁移任务,
-- 原命令(报错) TRANSPORT_TABLESPACES=TS1,TS2,TS3,...TS20 -- 改为分批执行👇 -- 第一批 TRANSPORT_TABLESPACES=TS1,TS2,TS3 -- 第二批 TRANSPORT_TABLESPACES=TS4,TS5,TS6
通过数据字典动态生成清单:
-- 生成可传输表空间清单 SELECT ''''||TABLESPACE_NAME||'''' FROM DBA_TABLESPACES WHERE CONTENTS = 'PERMANENT' AND TABLESPACE_NAME LIKE 'YOUR_PREFIX%';
复制结果到文本编辑器批量处理,轻松拆分~
创建参数文件(如tts_par.par
):
TRANSPORT_TABLESPACES=(TS1, TS2, TS3)
...其他参数...
然后通过parfile
调用:
expdp system/password parfile=tts_par.par
DBMS_TTS.TRANSPORT_SET_CHECK
验证表空间集合 FIN_2024
比FINANCIAL_DEPARTMENT_2024_Q3
更友好) Oracle 23c开始支持扩展传输列表(需打补丁),但老系统还得靠"分批次"的土办法,下次设计表空间时,记得考虑"迁移友好性"哦!
(本文方法经Oracle 19c/21c实测有效,最后更新参考:2025-07)
本文由 邗水 于2025-07-29发表在【云服务器提供商】,文中图片由(邗水)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/477082.html
发表评论