Docker安装Oracle+Navicat连接Oracle+大数据Dmp文件导入Oracle+Docker保存镜像
目录
一、安装docker
Docker有点类似虚拟机,每个镜像就相当于保存好的虚拟机文件你可以自己导入使用。
yum install docker
docker的启动与关闭
[[email protected] mapper]# systemctl start docker.service
[[email protected] mapper]# systemctl stop 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 pull docker.io/sath89/oracle-12c
完成后输入
docker images
可以查看自己的本地镜像
三、启动镜像
-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 ps -a 复制刚刚启动的容器id
进入容器中
docker exec -it a866c06afa0d /bin/bash
可以看到主机名从hxslave2变为a886c06a,成功进入容器
切换为Oracle用户,网上那些id密码都连不上数据库的话只能这样用本地管理员身份进入
[email protected]:/# su oracle
[email protected]:/$ $ORACLE_HOME/bin/sqlplus / as sysdba
修改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;
打开navicat新建Oracle连接
填写ip端口,修改服务名为自己的
六、导入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;
如果数据要求比较大,将临时表也扩大,不然可能会报错
开始导入test1/test1 为账号密码
imp test1/test1 file=/home/oracle/data_temp/spimg.dmp full=y ignore=y buffer=20480000;
导入完成后,表就在该用户的位置
七、导出容器为新镜像到本地仓库
a866c06afa0d 为容器id, newOracle为新镜像的名字
Docker commit a866c06afa0d newOracle
https://blog.****.net/qmw19910301/article/details/88070159