Proxmox VE 8 试装Oracle 23c

作者:田逸(formyz)

Oracle 当前的最新版本是23c,虽然官方网站下载不了它的正式版本,但是却提供了一个性能受限的免费版本“Oracle Database 23.3 Free”(存储容量受限、内存使用受限)。这里就只好用这个免费的版本来做测试,免费的版本能正常部署,那么将来的正式版本的部署也不在话下。

Oracle 23C 提供如下几种安装方式:

  • Docker容器。通过 docker pull container-registry.oracle.com/database/free:latest,直接从 Oracle Container Registry 拉取容器映像。
  • Oracle VM VirtualBox。将 23c Free 的 .ova 文件导入您的本地 Oracle VM VirtualBox 设置。
  • 包管理器。配置软件仓库源,用包管理器”dnf/yum”进行在线安装,或者将RPM包下载到兼容性好的操作系统发行版(比如Oracle Linux 8、Rocky 8),再用包管理器(yum或者rpm)进行安装。

Oracle 23c 既然可以在Oracle的虚拟机平台VirtualBox安装,那么将其安装到Proxmox VE(以下简称PVE)也应该不是问题。

准备工作

浏览器登录PVE 8 Web管理后台,创建一个虚拟机,分配好资源,可以不分配硬盘、不使用任何安装介质,一个创建好的虚拟机配置如下图所示。

记下虚拟机的ID号“104”,待用。

虚拟机恢复

SSH客户端登录PVE 8 宿主系统Debian 12,用wget或者curl下载VirtualBox镜像文件“Oracle_Database_23c_Free_Developer_Appliance.ova”,官方的下载地址为https://download.oracle.com/otn_software/virtualbox/dd/Oracle_Database_23c_Free_Developer_Appliance.ova。这是一个压缩归档文件,用下面的命令进行解包。

tar xvf  Oracle_Database_23c_Free_Developer_Appliance.ova

tar xvf  Oracle_Database_23c_Free_Developer_Appliance.ova

命令执行完成后,将生成三个文件,两个以“vmdk”为后缀的虚拟机磁盘镜像文件和一个以“ovf”为后缀的文本文件,如下图所示。

三个文件,仅需对两个磁盘镜像文件进行处理。根据以前部署各种版本Oracle的经验,两个镜像磁盘应该是一个系统盘和一个数据盘(猜想)。

继续在命令行执行下列指令,将第一个磁盘镜像进行格式转换。

qm disk import 104 'Oracle Database 23c Free Developer-disk001.vmdk' local-lvm --format qcow2

qm disk import 104 'Oracle Database 23c Free Developer-disk001.vmdk' local-lvm --format qcow2

解包出来的磁盘镜像文件名中间有空格,执行命令时需要用单引号将其作为一个整体,如果嫌麻烦,可以预先对其重命名,比如简化为“disk001-vmdk”(mv指令)。

数字104为预先创建好的虚拟机的ID号,转换后的格式为qcow2。命令执行过程如下图所示。

重复上述操作,将第二个磁盘镜像“Oracle Database 23c Free Developer-disk001.vmdk”也进行格式转换。操作成功完成后,切换到PVE 8 Web管理后台,在ID为“104”的虚拟机硬件配置里,将增加两块“未使用的磁盘”,如下图所示。

鼠标双击上图“未使用磁盘0”,将磁盘添加到虚拟机,并使其处于可使用状态,如下图所示。

如法炮制,将另外一个“未使用磁盘1”也添加到虚拟机。添加“未使用磁盘”到虚拟机的另一种方式是命令行,对应的指令如下。

root@pve99:~/oracle# qm set 104 --scsi1 local-lvm:vm-104-disk-1

update VM 104: -scsi1 local-lvm:vm-104-disk-1

root@pve99:~/oracle# qm set 104 --scsi2 local-lvm:vm-104-disk-2

update VM 104: -scsi2 local-lvm:vm-104-disk-2

root@pve99:~/oracle# qm set 104 --scsi1 local-lvm:vm-104-disk-1update VM 104: -scsi1 local-lvm:vm-104-disk-1root@pve99:~/oracle# qm set 104 --scsi2 local-lvm:vm-104-disk-2update VM 104: -scsi2 local-lvm:vm-104-disk-2

执行上述命令稍微需要注意的是,选项“scsi”编号不要发生冲突。

PVE 8 Web管理后台,修改目标虚拟机系统引导顺序。因为恢复出来的两个磁盘都是30G,不确定哪一个是系统盘,那么就把两块盘都勾选上,其他无关的引导项排除掉,如下图所示。

切换到虚拟机“104”控制台菜单,单击按钮“Start Now”启动虚拟机。

