Docker 安装 Oracle 11g 数据库
前言
Docker 镜像说明
本文使用了 DockerHub 平台上的 Oracle 11g 镜像,基于 Ubuntu 18.04 LTS 系统,数据库版本是 Oracle Express Edition 11g Release 2 (11.2.0.2.0)。
Oracle 各版本介绍
在 Oracle 数据库的发展中,数据库一直处于不断升级状态,一共有以下几个版本:
Oracle 8i
:Oracle 8i 表示 Oracle 正式向 Internet 上发展,其中 i 表示就是 internet。Oracle 9i
:Oracle 8i 是一个过渡版本,Oracle 9i 是一个更加完善的数据库版本。Oracle 10g
:g 表示 grid,代表网格的意思,即这种数据库采用网格计算的方式进行操作。Oracle 11g
:是 Oracle 10g 的稳定版本,Oracle 11g 是目前使用最广泛的版本。Oracle 12c
:是 Oracle 2013 年推出的数据库版本,c 代表 Cloud,代表云计算的意思,同时 Oracle 12c 支持大数据的处理能力。Oracle 18c、Oracle 19c
是对 12c 版本的完善和发展。
快速开始
Docker 镜像拉取
1 | # docker pull oracleinanutshell/oracle-xe-11g |
Docker 启动容器
- 启动容器
1 | # docker run -d -p 1521:1521 --name oracle-11g oracleinanutshell/oracle-xe-11g |
- 允许远程连接
1 | # docker run -d -p 1521:1521 --name oracle-11g -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g |
- 出于性能考虑,启动容器时可能需要禁用磁盘异步 IO
1 | # docker run -d -p 1521:1521 --name oracle-11g -e ORACLE_DISABLE_ASYNCH_IO=true oracleinanutshell/oracle-xe-11g |
- 使用默认密码启用 XDB 用户(
xdb
)
1 | # docker run -d -p 1521:1521 --name oracle-11g -e ORACLE_ENABLE_XDB=true oracleinanutshell/oracle-xe-11g |
- 启动 APEX 用户
1 | # docker run -d -p 1521:1521 --name oracle-11g -p 8080:8080 oracleinanutshell/oracle-xe-11g |
1 | # 浏览器访问 http://localhost:8080/apex/apex_admin 后,可以使用以下账号登录 |
对于最新的 APEX(18.1)用户,请先拉取 oracleinanutshell/oracle-xe-11g:18.04-apex
镜像
1 | # docker run -d -p 1521:1521 --name oracle-11g -p 8080:8080 oracleinanutshell/oracle-xe-11g:18.04-apex |
1 | # 浏览器访问 http://localhost:8080/apex/apex_admin 后,可以使用以下账号登录 |
Docker-Compose 启动容器
1 | version: '3' |
Oracle 连接密码
默认情况下,密码验证是禁用的(密码永不过期),可以使用以下配置信息连接 Oracle 数据库
1 | hostname: localhost |
提示
SYS
和 SYSTEM
用户的默认密码都是 oracle
。
Oracle 连接测试
- 连接 Docker 容器
1 | # docker exec -it oracle-11g /bin/bash |
- 切换到 SQLPlus 进行操作
1 | # sqlplus /nolog |
- 连接 Oracle 11g 数据库
1 | # 连接Oracle数据库 |
- 创建表和插入测试数据
1 | -- 创建表 |
Java 连接 Oracel 数据库
下载 Oracle 驱动包
由于 Oracle 授权的问题,无法从 Maven 中央仓库下载 Oracle 的数据库驱动包,Oracle 11g 的数据库驱动包可以 点击这里 下载得到。
Maven 引入 Oracle 驱动包
将 Oralce 数据库驱动包存放到项目中的 lib
目录下,然后使用以下方式让 Maven 引入驱动包依赖。当然也可以使用其他方式引入,例如直接使用 Maven 命令 mvn install
将驱动包安装到本地仓库,接着按照平时的方式直接引入驱动包依赖即可,这里不再累述。
1 | <dependency> |
配置 Oracle 的 JDBC 连接信息
1 | oracle.jdbc.OracleDriver = |
提示
更多关于 Java 连接 Oracle 数据库的教程内容,可以查看教程 《MyBatis-Plus 中 如何生成 Oralce 的主键》。