1、多个文件导入dumpfile=expdp_full_qytcdb_20240412_%U.dmp,%U代表01、02、03这些
impdp sys/123456@192.168.1.200:1521/Oracle directory=jy dumpfile=expdp_full_20250412_%U.dmp logfile=impdp_$(date +%Y%m%d).log table_exists_action=skip full=y parallel=8;
2、手动书写
impdp sys/123456@192.168.1.200:1521/Oracle directory=jy dumpfile=expdp_full_20250412_01.dmp,expdp_full__20250412_02.dmp logfile=impdp_$(date +%Y%m%d).log table_exists_action=skip full=y parallel=8;
3、执行脚本
@echo off
title 批量导入DMP数据文件
set connStr=用户名/用户密码@数据库实例名称
set impFolder=dmp文件存放路径
pause
for /f "delims=" %%a in ('dir /b "%impFolder%\*.dmp"') do (
echo 正在导入 %%~nxa 文件
imp %connStr% buffer=1024000 fromuser=sgpm touser=yjhg file='%impFolder%\%%a' log='%impFolder%\%%~na_imp.log' ignore=y
)
pause
4、增量导入数据
SKIP:当表存在时,不执行任何操作,直接跳过导入该表。
APPEND:当表存在时,在现有数据的基础上追加导入的数据。
REPLACE:当表存在时,替换表结构和数据,相当于删除表然后重新创建并插入数据。
TRUNCATE:当表存在时,清空表中的数据,然后插入导入的数据。
impdp sys/123456@192.168.1.200:1521/Oracle directory=jy dumpfile=expdp_full_20250412_%U.dmp logfile=impdp_$(date +%Y%m%d).log table_exists_action=append full=y parallel=8;
5、导出数据,设置了并行PARALLEL=4,和文件大小FILESIZE=1G
expdp username/password@dbname DIRECTORY=dpump_dir1 DUMPFILE=expdp%U.dmp FILESIZE=1G PARALLEL=4