观察控制台输出,如果没有意外,Oracle Linux Server 8将正常启动,并且是以Oracle用户无密码登录系统。如果系统正常启动,但又无法登录,如下图所示。

不要慌,按组合键“Ctrl + Alt + F2”,输入用户名“root”,默认密码“oracle”,正常进入系统。乘次机会,修改Oracle Linux Server 的网络地址(默认的地址是192.168.122.1)为自己环境的实际地址,重启网络服务,确保系统能被远程SSH客户端连接。

验证Oracle 23c 安装的正确性

先来证实前边的猜想“一个系统盘和一个数据盘”,命令提示符执行“df -h”,果然是如此,系统盘“/dev/sda”,数据盘“/dev/sdb1”挂接到目录“/opt/oracle”,如下图所示。

进入目录”/opt/oracle”,熟悉的目录结构一目了然。

[root@localhost ~]# cd /opt/oracle/

[root@localhost oracle]# ll

total 4

drwxr-x---.  3 oracle oracle     18 Sep 13 19:34 admin

drwxr-x---.  3 oracle oracle     18 Sep 13 19:34 audit

drwxr-xr-x.  4 oracle oracle     31 Sep 13 19:34 cfgtoollogs

drwxrwxr-x. 25 oracle oracle   4096 Sep 13 19:34 diag

drwxr-x---.  3 oracle oracle     18 Sep 13 19:34 oradata

drwxrwx---.  4 oracle oracle     78 Sep 13 19:50 oraInventory

drwxr-xr-x.  3 oracle oinstall   17 Sep 13 19:31 product

drwxr-xr-x.  4 oracle oinstall   32 Sep 13 19:30 userhome

[root@localhost ~]# cd /opt/oracle/[root@localhost oracle]# lltotal 4drwxr-x---.  3 oracle oracle     18 Sep 13 19:34 admindrwxr-x---.  3 oracle oracle     18 Sep 13 19:34 auditdrwxr-xr-x.  4 oracle oracle     31 Sep 13 19:34 cfgtoollogsdrwxrwxr-x. 25 oracle oracle   4096 Sep 13 19:34 diagdrwxr-x---.  3 oracle oracle     18 Sep 13 19:34 oradatadrwxrwx---.  4 oracle oracle     78 Sep 13 19:50 oraInventorydrwxr-xr-x.  3 oracle oinstall   17 Sep 13 19:31 productdrwxr-xr-x.  4 oracle oinstall   32 Sep 13 19:30 userhome

到系统目录“/etc/init.d”下,查看Oracle 23c启动脚本,一共有3个Shell脚本,都以“oracle”命名,如下图所示。

望文生义,手动执行命令“sh oracle-free-23c status”,确认一下它是否为Oracle 23c服务(实例及监听器)的启动脚本,执行过程及输出如下。

[root@localhost init.d]# sh oracle-free-23c status

Status of the Oracle FREE 23c service:

LISTENER status: RUNNING

FREE Database status:   RUNNING

[root@localhost init.d]# sh oracle-free-23c statusStatus of the Oracle FREE 23c service:LISTENER status: RUNNINGFREE Database status:   RUNNING

查看系统进程,有大量以oracle账号启动,以“db_”为前缀运行着的进程(如下图所示),这可初步判断Oracle 实例已经随开机自动启动。

切换到账户oracle,执行下列查看监听器运行情况。

[root@localhost init.d]# su - oracle

[oracle@localhost ~]$ lsnrctl status

LSNRCTL for Linux: Version 23.0.0.0.0 - Production on 21-JAN-2024 04:47:54

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 23.0.0.0.0 - Production

Start Date                21-JAN-2024 04:32:07

Uptime                    0 days 0 hr. 15 min. 47 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Default Service           FREE

Listener Parameter File   /opt/oracle/product/23c/dbhomeFree/network/admin/listener.ora

Listener Log File         /opt/oracle/diag/tnslsnr/localhost/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Services Summary...

Service "0543b3ed61857640e0630100007f0bca" has 1 instance(s).

  Instance "FREE", status READY, has 1 handler(s) for this service...

Service "FREE" has 1 instance(s).

  Instance "FREE", status READY, has 1 handler(s) for this service...

Service "FREEXDB" has 1 instance(s).

  Instance "FREE", status READY, has 1 handler(s) for this service...

Service "freepdb1" has 1 instance(s).

  Instance "FREE", status READY, has 1 handler(s) for this service...

The command completed successfully

