在做数据迁移、还原测试库以及其他需要导出、导入数据的需求下,我们常用到数据泵来进行数据的导出操作,但如果数据库中clob字段非常多,导出就会比较慢。如何加快导出导入速度呢?我们可以将大对象的表通过rowid切片,使用多个进程进行导出导入,接下来分享一下针对linux和window下基于rowid分片,加快进行导出和导入clob大字段的相关脚本。
1、linux 下基于rowid分片的导出脚本 expdp_clob.sh
#!/bin/bash
#环境变量设置
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db
export ORACLE_SID=dbbbed
#这里指的并行数
chunk=3
#3个并行(0~2)
for ((i=0;inul 2>nul
)
导出过程:
3、linux下基于rowid导入脚本 impdp_clob.sh
#!/bin/bash
#环境变量设置
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db
export ORACLE_SID=dbbbed
for ((i=0;istart /b %oracle_home_path%impdp %connStr% directory=impdir dumpfile=TX_%%a.DMP logfile=imp_TX_%%a.log DATA_OPTIONS=DISABLE_APPEND_HINT TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y CONTENT=DATA_ONLY
start /b %oracle_home_path%impdp %connStr% directory=expbak dumpfile=t_clob%%a.dmp logfile=imp_t_clob%%a.log DATA_OPTIONS=DISABLE_APPEND_HINT CONTENT=DATA_ONLY
echo =====================================导入进程%%a=====================================
timeout 10 >nul 2>nul
)
导入过程