安装和使用 Oracle Database 23c 容器鏡像

alt

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

alt

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

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

  1. 安装 Docker

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

[root@shawnyan ~ 00:06:02]$ docker --version
Docker version 26.0.0, build 2ae903e
  1. 拉取 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% /
  1. 启动 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)。
  1. 查看容器狀態

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

[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
  1. 設定密碼

使用 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
  1. 连接到数据库

可以使用 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

  1. 數據庫開發

在啓動容器時,已將數據庫端口映射到宿主機上,監聽 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。

alt

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

alt
  1. 新特性驗證

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

(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. --

alt

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

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/781534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024 年多链代币开发对您的业务有何好处

2024 年,多链代币开发将成为寻求增强数字化影响力并释放区块链领域新机遇的企业的关键战略。通过利用多个区块链,公司可以显着提高其代币的可扩展性、互操作性和安全性。这种方法不仅提高了交易速度并降低了费用,还使企业能够利用更广泛的用户…

深度学习入门简单实现一个神经网络

实现一个三层神经网络 引言测试数据 代码 引言 今天我们实现一个简单的神经网络 俩个输入神经元 隐藏层两个神经元 一个输出神经元 激活函数我们使用sigmoid 优化方法使用梯度下降 我们前期准备是需要把这些神经元的关系理清楚 x1:第一个输入 x2:第二个…

C#手术麻醉系统源码 大型医院手麻系统4大需求是什么?

C#手术麻醉系统源码 大型医院手麻系统4大需求是什么? 手术麻醉临床信息系统有着完善的临床业务功能,能够涵盖整个围术期的工作,能够采集、汇总、存储、处理、展 现所有的临床诊疗资料。通过该系统的实施,能够规范手麻科的工作流程…

Matlab-写入mhd和raw医学图像处理格式文件

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 mhd和raw是什么? MHD(MetaImage)和RAW(Raw Image Data)是用于医学图像…

【测试工具】JMeter接口测试的简单使用

事先声明:博主的JMeter是3.3版本的,可能和最新版本的操作有些许差别 测试前的准备工作 1、先添加一个线程组:右击“测试计划”,点击“添加”—》“Threads(Users)”—》“线程组” 2、再添加一个HTTP请求,右击“线程…

基于Hive大数据分析springboot为后端以及vue为前端的的民宿系

标题基于Hive大数据分析springboot为后端以及vue为前端的的民宿系 本文介绍了如何利用Hive进行大数据分析,并结合Spring Boot和Vue构建了一个民宿管理系统。该民民宿管理系统包含用户和管理员登陆注册的功能,发布下架酒店信息,模糊搜索,酒店详情信息展示,收藏以及对收藏的…

Pillow教程03:图像处理的基本步骤+分离split+合并merge+混合blend+composite遮罩

--------------Pillow教程集合--------------- Python项目18:使用Pillow模块,随机生成4位数的图片验证码 Python教程93:初识Pillow模块(创建Image对象查看属性图片的保存与缩放) Pillow教程02:图片的裁剪…

烫烫烫手的结构体大小计算来咯,很烫哦,慢慢消化。自定义类型(一)

emmm,在这炎热的夏天在宿舍吹着空调写着博客也是一件不错的事呢,今天就来来好好盘一下C语言中的自定义类型。 常常会回顾努力的自己,所以要给自己的努力留下足迹。 为今天努力的自己打个卡,留个痕迹吧 2024.03.29 小闭 目录 …

C++项目——集群聊天服务器项目(九)客户端异常退出业务

服务器端应检测到客户端是否异常退出,因此本节来实现客户端异常退出,项目流程见后文 一、客户端异常退出业务流程 (1)在业务模块定义处理客户端异常退出的函数 (2)集群聊天服务器项目(八)提到…

为什么在Python中总是使用【字典】这种类型呢?

你好,我是安然无虞。 文章目录 创建字典新增字典元素update 方法 删除字典元素pop 方法popitem 方法 查找字典元素in 和 in not 操作符get 方法thisdict[key] 修改字典元素遍历字典元素for循环遍历keys方法values方法items方法 合并字典字典中的key 字典常用接口汇…

网际协议 - IP

文章目录 目录 文章目录 前言 1 . 网际协议IP 1.1 网络层和数据链路层的关系 2. IP基础知识 2.1 什么是IP地址? 2.2 路由控制 3. IP地址基础知识 3.1 IP地址定义 3.2 IP地址组成 3.3 IP地址分类 3.4 子网掩码 IP地址分类导致浪费? 子网与子网掩码 3.5 CIDR与…

自己动手用ESP32手搓一个智能机器人:ESP32-CAM AI Robot

目录 介绍 硬件需求 软件需求 步骤 总结 源码下载 介绍 ESP32-CAM是一款集成了Wi-Fi和蓝牙功能的微控制器模块,同时还集成了摄像头接口,使其成为一个非常适合构建智能机器人的选择。在本项目中,我将向您展示如何使用ESP32-CAM模块构建…

数据运营分析-详解

一、指标与指标体系 指标体系就是业务逻辑的框架,也是思考业务逻辑的第一步 案例: 老板,我负责的用户活跃,主要考察每天启动产品的注册用户数量,整体来看,每月活跃保持7.3%的增长,是因为渠道团队的拉新活动带来很多新增注册用户,占每月活跃用户的40%,新一年会继续沿…

消息队列的七种经典应用场景

在笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。 在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 。 这篇文章,笔者结合自己的真实经历,和大家分享…

Linux项目自动化构建工具-make/ makefile及其应用:多文件编写第一个linux程序:进度条(懒人学习必备博文!!!)

目录 1.前言--make/makefile的引入 2.快速上手make/makefile---自动化构建 3.关于依赖关系和依赖方法 4.自动化清理 为什么我们执行编译的时候,make一下就好,清理却要使用make clean? 5. make/makefile是如何知道当前目录下可执行文件是否为最新 6.文件…

express实现用户登录和注册接口

目录 1 创建数据库2 连接数据库3 集成ORM库4 创建业务逻辑5 创建路由7 测试接口总结 我们在编写后端接口的时候操作数据库是一种常见的功能需求,express本身并不提供直接操作数据库的能力,需要借助第三方库来操作数据库,本篇讲解一下软件开发…

【二叉树】Leetcode 543. 二叉树的直径【简单】

二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例1: 输入:root [1,2…

基于SpringBoot + Vue实现的在线装修管理系统设计与实现+毕业论文

介绍 系统包含用户、装修队、管理员三个角色 管理员: 管理员管理:管理其他管理员的账号和权限,确保系统管理的层次化和安全性。 装修队管理:审核装修队的资质,管理装修队的人员信息,监控工程进度&#xff…

elementUI this.$msgbox msgBox自定义 样式自定义 富文本

看这个效果是不是很炫?突出重点提示内容,对于用户交互相当的棒! 下来说说具体实现: let self = this const h = self.$createElement; this.$msgbox({title: null,message: h("p", {style: "margin-top:10px"}, [h("i", {class: "el-i…

命名空间【C++】(超详细)

文章目录 命名空间的概念命名空间的定义命名空间定义的位置作用域每一个命名空间都是一个独立的域作用域符:: 编译器找一个变量/函数等的定义,寻找域的顺序为什么要有命名空间?1.解决库与程序员定义的同名的重定义问题2.解决程序员…