Proxmox VE 8 试装Oracle 23c

2024-01-22 19:44
文章标签 oracle ve proxmox 23c 试装

本文主要是介绍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安装的正确性。

这篇关于Proxmox VE 8 试装Oracle 23c的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/634047

相关文章

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

oracle如何连接登陆SYS账号

《oracle如何连接登陆SYS账号》在Navicat12中连接Oracle11g的SYS用户时,如果设置了新密码但连接失败,可能是因为需要以SYSDBA或SYSOPER角色连接,解决方法是确保在连接... 目录oracle连接登陆NmOtMSYS账号工具问题解决SYS用户总结oracle连接登陆SYS账号

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

查询Oracle数据库表是否被锁的实现方式

《查询Oracle数据库表是否被锁的实现方式》本文介绍了查询Oracle数据库表是否被锁的方法,包括查询锁表的会话、人员信息,根据object_id查询表名,以及根据会话ID查询和停止本地进程,同时,... 目录查询oracle数据库表是否被锁1、查询锁表的会话、人员等信息2、根据 object_id查询被

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

oracle中exists和not exists用法举例详解

《oracle中exists和notexists用法举例详解》:本文主要介绍oracle中exists和notexists用法的相关资料,EXISTS用于检测子查询是否返回任何行,而NOTE... 目录基本概念:举例语法pub_name总结 exists (sql 返回结果集为真)not exists (s

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日