【转】Linux(centos)下使用Docker安装Oracle_11g

话不多说
开始记录docker拉取阿里的oracle11g 镜像并进行配置,用pl/sql 可以登录为最终结果

navicat连接是在最后一步
参考:
https://blog.csdn.net/zwx521515/article/details/77982884

①、开始拉取镜像-执行命令:

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

下载的过程需要花很长时间,等待吧,喝杯咖啡,休息一会!(镜像6.8G)

下载完成后 查看镜像: docker images
在这里插入图片描述
可以看到已经下载好了

② 、创建容器

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

这里说一下,命令后面的地址一定要是你下载的镜像地址也就是你拉取镜像名字,否则会出现名字已存在等问题!

如果创建成功能会返回容器id

③、启动容器

docker start oracle11g

在这里插入图片描述

④、进入镜像进行配置

1、 docker exec -it oracle11g bash
在这里插入图片描述
2、进行软连接

sqlplus /nolog

在这里插入图片描述
发现没有这个命令,用不了

3、切换到root 用户下

su root
密码:helowin(这里的密码是固定的,配置后可以自己修改)

在这里插入图片描述
注意这里还是在容器当中。。有朋友退去了。。。。。。。

4、编辑profile文件配置ORACLE环境变量

vi /etc/profile

并在文件最后添加如下命令

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

【转】Linux(centos)下使用Docker安装Oracle_11g_第1张图片
保存并退出 :wq

5、创建软连接

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

6、切换到oracle 用户
这里还要说一下,一定要写中间的内条 - 必须要,否则软连接无效
在这里插入图片描述

⑤ 、登录sqlplus并修改sys、system用户密码

sqlplus /nolog
conn /as sysdba

【转】Linux(centos)下使用Docker安装Oracle_11g_第2张图片
接着执行下面命令

alter user system identified by system;
alter user sys identified by sys;

也可以创建用户

create user test identified by test;

并给用户赋予权限

grant connect,resource,dba to test;

下面可能会出现的坑,如果没有遇到,就忽略!

注意了这里的坑开始出现了,当执行修改密码的时候出现

database not open

提示数据库没有打开,不急按如下操作
输入:alter database open;
注意了,这里也许还会提示 :ORA-01507: database not mounted

不急!继续!
【转】Linux(centos)下使用Docker安装Oracle_11g_第3张图片
=========== 解决方法===========

输入:alter database mount;
输入 :alter database open;
【转】Linux(centos)下使用Docker安装Oracle_11g_第4张图片
然后就可执行 修改数据库密码的命令了。

改完之后输入:
修改密码的过期时间,默认是180,这里修改为永不过期

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

刷新下表
exit 是退出 sql 软连接
【转】Linux(centos)下使用Docker安装Oracle_11g_第5张图片

⑥、使用pl/sql 进行连接 第7步是navicat连接的在最后

之前我们把端口映射到了1521上,所以我们需要进行配置 tnsnames.ora

几个朋友不知道ora文件在哪,所以添加了这一步


docker_oracle11 =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = orcl)
   )
)

打开pl/sql 进行登录 :提示监听程序当前无法识别连接描述符中请求的服务
【转】Linux(centos)下使用Docker安装Oracle_11g_第6张图片
【转】Linux(centos)下使用Docker安装Oracle_11g_第7张图片
这时我们需要去看一下oracle 的 lsnrctl 服务
【转】Linux(centos)下使用Docker安装Oracle_11g_第8张图片
看到这两个了么,任选其一,修改 tnsnames.oraservice_name=helowinXDB

docker_oracle11 =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = helowinXDB)
   )
)

用之前创建的用户

account: test
password: test

欧克,登录成功。
【转】Linux(centos)下使用Docker安装Oracle_11g_第9张图片

第7步是navicat连接

有几个朋友用的是navicat连的所以故此添加这一步
打开navicat后(navicat12不用配置oci.dll文件了)
直接新建连接
【转】Linux(centos)下使用Docker安装Oracle_11g_第10张图片
【转】Linux(centos)下使用Docker安装Oracle_11g_第11张图片

你可能感兴趣的:(Linux学习)