Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

目录

 

一、安装docker

二、下载镜像

三、启动镜像

四、进入镜像,设置数据库

五、使用navicat连接Oracle

六、导入dmp文件

七、导出容器为新镜像到本地仓库


​​​​​​​

一、安装docker

    Docker有点类似虚拟机,每个镜像就相当于保存好的虚拟机文件你可以自己导入使用。

yum install docker

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

docker的启动与关闭

[[email protected] mapper]# systemctl start docker.service

[[email protected] mapper]# systemctl stop docker

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

为了下一步pull镜像能更快,换上阿里的镜像,和maven一样,下面的是个人的源不保证未来一定能使用,可以去阿里云注册账号获取自己的源。

[[email protected] mapper]# vi /etc/docker/daemon.json

 

{

"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]

}

 

重启docker

[[email protected] mapper]# systemctl start docker.service

 

二、下载镜像

 

寻找Oracle镜像

docker search oracle

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

下载镜像

docker pull docker.io/sath89/oracle-12c

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

完成后输入

docker images

可以查看自己的本地镜像

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

三、启动镜像

-d代表后台,--name为容器的名字 -p为端口映射 -v是将宿主机的/usr/local/data_temp 目录映射到容器内/home/oracle/data_temp

 

docker run -d --name oracle12c -p 1521:1521 -v /usr/local/data_temp:/home/oracle/data_temp sath89/oracle-12c

系统会返回给你一串id,这时候不能急着进入下一步,因为它其实还在后台进行

 

docker logs -f a866c06afa0d302812dc9f2bc4a5a84ffdfdca90307c187381c2452cd759f53b

查看日志,直到他提示出了:)才代表运行完成了

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

四、进入镜像,设置数据库

 

查看所有容器类似查看所有虚拟机

docker ps -a 复制刚刚启动的容器id

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

进入容器中

docker exec -it a866c06afa0d /bin/bash

可以看到主机名从hxslave2变为a886c06a,成功进入容器

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

切换为Oracle用户,网上那些id密码都连不上数据库的话只能这样用本地管理员身份进入

[email protected]:/# su oracle

[email protected]:/$ $ORACLE_HOME/bin/sqlplus / as sysdba

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

修改system密码为oracle

alter user system identified by oracle;

修改sys密码为sys

alter user sys identified by sys;

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

创建一个表空间

create tablespace test1 datafile '/u01/app/oracle/oradata/xe/test1.dbf' size 100M reuse autoextend on next 50M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);

创建test1用户,密码test1,表空间为上面创建的test1,设置临时表为TEMP

create user test1 identified by test1 default tablespace test1  temporary tablespace TEMP;

 

数据库设置基本完成

 

五、使用navicat连接Oracle

 Navicat的安装配置,连接Oracle要修改 OCI文件

 https://blog.****.net/weixin_42129270/article/details/82048610

 

查看自己数据库的服务名,记下来

select name from v$database;

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

打开navicat新建Oracle连接

 

填写ip端口,修改服务名为自己的

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

六、导入dmp文件

 

之前启动时候挂载了文件夹到容器中,将需要的文件上传到之前设定的位置,进入容器

 

创建导入需要的表空间,根据实际需求选择,如果数据过大navicat可能会卡死,建议进入docker中用命令行操作

CREATE TABLESPACE "SPECARDINFO_TS" DATAFILE '/u01/app/oracle/oradata/xe/SPECARDINFO_TS' SIZE 10 G AUTOEXTEND ON NEXT 1 G MAXSIZE UNLIMITED;

 

如果数据要求比较大,将临时表也扩大,不然可能会报错

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

开始导入test1/test1 为账号密码

imp test1/test1 file=/home/oracle/data_temp/spimg.dmp  full=y ignore=y buffer=20480000;

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

导入完成后,表就在该用户的位置

Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像

 

七、导出容器为新镜像到本地仓库

 a866c06afa0d 为容器id, newOracle为新镜像的名字

Docker commit  a866c06afa0d newOracle

https://blog.****.net/qmw19910301/article/details/88070159