[root@localhost init.d]# su - oracle[oracle@localhost ~]$ lsnrctl statusLSNRCTL for Linux: Version 23.0.0.0.0 - Production on 21-JAN-2024 04:47:54Copyright (c) 1991, 2023, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))STATUS of the LISTENER------------------------Alias                     LISTENERVersion                   TNSLSNR for Linux: Version 23.0.0.0.0 - ProductionStart Date                21-JAN-2024 04:32:07Uptime                    0 days 0 hr. 15 min. 47 secTrace Level               offSecurity                  ON: Local OS AuthenticationSNMP                      OFFDefault Service           FREEListener Parameter File   /opt/oracle/product/23c/dbhomeFree/network/admin/listener.oraListener Log File         /opt/oracle/diag/tnslsnr/localhost/listener/alert/log.xmlListening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))Services Summary...Service "0543b3ed61857640e0630100007f0bca" has 1 instance(s).Instance "FREE", status READY, has 1 handler(s) for this service...Service "FREE" has 1 instance(s).Instance "FREE", status READY, has 1 handler(s) for this service...Service "FREEXDB" has 1 instance(s).Instance "FREE", status READY, has 1 handler(s) for this service...Service "freepdb1" has 1 instance(s).Instance "FREE", status READY, has 1 handler(s) for this service...The command completed successfully

从输出可知,监听器是启动了的。

进一步,以Oracle 客户端sqlplus登录,查看实例运行情况。与以前的版本不同的是,Oracle 23c不能用“sqlplus / as sysdba”登录,而是需要用用户名和密码(Oracle 23c免费版本所有账号密码皆为“oracle”,包括Oracle Linux Server 8操作系统密码),完整的登录指令及输出如下。

[oracle@localhost ~]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 23.0.0.0.0 - Production on Sun Jan 21 04:54:08 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> select count(*) from v$session;

  COUNT(*)

----------

        65

[oracle@localhost ~]$ sqlplus sys/oracle as sysdbaSQL*Plus: Release 23.0.0.0.0 - Production on Sun Jan 21 04:54:08 2024Version 23.3.0.23.09Copyright (c) 1982, 2023, Oracle.  All rights reserved.Connected to:Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for FreeVersion 23.3.0.23.09SQL> select count(*) from v$session;COUNT(*)----------65

实例也是正常启动的。

再切换回操作系统“root”账号,执行命令“/etc/init.d/oracle-free-23c stop”。检查Oracle实例进程、监听器状态及sqlplus登录,Oracle实例进程不存在、监听器状态为不可连接(TNS-12541: Cannot connect. No listener at host localhost port 1521)、及客户端sqlpus不能登录。由此可以准确无误的断定脚本“oracle-free-23c”一定是Oracle 23c服务的启动脚本。

上述过程,同样也验证了Oracle 23c安装的正确性。

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

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

相关文章

[机缘参悟-129] :个人对人生之苦解决之道的思考

目录 前言: 第1层:环境层 1.1 环境的分类 1.2 理解环境的运作的基本原理 1.3 主动选择适合自己的愉快的环境 1.4 主动构建适合自己的愉快的环境 第2层:生理层 2.1 生理健康和情绪之间的关系 2.2 学习人的生物、生理、健康的基本知识…

MySQL与PostgreSQL对比

对比 许可证 License MySQL 社区版采用 GPL 许可证。Postgres 发布在 PostgreSQL 许可下,是一种类似于 BSD 或 MIT 的自由开源许可。 即便 MySQL 采用了 GPL,仍有人担心 MySQL 归 Oracle 所有,这也是为什么 MariaDB 从 MySQL 分叉出来。 …

学习使用 curl

一、简介 curl 是一个非常有用的网站开发工具。 curl 是常用的命令行工具——客户端(client)的 URL 工具——curl 用来请求 Web 服务器。 curl 支持多种协议。curl 命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界…

《Python数据分析技术栈》第06章使用 Pandas 准备数据 02 pandas的组件(Building blocks of Pandas)

02 pandas的组件(Building blocks of Pandas) 《Python数据分析技术栈》第06章使用 Pandas 准备数据 02 pandas的组件(Building blocks of Pandas) The Series and DataFrame objects are the underlying data structures in Pa…

数据出境——电商API接口使得电商数据跨境流动已成为趋势

在数字经济的当下,数据已经成为商业决策的关键因素。尤其是电商领域,电商API数据采集不仅关乎企业运营效率,还涉及到用户隐私与国家安全。近年来,随着电商市场的全球化发展,电商数据出境与跨境贸易已成为不可逆转的趋势…

使用Element-Plus 加载style

vue-chrome-extension 简介 chrome扩展开发插件基于vue3、ts、Element Plus、Webpack5、axios、less开发 支持content快速调用chrome对象及axios 详看 pages/content/app.vue 开箱即用chrome插件 特性 基础框架:使用 Vue3/Element PlusTypeScript: 应用程序级 J…

