Docker上Oracle容器导入DMP文件----Windows版本Docker的使用

以aa.dmp文件导入到Docker中Oracle容器为例:

dmp文件一般名称较长,建议改短方便操作。

Linux使用如下操作
mv 原dmp文件名 新dmp文件名
安装Oracle的容器
dockers pull oracleinanutshell/oracle-xe-11g

可以根据情况选择其他版本oracle,操作基本无太大差别
其他oracle容器如:
alexeiled/docker-oracle-xe-11g
deepdiver/docker-oracle-xe-11g
启动容器
docker run -d -p 49160:22 -p 49161:1521 oracleinanutshell/oracle-xe-11g
进入容器中
docker exec -it   容器名  /bin/bash

进不去可以通过 docker ps查看最左边运行的id,输入前3位即可
docker exec -it   0bf  /bin/bash   ##0bf是本次容器的前三位

在这里插入图片描述

dmp文件导入容器
Windows上要进入到DMP文件所在文件夹下操作,这里我们暂时放在/home这

docker cp aa.DMP 8cf9014a034a:/home 

docker cp 复制的文件 容器的id:复制到容器的路径

以下步骤会略有差异,而且容易出错

首先我们需要看版本与相关信息
进入容器
docker exec -it 0b /bin/bash  ##0b是运行容器的id前两位

在这里插入图片描述

通过docker容器下载的一般是11版本,通过以下名称查看:
find / 11

找到版本号下以及的目录,将路径复制出来,一会会用

在这里插入图片描述

创建表空间
CREATE BIGFILE TABLESPACE "你要创建的表空间名称" DATAFILE '刚刚复制的路径/创建的表空间名称.ora' SIZE 1000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

例如:
CREATE BIGFILE TABLESPACE "table" DATAFILE '/u01/app/oracle/product/11.2.0/xe/table.ora' SIZE 1000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
创建用户
create user 用户名 identified by 密码 default tablespace TS_TABLE_TMS temporary tablespace TEMP profile DEFAULT quota unlimited on TS_ECP quota unlimited on TS_HIS_TMS quota unlimited on TS_INDEX_TMS quota unlimited on TS_TABLE_TMS;

例如:
create user user identified by user default tablespace TS_TABLE_TMS temporary tablespace TEMP profile DEFAULT quota unlimited on TS_ECP quota unlimited on TS_HIS_TMS quota unlimited on TS_INDEX_TMS quota unlimited on TS_TABLE_TMS;

如果用户已存在
drop user user cascade;
用户授权
grant connect, resource ,dba to 用户名;

例如:
grant connect, resource ,dba to user;
移动DMP文件到特定文件夹下
为了避免路径加载文件失败的问题

输入一个不存在的文件,例如:dsaaa.dmp执行导入
impdp ms_tps/ms_tps file='dsaaa.dmp'

在这里插入图片描述

复制aa.dmp文件到该文件夹下
cd /home

cp ./aa.DMP /u01/app/oracle/admin/XE/dpdump/   ##后面的地址就是刚刚查到的地址

最后一步:

oracle加载DMP文件
impdp 用户名/密码 file='aa.DMP' full=y ignore=y;

例如:
impdp user/user file='aa.DMP' full=y ignore=y;		##里面有	' ' 省略会出错
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Docker容器中导出Oracle数据库dmp文件,可以按照以下步骤操作: 1. 在Docker容器中安装Oracle客户端工具,例如sqlplus和expdp等。 2. 运行Docker容器并登录到Oracle数据库。 3. 使用expdp命令导出dmp文件。例如,使用以下命令导出整个数据库: ``` expdp username/password@connect_string dumpfile=export.dmp directory=DATA_PUMP_DIR full=y ``` 其中,username是数据库用户名,password是密码,connect_string是连接字符串,dumpfile是导出的dmp文件名,directory是导出文件的目录,full=y表示导出整个数据库。 4. 导出完成后,将dmp文件复制到本地计算机。 ``` docker cp container_id:/path/to/export.dmp /path/on/host ``` 其中,container_id是Docker容器的ID,/path/to/export.dmpdmp文件的路径,/path/on/host是本地计算机上存储dmp文件的路径。 5. 在本地计算机上使用Oracle客户端工具导入dmp文件到另一个Oracle数据库中。例如,使用以下命令导入dmp文件: ``` impdp username/password@connect_string dumpfile=export.dmp directory=DATA_PUMP_DIR ``` 其中,username是目标数据库的用户名,password是密码,connect_string是连接字符串,dumpfile是导入dmp文件名,directory是导入文件的目录。 注意:在使用expdp和impdp命令时,需要先在Oracle数据库中创建数据泵目录。例如,使用以下命令创建数据泵目录: ``` CREATE DIRECTORY DATA_PUMP_DIR AS '/path/to/directory'; ``` 其中,/path/to/directory是数据泵目录的路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值