Oracle Database 23c 是 Oracle 最新的数据库版本,它带来了许多新特性和性能改进。
对于开发者来说,Oracle 提供了一个免费的开发者版,
可以通过 Docker 容器轻松安装和使用。以下是详细的安装和使用指南。
-
安装 Docker
在开始之前,请确保你的系统上已经安装了 Docker。
[root@shawnyan ~ 00:06:02]$ docker --version
Docker version 26.0.0, build 2ae903e
-
拉取 Oracle 23c 免费开发者版镜像
打开终端,使用以下命令从 Oracle 容器注册中心拉取最新的 Oracle 23c 免费开发者版镜像:
[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 空間。
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% /
-
启动 Oracle 23c 容器
使用以下命令启动 Oracle 23c 容器:
docker run -d --name ora23c -h shawnyan \
-p 1521:1521 \
container-registry.oracle.com/database/free:latest
參數含義:
-
-d 表示在后台运行容器。 -
--name 为容器指定一个名称。 -
-h 设置容器的主机名。 -
-p 将容器内部的端口映射到宿主机的端口(Oracle 默认的数据库端口是 1521)。
-
查看容器狀態
啓動容器后,查看容器狀態:
[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
可以通过运行以下命令来查看容器的启动日志:
[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
-
設定密碼
使用 setPassword.sh
脚本,對賬戶密碼進行修改。
[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
-
连接到数据库
可以使用 SQL*Plus 工具连接到数据库。
[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
-
數據庫開發
在啓動容器時,已將數據庫端口映射到宿主機上,監聽 1521 端口。
[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。
連接成功后,查看數據庫版本信息。
-
新特性驗證
這裏簡單驗證兩個新功能:
(1) 不带 FROM 子句的 SELECT 查询
SQL> select 1;
1
----------
1
SQL> select sysdate;
SYSDATE
---------
25-MAR-24
(2) DDL 支持 IF EXISTS 判断
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. --
如果这篇文章为你带来了灵感或启发,就帮忙点『赞』or『在看』or『转发』吧,这对我非常重要,感谢!(๑˃̵ᴗ˂̵)
本文由 mdnice 多平台发布