IMPDP的一个坑

提醒自己注意下:

由于写sql已习惯在末尾加;(分号)

今天在做一个IMPDP导入时候也这样敲了,结果让人哭笑不得。。。

impdp XXX/XXX directory=DMP_DIR dumpfile=sample.dmp remap_tablespace=XX01:XX02 remap_schema=XX01:XX02;

这样在导入的数据库中竟然产生了一个新用户叫"XX02;"

 

要使用 `impdp` 工具同时导入多个 `dmp` 文件,可以通过以下几种方法实现: ### 方法一:使用通配符 如果多个 `dmp` 文件在同一目录下且文件名有一定的规律,可以使用通配符来指定多个文件。 ```bash impdp username/password@service_name directory=directory_object dumpfile=file1.dmp,file2.dmp,... ``` 例如,若文件名为 `exp_20240101.dmp`、`exp_20240102.dmp`、`exp_20240103.dmp`,可以使用如下命令: ```bash impdp system/oracle@orcl directory=DATA_PUMP_DIR dumpfile=exp_*.dmp ``` 在上述命令中,`username` 是数据库用户名,`password` 是对应的密码,`service_name` 是数据库服务名,`directory_object` 是数据库中定义的数据泵目录对象,`dumpfile` 后面使用通配符 `*` 匹配多个文件。 ### 方法二:在 `dumpfile` 参数中列出所有文件 直接在 `dumpfile` 参数中列出所有要导入的 `dmp` 文件,文件之间用逗号分隔。 ```bash impdp system/oracle@orcl directory=DATA_PUMP_DIR dumpfile=file1.dmp,file2.dmp,file3.dmp ``` ### 方法三:结合脚本批量处理 对于大量的 `dmp` 文件,可以编写一个脚本生成 `impdp` 命令。以下是一个简单的 `bash` 脚本示例: ```bash #!/bin/bash # 定义数据库连接信息 USERNAME="system" PASSWORD="oracle" SERVICE_NAME="orcl" DIRECTORY="DATA_PUMP_DIR" # 获取所有 dmp 文件列表 DMP_FILES=$(ls *.dmp | tr '\n' ',') DMP_FILES=${DMP_FILES%,} # 去除最后一个逗号 # 生成 impdp 命令 IMPDP_CMD="impdp $USERNAME/$PASSWORD@$SERVICE_NAME directory=$DIRECTORY dumpfile=$DMP_FILES" # 执行命令 eval $IMPDP_CMD ``` 将上述脚本保存为一个文件(例如 `import_dmp.sh`),赋予执行权限 `chmod +x import_dmp.sh`,然后运行 `./import_dmp.sh` 即可。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值