oracle impdp导入dmp文件时更改用户及表空间方法

oracle impdp导入dmp文件时更改用户及表空间方法
impdp默认导入expdp的dmp文件时,是需要建立相同名称的表空间及临时表空间的;而且会自动创建相同名称的用户名。

但是有时候我们想更改这种默认设置,这个时候就要用到impdp的特殊参数remap_schema(更改用户名)及remap_tablespace(更改存储表空间);

假设我们有一个example.dmp文件,原来用户为olduser,存储空间为example,example_temp;

我们需要更改用户名及存储表空间导入到新的库中,只需要按照如下步骤进行:

1、建立新的表空间(假设名称:newtablespace)及临时表空间(假设名称:newtablespace_temp),语句如下

–表空间

create tablespace newtablespace
logging
datafile ‘D:\app\Administrator\oradata\newtablespace.dbf’
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
–临时表空间
create temporary tablespace newtablespace_temp
tempfile ‘D:\app\Administrator\oradata\newtablespace_temp.dbf’
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

–注:具体参数及参数值根据实际情况调整。

2、建立用户(此步骤可省略)

create user newuser identified by admin
default tablespace newtablespace
temporary tablespace newtablespace_temp;

3、导入

在oracle服务器cmd执行如下命令:

impdp system/admin@DNACLIENT directory=DATA_PUMP_DIR dumpfile=example.DMP REMAP_SCHEMA=olduser:newuser remap_tablespace=EXAMPLE:newtablespace,EXAMPLE_TEMP:newtablespace_temp

注:

1、此处directory使用了系统自带的,如果需要自定义,请使用 create directory命令创建;

2、remap_tablespace多个表空间转换用逗号隔开。

完成以上步骤,通过plsql利用newuser登录数据库,可以查看到newuser下的所有导入的表已转入newtablespace表空间了。

### 在 Docker 容器中使用 Oracle `impdp` 工具导入 DMP 文件 为了成功在 Docker 容器中的 Oracle 数据库实例里利用 `impdp` 导入 `.dmp` 文件,需遵循一系列特定的操作流程。 #### 准备工作 确保已下载并启动合适的 Oracle 镜像。对于本案例而言,可以考虑使用官方推荐镜像之一: ```bash docker pull oracleinanutshell/oracle-xe-11g ``` 接着启动该容器,并指定必要的端口映射以便外部访问数据库服务[^1]。 #### 将本地 DMP 文件复制至容器内部 采用 `docker cp` 命令实现主机文件向容器内的传输。假设目标路径为 `/u01/app/oracle/admin/XE/dpdump/` (具体取决于所使用的 Oracle 版本),则命令形式如下所示: ```bash docker cp aa.dmp container_id:/u01/app/oracle/admin/XE/dpdump/ ``` 此处 `container_id` 应替换为实际的容器 ID 或名称;而 `aa.dmp` 是经过简化命名后的数据泵导出文件[^2]。 #### 登录容器执行 IMPDP 操作 通过 `docker exec` 获取进入正在运行之容器的能力,进而切换到具有适当权限的身份来调用 `impdp` 实用程序。通常情况下,默认用户可能不具备足够的权利来进行此类操作,因此有必要先转成超级管理员账户再继续后续步骤: ```bash docker exec -it container_id bash su - oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export PATH=$ORACLE_HOME/bin:$PATH ``` 最后,在确认环境变量设置无误之后便能正式启动数据加载过程了。下面给出了一条典型的 `impdp` 使用语句作为参考: ```sql impdp system/password DIRECTORY=DATA_PUMP_DIR DUMPFILE=aa.dmp LOGFILE=import.log FULL=Y ``` 上述指令里的参数可根据实际情况作出相应调整,比如更改用户名密码组合或是限定仅恢复部分对象而非整个模式等[^3]。 如果遇到权限方面的问题,则应核查相关目录的所有权以及属性配置是否恰当,必要可参照先前经验进行修正[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值