首页 > 数据库 >Proxmox VE 8 试装Oracle 23c

Proxmox VE 8 试装Oracle 23c

时间:2024-01-21 14:32:51浏览次数:36  
标签:13 VE 23c oracle localhost Proxmox Oracle 104

作者:田逸(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管理后台,创建一个虚拟机,分配好资源,可以不分配硬盘、不使用任何安装介质,一个创建好的虚拟机配置如下图所示。

Proxmox VE 8 试装Oracle 23c_3c



记下虚拟机的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”为后缀的文本文件,如下图所示。

Proxmox VE 8 试装Oracle 23c_3c_02



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


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

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


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


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

Proxmox VE 8 试装Oracle 23c_oracle_03



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

Proxmox VE 8 试装Oracle 23c_oracle_04



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

Proxmox VE 8 试装Oracle 23c_Database_05



如法炮制,将另外一个“未使用磁盘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-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

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


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

Proxmox VE 8 试装Oracle 23c_oracle_06



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

Proxmox VE 8 试装Oracle 23c_3c_07



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

Proxmox VE 8 试装Oracle 23c_Database_08



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


验证Oracle 23c 安装的正确性


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

Proxmox VE 8 试装Oracle 23c_Database_09


进入目录”/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]# 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

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

Proxmox VE 8 试装Oracle 23c_3c_10



望文生义,手动执行命令“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 status
Status of the Oracle FREE 23c service:

LISTENER status: RUNNING
FREE Database status: RUNNING

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

Proxmox VE 8 试装Oracle 23c_3c_11



切换到账户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 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

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


进一步,以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 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(*)
----------

实例也是正常启动的。


再切换回操作系统“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安装的正确性。



标签:13,VE,23c,oracle,localhost,Proxmox,Oracle,104
From: https://blog.51cto.com/sery/9355446

相关文章

  • presto、hive使用year、month、date函数使用注意事项
    经过尝试,presto查询速度更快,于是使用presto引擎查询,直接将在hive中使用的sql拷贝到presto执行,遇到各种问题。遇到问题以下sql在hive中执行成功,变量日期是2024-01-02这样的格式但在presto中执行报错,如下:解决方法通过观察报错信息最后两行,推测很可能是因为数据类型不正确,所以......
  • oracle导入表批量更新操作
    1、把excel的数据整理成跟数据库存放呼叫相应的样式2、把excel文件另存为*.txt或*.csv文件,最好是*.csv文件,容易对数据做修改3、把转换好的*.txt或*.csv文件上传至数据库中(1)打开工具(tools)菜单-->文本导入器(TextImporter),导入转换好的文件,可以把标题名的复选框去掉4、选择对......
  • 《DREEAM Guiding Attention with Evidence for Improving Document-Level Relation E
    代码 原文地址 预备知识:1.什么是K-L散度(Kullback-LeiblerDivergence)?K-L散度,是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵。在概率学和统计学上,我们经常会使用一种更简单的、近似的分布来替代观察数据或太复杂的分布。K-L散度能帮助我们度量使用一个分布来近似另......
  • git push 报错 ! [remote rejected] main -> main (pre-receive hook declined) error
    今天在用gitpush项目的时候,出现了一个报错,记录一下解决方案,以后报同样的错误可以回来看。错误下面是gitpush的详细报错信息:20866@DESKTOP-7R0VL04MINGW64/d/AllProjects/JupyterProjects(main)$gitpushoriginmainEnumeratingobjects:152,done.Countingobjects:......
  • 大模型新篇章:元象XVERSE-Long-256K实现256K超长文本分析
    引言在人工智能的快速发展中,大模型技术始终是推动行业进步的重要力量。特别是在处理长文本上下文方面,长文本技术已成为衡量一个大模型技术成熟度的重要标准。近日,元象科技发布了全球首个256K上下文窗口长度的开源大模型——XVERSE-Long-256K,这一创新举措不仅填补了开源生态的空白,也......
  • go gin 必须使用 dive 标记,它告诉 required 校验 深入到 slice、array 这样的子结
    packagemainimport( "fmt" "net/http" "github.com/gin-gonic/gin")typeuserstruct{ Namestring`json:"name"binding:"required"` Emailstring`json:"email"binding:"required,email"`......
  • 22String字符串和vector对象的迭代器iterator实现
    String字符串对象的迭代器iterator实现泛型算法参数接收的都是迭代器泛型算法是一组全局的函数,适用于所有容器基于第二点,泛型算法有一套方法可以统一地遍历所有容器的元素classString{public: //嵌套定义iterator类 classiterator { private: char*_p;//没有用......
  • 模拟器EVE-NG的镜像加载方法
    EVE-NG镜像加载dynamips镜像一般以.image为扩展名,需要上传到/opt/unetlab/addons/dynamips/CPU占用较高的要计算idle值dynamips-P<platform>/opt/unetlab/addons/dynamips/镜像文件名命令执行后迅速按下ctrl+]几秒钟后松开在快速按下i键如果出现SuggestedidlingPC......
  • 数据前置参数类型转换@InitBinder、Formatter<?>、Converter<?>的使用
    前言:在很多时候我们在进行调用接口的时候,传入的参数类型不是指定的特别明确(或者是不能进行自动类型转换),会导致调用接口失败的情况出现,如果我们在调用接口之前进行数据格式化,手动进行数据类型转换,那么就不会出现调用接口失败的情况出现了。这些注解无非也就是做这些工作的。下面列举......
  • spring boot一个奇怪的错误(There was an unexpected error (type=Internal Server Err
    今天运行springboot的时候爆了这个错(Therewasanunexpectederror(type=InternalServerError,status=500).Exceptionparsingdocument:template=“index”,line6-column3)说什么无法解析文档,昨天还运行的好好的,看一下控制台说什么meta标签没关闭,我可是用idea自己创......