简述
本来我电脑上的docker安装的是oracle 11 结果 oracle 11 xe 支持的 tablespace 最大是11G,但是我的dmp文件是22个G的超大dmp文件。所以很明显是不行的了。所以没有办法只能重新安装一个oracle 12c的 容器。
安装步骤
docker search oracle
执行上面的命令查找可以使用的docker 镜像。 选取 truevoly/oracle-12c 作为此次要下载的镜像文件。
docker pull truevoly/oracle-12c
当下载完成以后即可看到本地的镜像仓库里面存在了镜像文件。 然后执行如下命令创建运行一个12c的数据库容器
docker run -d -p 49161:1521 -v /Users/qinglutaxue/Desktop/dockerV:/Users/qinglutaxue/Desktop/dockerV -e ORACLE_ALLOW_REMOTE=true truevoly/oracle-12c
本语句会将我Mac电脑的桌面的dockerV文件夹作为一个数据卷挂载在创建的容器上,方便我后期来存放大容量的dmp文件. 自从我已经成功创建出来一个ID是 ce192577298d 的容器。
docker exec -it ce192577298d /bin/bash
su oracle
在 /u01/app/oracle/ 文件夹下创建一个 oracle_test 文件夹(该文件夹是为了存放之后创建用户时创建的附属文件)。
mkdir oracle_test
- 进入xe文件夹随后进入dba模式
- 进入dba模式
cd $ORACLE_HOME
bin/sqlplus / as sysdba
创建一个大小足以覆盖dmp的大小的tablespace表空间
create tablespace trunk datafile '/u01/app/oracle/oracle_test/trunks.dbf' size 25000M;
create user cox identified by cox123456 default tablespace trunk;
grant connect,resource to cox;
grant dba to cox;//授予dba权限后,这个用户能操作所有用户的表
使用Navicat 链接 cox用户的数据库。 然后再 容器内部执行如下命令进行数据导入
imp system/oracle file=/Users/qinglutaxue/Desktop/dockerV/ZHOUKOU3_MX.dmp buffer=10240000 commit=yes tables=YBMX_ZHOUKOU3 touser=cox ignore=y
但是可能会提示import server 或者 import client 的编码不一致的情况。所以需要对数据库的编码进行修改。参考如下
|