Docker Oracle安装过程记录

开篇废话

    最近一个项目需要测试用的Oracle数据库,但是使用公司资源得经过各种协调,自己电脑上的Oracle早就废了,调试或者重新安装又觉得费时间,总之一大堆理由让我想到了Docker。

为了避免无用社交和节省时间,也为了以后随时都有一个可用的Oracle数据库给我玩,所以有了以下的过程。

安装过程

1 找镜像先去Docker Hub转一下,看看有没有官方的,带有DOCKER CERTIFIED标志的是首选。你需要注册一个Docker Hub账号,登录后搜索Oracle,果然找到了。居然还有Weblogic,有机会也要安装下试试。


Docker Hub 搜索 Oracle

2 这是一个12C的镜像,不过也足够我用的了,点击进去,继续点击“Proceed to Checkout”。虽然Proceed to Checkout翻译为“进入结算”,不过不用担心。跳转到下面的页面后,填写一些个人信息,并且选中前两个条款就好。


填写个人信息&同意条款

3 点击“Get Content” 后,就会来到了安装说明页面。先使用页面右侧的docker命令拉取镜像, 然后再慢慢看文档吧。记得docker pull之前, 先登录 docker login。

docker pull store/oracle/database-enterprise:12.2.0.1


Oracle 12C 镜像拉取命令


4 镜像拉取成功后,就可以启动容器了,文档中说明了镜像的使用方法,我就不翻译了,这里只说一些要点。

启动命令:

docker run -d --name oracle -p 1521:1521 -e DB_SID=orcl -v /opt/oracle/data:/ORCL store/oracle/database-enterprise:12.2.0.1

正常启动过程大约1分钟,STATUS 含有 healthy 字样。


Oracle 正常启动状态

不过,多数可能会报错,用 docker logs 命令来查下日志, 会发现:


Oracle 容器启动报错

这个错误的一些常规解决方法都不行,比如:

1) 设置宿主机映射文件目录权限

2) chcon命令

3) --privileged=true

以上都不好使, 后来去google了一下,在 Github 上找到了一个关于 Oracle 镜像的 Issue,“Permission denied error for oracle/database:12.2.0.1-se2 container”。阅读后发现了一个留言:


宿主机目录权限问题解决方法


竟然是这样子, 好, 执行下试试吧。

chown -R 54321:54321 /opt/oracle/data

启动成功了!


然后就可以愉快的使用了,根据文档描述,默认用户名 sys 密码 Oradoc_db1。刚才docker run创建的 sid 是 orcl。有了这些就可以配置PL/SQL Developer了。


tnsnames.ora 配置

登录,报错!


PL/SQL Developer 错误信息

这个错误很常见了,检查配置吧。还是打开docker logs日志,会发现这样的信息:


tnsnames.ora 相关日志

原来人家已经告诉咱们怎么配置了,真是太贴心了。修改 SERVICE_NAME 为 orcl.localdomain, 终于PL/SQL Developer 也可以用了。

尾声

Oracle镜像还有个瘦身版的database-enterprise:12.2.0.1-slim,过程一致。

好了,Oracle搭建好了, 可以开始搬砖了。使用过程中的问题会继续记录跟踪的。

追加

虽然 tnsnames.ora 文件中配置的是 SERVICE_NAME=orcl.localdomain,但是在写数据源配置时不能写成下面这种形式:

spring.datasource.url=jdbc:oracle:thin:@192.168.18.152:1521:orcl.localdomain

需要改写成:

spring.datasource.url=jdbc:oracle:thin:@192.168.18.152:1521:orcl

你可能感兴趣的:(Docker Oracle安装过程记录)