gin图片验证码

在开发的过程中,我们有些接口为了防止被恶意调用,我们会采用加验证码的方式,例如:发送短信的接口,为了防止短信接口被频繁调用造成损失;注册的接口,为了防止恶意注册。在这里为大家推荐一个验证…

C++:特殊类的设计和类型转换

特殊类的设计和类型转换 特殊类的设计1.设计一个类,不能被拷贝2.设计一个类,只能在堆上创建对象3.设计一个类,只能在栈上创建对象4.设计一个类,不能被继承5.单例模式 C的类型转换1. C语言中的类型转换2.C语言类型转换的缺点3.C的强…

vue3-模版引用ref

1. 介绍 概念&#xff1a;通过 ref标识 获取真实的 dom对象或者组件实例对象 2. 基本使用 实现步骤&#xff1a; 调用ref函数生成一个ref对象 通过ref标识绑定ref对象到标签 代码如下&#xff1a; 父组件&#xff1a; <script setup> import { onMounted, ref } …

Android Studio 之 菜单 Menu

选项菜单 OptionsMenu 用xml添加&#xff08;更建议使用&#xff09; 创建一个菜单布局 : 在 res文件下新建一个menu 目录&#xff0c;此时的菜单id为&#xff1a;R.menu.option <?xml version"1.0" encoding"utf-8"?> <menu xmlns:android&…

不同开发语言在进程、线程和协程的设计差异

不同开发语言在进程、线程和协程的设计差异 1. 进程、线程和协程上的差异1.1 进程、线程、协程的定义1.2 进程、线程、协程的差异1.3 进程、线程、协程的内存成本1.4 进程、线程、协程的切换成本 2. 线程、协程之间的通信和协作方式2.1 python如何实现线程通信&#xff1f;2.2 …

【Unity】AB包下载

【Unity】AB包下载 1.使用插件打AB包 a.AB包分类 一般地&#xff0c;将预制体作为AB包资源&#xff0c;不仅需要对预制体本身进行归类&#xff0c;还要对其涉及的动画&#xff08;AnimationClip&#xff09;、动画状态机&#xff08;AnimatorController&#xff09;、以及所…

144.二叉树的前序遍历

递归 public List<Integer> preorderTraversal(TreeNode root) {List<Integer> list new ArrayList<>();traversal(root, list);return list;}public void traversal(TreeNode t, List<Integer> list) {if (t null) {return;}list.add(t.val);trave…

《A++ 敏捷开发》- 5 量化管理从个人开始

我&#xff1a;你们管理层和客户都比较关心项目的进度&#xff0c;项目是否能按时完成&#xff1f;请问你们过去的项目如何&#xff1f; 开发&#xff1a;我们现在就是走敏捷开发&#xff0c;两周一个迭代。每次迭代前&#xff0c;我们聚一起开会&#xff0c;把所有用户故事按优…

2024.1.19力扣每日一题——使数组和小于等于 x 的最少时间

2024.1.19 题目来源我的题解方法一 动态规划方法二 动态规划&#xff08;空间优化&#xff09; 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2809 我的题解 题解参考官方题解。 方法一 动态规划 若能找到一个最小的时间t使得数组和小于等于x&#xff0c;则最多在一轮…

Dubbo 3.2版本分析Provider启动时操作

Dubbo 3.2版本分析Provider启动时操作 前言例子分析onStarting 模块doStart 模块 小结 前言 上一篇文章&#xff0c;我们分析了 Dubbo 3.2 版本在 Provider 启动前的操作流程&#xff0c;这次我们具体分析具体它的启动过程&#xff0c;揭开它的神秘面纱。 例子 这里我们还是…

【ZYNQ入门】第八篇、基于Lwip构建TCP服务器

目录 第一部分、基础知识 1、小白入门必看文章 2、什么是Lwip&#xff1f; 3、什么是TCP/IP协议&#xff1f; 4、MAC地址、IP地址、子网掩码、网关 4.1、MAC地址 4.2、IP地址 4.3、子网掩码 4.4、网关 第二部分、硬件搭建 第三部分、软件代码 1、SDK工程的建立 2、…

数据结构与算法-二叉树-从中序与后序遍历序列构造二叉树

从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postorder …

云盘后端分析

1.验证码 用的是外面找的 2.发送邮箱验证码 配置邮箱的授权码 我们在发送邮箱的时候&#xff0c;需要把那个值传到数据库中&#xff0c;数据库中有它的状态&#xff0c;我们需要根据状态判断它是注册还是找回密码 我们在发送邮箱之前&#xff0c;先从session里面得到我们验证…

Rocky Linux 8.9 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…