使用 docker-compose 部署 oracle19c

目前应该很少有公司再使用 oracle 11g R2 版本了,官方在 2020-12-31 日后就停止支持和维护了,绝大多数公司应该都升级到 oracle 19c 版本了。

因此当前 oracle 数据库中使用最多的版本就是 oracle 19c 了,但是官方对其支持和维护的截止日期是 2026-3-31。

其实即使官方停止技术支持和维护了,我们也还是能够正常使用的,我们绝大多数情况下,也不需要官方的支持和维护服务。

本篇博客介绍如何通过 docker-compose 快速部署 oracle 19c 标准版,以及通过官方的 sql developer 工具进行连接。


一、部署 oracle 19c

我的 CentOS7 虚拟机 ip 地址是 192.168.136.128,已经安装好了 docker 和 docker-compose

创建好数据目录:mkdir -p /data/oracle19c/data

在 /data/oracle19c 目录下创建 docker-compose.yml 文件,结构如下所示:

image

编写 docker-compose.yml 文件内容如下:

version: '3.2'
services:
  oracle19c:
    image: registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
    container_name: oracle19c
    restart: always
    ports:
      - "1521:1521"
    environment:
      ORACLE_SID: orcl
      ORACLE_PDB: orclpdb
      ORACLE_PWD: Jobs@666
      ORACLE_EDITION: standard
      ORACLE_CHARACTERSET: AL32UTF8
    volumes:
      - /data/oracle19c/data:/opt/oracle/oradata
      - /etc/localtime:/etc/localtime

容器内的 oracle 数据存放地址 /opt/oracle/oradata,需要映射到外面的 /data/oracle19c/data 目录

之所以将外部的 /etc/localtime 映射到容器内,主要是因为默认情况下容器内的时区是 utc 时区,我们外部的时区一般是北京时区。

如果不进行映射 /etc/localtime 文件的话,数据库自动产生的时间都是 utc 时间,比北京时间少 8 个小时。

最后在 oracle19c 目录下,执行 docker-compose up -d 即可,然后使用 docker-compose logs -f 查看实时日志信息。

启动服务的速度会比较慢,需要的时间比较长,当看到如下日志信息时,表示已经部署成功

image


二、使用官方提供的客户端工具连接oracle19c

虽然使用 navicat(我使用的版本是 16)也可以连接 oracle,但是在创建新用户时总是报错,下载官方提供的 SQL Developer 工具,连接 oracle 数据库后,进行各种操作都是正常的。

SQL Developer 工具是免费的,而且也提供的中文版,个人感觉还是挺好用的。当然有的人喜欢第三方提供的 PL/SQL Developer 工具,这个是收费的英文版,网上也提供破解的中文版,看自己的个人喜好吧。

oracle 官方提供的 SQL Developer 的下载地址为:https://www.oracle.com/database/sqldeveloper/technologies/download

image

无论你的电脑上是否安装了 jdk,建议就下载自带 jdk 的 SQL Developer 工具,这样比较方便。

下载后的 SQL Developer 是一个压缩包,绿色版本,只要解压缩后,就可以正常使用。

image

我当前使用的最新版本是 23.1.1,启动初始化界面如上图所示,然后可以添加 oracle 连接,访问我们部署好的 oracle19c 数据库:

image

参照 docker-compose 文件内容 ,两个管理员账号 sys 和 system 的密码都是 Jobs@666

如果使用 sys 超级管理员登录的话,其角色必须要选择 sysdba 或 sysoper,而 system 账号的角色可以使用默认值 normal 进行登录。

参照 docker-compose 文件内容 ,服务名填写 orclpdb 或 orcl 都可以,SID 填写 orcl 也可以,都能成功连接到我们部署的 oracle 19c 数据库。

有关 oracle 19c 如何使用,这里就不介绍了,其实很简单,通过 SQL Developer 工具可视化操作,创建用户、表、编写 sql 语句,都很方便。

posted @ 2024-04-29 22:04  乔京飞  阅读(4397)  评论(0编辑  收藏  举报