docker拉去oracle镜像配置,导入DMP文件,镜像打包

镜像

使用如下命令拉取oracle11g镜像

docker pull
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

拉取完毕后可以使用docker images查看镜像文件

创建容器

docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

启动容器

docker start oracle11g

进入镜像进行配置

docker exec -it oracle11g bash

使用docker exec -it oracle11g bash进入容器

此时使用sqlplus命令发现不能使用,所以先切换root用户,密码helowin

然后vi /etc/profile 编辑profile配置oracle环境变量,在文件最下方加入

 export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
    export ORACLE_SID=helowin
 export PATH=$ORACLE_HOME/bin:$PATH

创建软连接

 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

切换到oracle 用户

**这里还要说一下,一定要写中间的内条 - 必须要,否则软连接无效
登录sqlplus并修改sys、system用户密码

sqlplus /nolog

 conn /as  sysdba

接着执行下面命令

 alter   user system identified by system;

  alter  user sys identified by sys;

也可以创建用户

 create user test identified   by test;

并给用户赋予权限 grant connect,resource,dba to test;

ALTER PROFILE
DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

exit 是退出sql 软连接

导入dmp文件

创建临时表空间

SQL> create temporary tablespace
user_temp tempfile

 '\usr\oracle\oracledata\user_temp.dbf' size
50m 

 autoextend on next 50m maxsize 2048m extent
management local; 

创建表空间

SQL> create tablespace user_data logging datafile 

'\usr\oracle\oracledata\user_data.dbf' size 50m

 autoextend on next 50m
maxsize 2048m extent management local;

2.分配表空间

创建用户并分配表空间

SQL> create user user identified by password 

default tablespace user_data 

temporary tablespace user_temp;

修改用户表空间

SQL> alter user user default tablespace other_data temporary
tablespace other_temp;

重命名表空间

SQL> alter tablespace user_data rename to new_user_data; 

3.创建DIRECTORY

首先创建directory

 SQL> create or replace
directory dump_dir as '\usr\oracle\dump\dir'

然后将该DIRECTORY授权给用户

 SQL> grant read,write on
directory dump_dir to user ;

退出sqlplus后,创建目录

mkdir /usr/oracle/dump/dir

修改备份目录的属主和属组

chown -R oracle:oinstall /usr/oracle/dump/dir

导入dmp文件

docker cp ddm.dmp helowin_oracle11g:
/usr/oracle/dump/dir

拷贝完毕后,就可以进行导入了,首先进入容器shell docker exec -it helo_oracle11g bash,然后切换oracle用户su - oracle切记别忘了这个-然后执行impdp命令

使用impdp user/password DIRECTORY=dump_dir
DUMPFILE=you_dmp_file.dmp FULL=y;

命令时会报 操作不存在的错误

我采用的是下方法

先在/usr/oracle/dump/dir目录下创建ddm.log文件

imp test/test  file = /usr/oracle/dump/dir/ddm.dmp 

log = /usr/oracle/dump/dir/ddm.log
full = y

将容器打包成镜像

docker commit -a "runoob.com" -m

“my apache” 容器名称或id 打包的镜像名称:标签

OPTIONS说明:

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值