一键启动 Oracle Database 23ai Free

一键启动 Oracle Database 23ai Free

ShawnYan Lv.6

副标题:安装和使用 Oracle Database 23c 容器鏡像

Oracle Database 23c 是 Oracle 最新的数据库版本,它带来了许多新特性和性能改进。

23c.jpg

对于开发者来说,Oracle 提供了一个免费的开发者版,

可以通过 Docker 容器轻松安装和使用。以下是详细的安装和使用指南。

  1. 安装 Docker

在开始之前,请确保你的系统上已经安装了 Docker。

1
2
[root@shawnyan ~ 00:06:02]$ docker --version
Docker version 26.0.0, build 2ae903e
  1. 拉取 Oracle 23c 免费开发者版镜像

打开终端,使用以下命令从 Oracle 容器注册中心拉取最新的 Oracle 23c 免费开发者版镜像:

1
2
3
4
5
6
7
8
9
10
11
[root@shawnyan ~ 00:20:45]$ docker pull container-registry.oracle.com/database/free:latest
latest: Pulling from database/free
089fdfcd47b7: Pull complete
43c899d88edc: Pull complete
47aa6f1886a1: Pull complete
f8d07bb55995: Downloading [=============================> ] 1.262GB/2.167GB
c31c8c658c1e: Download complete
b7d28faa08b4: Download complete
1d0d5c628f6f: Download complete
db82a695dad3: Download complete
25a185515793: Download complete

注意:

需要確保本地磁盤空間足夠,至少需要 9 G 空間。

1
2
3
4
5
Filesystem               Size  Used Avail Use% Mounted on
# before
/dev/mapper/centos-root 67G 9.2G 58G 14% /
# after
/dev/mapper/centos-root 67G 18G 50G 27% /
  1. 启动 Oracle 23c 容器

使用以下命令启动 Oracle 23c 容器:

1
2
3
docker run -d --name ora23c -h shawnyan \
-p 1521:1521 \
container-registry.oracle.com/database/free:latest

參數含義:

  • -d 表示在后台运行容器。
  • –name 为容器指定一个名称。
  • -h 设置容器的主机名。
  • -p 将容器内部的端口映射到宿主机的端口(Oracle 默认的数据库端口是 1521)。
  1. 查看容器狀態

啓動容器后,查看容器狀態:

1
2
3
[root@shawnyan ~ 00:29:16]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d50083dd7cdd container-registry.oracle.com/database/free:latest "/bin/bash -c $ORACL…" 5 seconds ago Up 4 seconds (health: starting) 0.0.0.0:1521->1521/tcp, :::1521->1521/tcp ora23c

可以通过运行以下命令来查看容器的启动日志:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@shawnyan ~ 00:30:40]$ docker logs -f ora23c
Starting Oracle Net Listener.
Oracle Net Listener started.
Starting Oracle Database instance FREE.
Oracle Database instance FREE started.

The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
QPI: opatch file present, opatch
:
QPI: qopiprep.bat file present
2024-03-25T16:29:41.791016+00:00
PDB$SEED(2):Opening pdb with Resource Manager plan: DEFAULT_PLAN
FREEPDB1(3):Autotune of undo retention is turned on.
2024-03-25T16:29:42.972403+00:00
FREEPDB1(3):Opening pdb with Resource Manager plan: DEFAULT_PLAN
Completed: Pluggable database FREEPDB1 opened read write
Completed: ALTER DATABASE OPEN
2024-03-25T16:29:45.388545+00:00
===========================================================
Dumping current patch information
===========================================================
No patches have been applied
===========================================================
2024-03-25T16:30:23.457562+00:00
FREEPDB1(3):Resize operation completed for file# 13, fname /opt/oracle/oradata/FREE/FREEPDB1/sysaux01.dbf, old size 317440K, new size 327680K
2024-03-25T16:30:23.484128+00:00
FREEPDB1(3):Resize operation completed for file# 13, fname /opt/oracle/oradata/FREE/FREEPDB1/sysaux01.dbf, old size 327680K, new size 337920K
  1. 設定密碼

使用 setPassword.sh 脚本,對賬戶密碼進行修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@shawnyan ~ 00:35:07]$ docker exec -it ora23c ./setPassword.sh 1
The Oracle base remains unchanged with value /opt/oracle

SQL*Plus: Release 23.0.0.0.0 - Production on Mon Mar 25 16:35:16 2024
Version 23.3.0.23.09

Copyright (c) 1982, 2023, Oracle. All rights reserved.


Connected to:
Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.3.0.23.09

SQL>
User altered.

SQL>
User altered.

SQL>
Session altered.

SQL>
User altered.

SQL> Disconnected from Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.3.0.23.09
  1. 连接到数据库

可以使用 SQL*Plus 工具连接到数据库。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@shawnyan ~ 00:35:16]$ docker exec -it ora23c sqlplus sys@localhost:1521/FREE as sysdba

SQL*Plus: Release 23.0.0.0.0 - Production on Mon Mar 25 16:37:13 2024
Version 23.3.0.23.09

Copyright (c) 1982, 2023, Oracle. All rights reserved.

Enter password:

Connected to:
Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.3.0.23.09

SQL> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 FREEPDB1 READ WRITE NO
SQL>

可以看到已經連接成功,Oracle 數據庫版本號為 23.3.0,默認創建了讀寫 PDB: FREEPDB1

  1. 數據庫開發

在啓動容器時,已將數據庫端口映射到宿主機上,監聽 1521 端口。

1
2
3
[root@shawnyan ~ 00:28:17]$ ss -antpl | grep 1521
LISTEN 0 128 *:1521 *:* users:(("docker-proxy",pid=2716,fd=4))
LISTEN 0 128 [::]:1521 [::]:* users:(("docker-proxy",pid=2722,fd=4))

所以,可以使用 Oracle SQL Developer 連接 Oracle。

sqldev23cconn.png

連接成功后,查看數據庫版本信息。

sqldev23c.png
  1. 新特性驗證

這裏簡單驗證兩個新功能:

(1) 不带 FROM 子句的 SELECT 查询

1
2
3
4
5
6
7
8
9
10
11
SQL> select 1;

1
----------
1

SQL> select sysdate;

SYSDATE
---------
25-MAR-24

(2) DDL 支持 IF EXISTS 判断

1
2
3
4
5
6
7
8
SQL> create table if not exists t (id int);

Table created.

SQL> desc t;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(38)

簡單做個小結,

通過以上步驟,你可以轻松地在 Docker 環境中安裝和使用 Oracle Database 23c Free。

這爲開發者提供了一個便捷的平臺來學習和測試 Oracle 數據庫的新特性。

如果你在使用過程中遇到任何問題,可以參閲 Oracle 官方文檔,或尋求 Developer Community 支持。

– END. –

logo.jpg

如果这篇文章为你带来了灵感或启发,就帮忙点『赞』or『在看』or『转发』吧,这对我非常重要,感谢!(๑˃̵ᴗ˂̵)

  • Title: 一键启动 Oracle Database 23ai Free
  • Author: ShawnYan
  • Created at: 2024-03-25 23:00:00
  • Updated at: 2024-03-25 23:00:00
  • Link: https://shawnyan.cn/2024/oracle/oracle-23ai-free-container/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments
On this page