无忧启动论坛
标题: 记录一次虚拟机中oracle-linux9.4安装oracle-database-free-23ai及主机用sqlplus连接 [打印本页]
作者: likeyouli 时间: 2025-6-14 09:29
标题: 记录一次虚拟机中oracle-linux9.4安装oracle-database-free-23ai及主机用sqlplus连接
本帖最后由 likeyouli 于 2025-6-23 10:32 编辑
如题,主机系统win11企业版,虚拟机用的vmware16,
首先安装oracle linux,来这里下载https://yum.oracle.com/oracle-linux-isos.html
我下载的full iso:[backcolor=rgba(0, 0, 0, 0.05)]OracleLinux-R9-U4-x86_64-dvd.iso,然后再vmware中新建虚拟机,由于选择linux版本的时候没有oracle linux9 ,只能选择Oracle Linux 8 64 位代替,最后安装完也没感觉到有啥问题。安装的过程中,我选择的带gui界面的,感觉最小化安装(只安装带命令行的也应该没有啥问题),其余注意的,安装过程中别忘了打开网络,否则没有网,网络方式nat。 系统安装完毕。
主机cmd下,ssh root@192.168.1.128,连接上linux系统,我的习惯更改一下命令提示符颜色echo 'PS1="\[\e[1;3;32m\][\u@\h \w]\\$\[\e[0m\]"' > /etc/profile.d/env.sh ,退出再登录一次即可看到效果,这里的\h 显示为localhost,如果想显示为本机的ip地址,可以使用 echo [size=12.573px]'PS1="\[\e[1;3;32m\][\u@$(ip route get 1 | awk "{print \$7}" | xargs) \w]\\$\[\e[0m\]"' > /etc/profile.d/env.sh [size=12.573px][size=12.573px]或者直接将\h 替换为hostname -I,注意这里的I一定要为大写,否则会显示[size=12.573px]::1 127.0.0.1
[size=12.573px] 看看能够使用的仓库
[root@LocalHost ~]#yum repolist all
仓库 id 仓库名称 状态
ol9_MODRHCK Latest RHCK with fixes from Oracle for Oracle Linux 9 (x86_64) 禁用
ol9_RDMA Oracle Linux 9 (x86_64) RDMA 禁用
ol9_UEKR7 Oracle Linux 9 UEK Release 7 (x86_64) 启用
ol9_addons Oracle Linux 9 Addons (x86_64) 禁用
ol9_appstream Oracle Linux 9 Application Stream Packages (x86_64) 启用
ol9_baseos_latest Oracle Linux 9 BaseOS Latest (x86_64) 启用
ol9_codeready_builder Oracle Linux 9 CodeReady Builder (x86_64) - (Unsupported) 禁用
ol9_distro_builder Oracle Linux 9 Distro Builder (x86_64) - (Unsupported) 禁用
ol9_kvm_utils Oracle Linux 9 KVM Utilities (x86_64) 禁用
ol9_u0_baseos_base Oracle Linux 9 BaseOS GA (x86_64) 禁用
ol9_u1_baseos_base Oracle Linux 9.1 BaseOS (x86_64) 禁用
ol9_u2_baseos_base Oracle Linux 9.2 BaseOS (x86_64) 禁用
ol9_u3_baseos_base Oracle Linux 9.3 BaseOS (x86_64) 禁用
ol9_u3_security_validation Oracle Linux 9 Update 3 (x86_64) Security Validations 禁用
ol9_u4_baseos_base Oracle Linux 9.4 BaseOS (x86_64) 禁用
[root@localhost ~]#yum repolist
仓库 id 仓库名称
ol9_UEKR7 Oracle Linux 9 UEK Release 7 (x86_64)
ol9_appstream Oracle Linux 9 Application Stream Packages (x86_64)
ol9_baseos_latest Oracle Linux 9 BaseOS Latest (x86_64)
[root@localhost ~]#yum repoinfo
上次元数据过期检查:0:01:42 前,执行于 2025年06月13日 星期五 08时09分47秒。
仓库ID : ol9_UEKR7
仓库名称 : Oracle Linux 9 UEK Release 7 (x86_64)
软件仓库修订版 : 1749467737
更新的软件仓库 : 2025年06月09日 星期一 19时15分42秒
软件仓库的软件包 : 1,079
软件仓库的可用软件包: 1,079
软件仓库大小 : 29 G
软件仓库基本 URL : https://yum.oracle.com/repo/OracleLinux/OL9/UEKR7/x86_64/
软件仓库过期时间 : 172,800 秒 (最近 2025年06月13日 星期五 08时09分47秒)
仓库文件名 : /etc/yum.repos.d/uek-ol9.repo
仓库ID : ol9_appstream
仓库名称 : Oracle Linux 9 Application Stream Packages (x86_64)
软件仓库修订版 : 1749764851
更新的软件仓库 : 2025年06月13日 星期五 05时53分34秒
软件仓库的软件包 : 32,232
软件仓库的可用软件包: 30,929
软件仓库大小 : 290 G
软件仓库基本 URL : https://yum.oracle.com/repo/OracleLinux/OL9/appstream/x86_64/
软件仓库过期时间 : 172,800 秒 (最近 2025年06月13日 星期五 08时08分49秒)
仓库文件名 : /etc/yum.repos.d/oracle-linux-ol9.repo
仓库ID : ol9_baseos_latest
仓库名称 : Oracle Linux 9 BaseOS Latest (x86_64)
软件仓库修订版 : 1749764761
更新的软件仓库 : 2025年06月13日 星期五 05时46分04秒
软件仓库的软件包 : 13,247
软件仓库的可用软件包: 13,247
软件仓库大小 : 61 G
软件仓库基本 URL : https://yum.oracle.com/repo/OracleLinux/OL9/baseos/latest/x86_64/
软件仓库过期时间 : 172,800 秒 (最近 2025年06月13日 星期五 08时08分32秒)
仓库文件名 : /etc/yum.repos.d/oracle-linux-ol9.repo
软件包总数:46,558
[size=12.573px] 最大的一个仓库290g,真厉害
[size=12.573px] yum search all 23ai 查找带23ai的rpm包
[root@localhost ~]#yum search all 23ai
上次元数据过期检查:0:04:14 前,执行于 2025年06月13日 星期五 08时09分47秒。
================================================================================================ 名称 匹配:23ai ================================================================================================
oracle-database-preinstall-23ai.src : Oracle Database Preinstallation RPM
oracle-database-preinstall-23ai.x86_64 : Oracle Database Preinstallation RPM
oracle-instantclient-release-23ai-el9.src : Oracle Instant Client yum repository configuration
oracle-instantclient-release-23ai-el9.x86_64 : Oracle Instant Client yum repository configuration
[size=12.573px] 先安装一下安装数据库前的预安装环境yum install oracle-database-preinstall-23ai.x86_64[root@localhost ~]#yum install oracle-database-preinstall-23ai.x86_64
上次元数据过期检查:0:06:37 前,执行于 2025年06月13日 星期五 08时09分47秒。
依赖关系解决。
=================================================================================================================================================================================================================
软件包 架构 版本 仓库 大小
=================================================================================================================================================================================================================
安装:
oracle-database-preinstall-23ai x86_64 1.0-3.el9 ol9_appstream 35 k
安装依赖关系:
compat-openssl11 x86_64 1:1.1.1k-5.el9_6.1 ol9_appstream 1.5 M
glibc-devel x86_64 2.34-100.0.1.el9 ol9_appstream 58 k
glibc-headers x86_64 2.34-100.0.1.el9 ol9_appstream 914 k
gssproxy x86_64 0.8.4-7.el9 ol9_baseos_latest 120 k
initscripts x86_64 10.11.8-4.0.1.el9 ol9_baseos_latest 285 k
kernel-headers x86_64 5.14.0-570.21.1.0.1.el9_6 ol9_appstream 4.3 M
ksh x86_64 3:1.0.6-6.0.1.el9 ol9_appstream 886 k
libev x86_64 4.33-6.el9 ol9_baseos_latest 56 k
libnfsidmap x86_64 1:2.5.4-34.0.1.el9 ol9_baseos_latest 70 k
libverto-libev x86_64 0.3.2-3.el9 ol9_baseos_latest 14 k
libxcrypt-devel x86_64 4.4.18-3.el9 ol9_appstream 42 k
lm_sensors-libs x86_64 3.6.0-10.el9 ol9_appstream 42 k
make x86_64 1:4.3-8.el9 ol9_baseos_latest 570 k
nfs-utils x86_64 1:2.5.4-34.0.1.el9 ol9_baseos_latest 516 k
pcp-conf x86_64 6.3.7-1.el9_6 ol9_appstream 42 k
pcp-libs x86_64 6.3.7-1.el9_6 ol9_appstream 654 k
rpcbind x86_64 1.2.6-7.el9 ol9_baseos_latest 69 k
sssd-nfs-idmap x86_64 2.9.4-2.0.1.el9 ol9_baseos_latest 49 k
sysstat x86_64 12.5.4-9.0.2.el9 ol9_appstream 541 k
事务概要
=================================================================================================================================================================================================================
安装 20 软件包
总下载:11 M
安装大小:23 M
确定吗?[y/N]: y
下载软件包:
(1/20): libev-4.33-6.el9.x86_64.rpm 34 kB/s | 56 kB 00:01
(2/20): gssproxy-0.8.4-7.el9.x86_64.rpm 68 kB/s | 120 kB 00:01
[size=12.573px]由于从仓库我里也没有search到oracle数据库安装包,只能自己找地址下载了[size=12.573px]https://www.oracle.com/database/free/get-started/
[size=12.573px] 然后通过wget [size=12.573px]https://download.oracle.com/otn- ... .8-1.el9.x86_64.rpm[size=12.573px]进行下载
[size=12.573px]然后开始安装
[root@localhost ~]# dnf -y install oracle-database-free-23ai-23.8-1.el9.x86_64.rpm
上次元数据过期检查:2:06:55 前,执行于 2025年06月13日 星期五 08时09分47秒。
依赖关系解决。
=================================================================================================================================================================================================================
软件包 架构 版本 仓库 大小
=================================================================================================================================================================================================================
安装:
oracle-database-free-23ai x86_64 23.8-1 @commandline 1.3 G
事务概要
=================================================================================================================================================================================================================
安装 1 软件包
总计:1.3 G
安装大小:3.6 G
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
运行脚本: oracle-database-free-23ai-23.8-1.x86_64 1/1
安装 : oracle-database-free-23ai-23.8-1.x86_64 1/1
运行脚本: oracle-database-free-23ai-23.8-1.x86_64 1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database Free, optionally modify the parameters in '/etc/sysconfig/oracle-free-23ai.conf' and then run '/etc/init.d/oracle-free-23ai configure' as root.
初始化并运行[root@localhost ~]# /etc/init.d/oracle-free-23ai configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database FREE.
输入 SYS 用户口令:
*****
输入 SYSTEM 用户口令:
*****
输入 PDBADMIN 用户口令:
*****
准备执行数据库操作
已完成 7%
复制数据库文件
已完成 29%
正在创建并启动 Oracle 实例
已完成 30%
已完成 33%
已完成 36%
已完成 39%
已完成 43%
正在进行数据库创建
已完成 47%
已完成 49%
已完成 50%
正在创建插接式数据库
已完成 54%
已完成 71%
执行配置后操作
已完成 93%
正在运行定制脚本
已完成 100%
数据库创建完成。有关详细信息, 请查看以下位置的日志文件:
/opt/oracle/cfgtoollogs/dbca/FREE。
数据库信息:
全局数据库名:FREE
系统标识符 (SID):FREE
有关详细信息, 请参阅日志文件 "/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log"。
此时会创建oracle用户,切换到oracle用户,su oracle,[root@localhost ~]# su oracle
[oracle@localhost root]$ export ORACLE_SID=FREE
[oracle@localhost root]$ export ORAENV_ASK=NO
[oracle@localhost root]$ . /opt/oracle/product/23ai/dbhomeFree/bin/oraenv
如果想远程连接,还需关闭防火墙,先关闭,再禁止下次启动运行;此时可运行/etc/init.d/oracle-free-23ai status查看一下数据库的状态,显示为两个running则正常[root@localhost ~]# /etc/init.d/oracle-free-23ai status
Status of the Oracle FREE 23ai service:
LISTENER status: RUNNING
FREE Database status: RUNNING
配置环境变量 vim /etc/profile,配置完成别忘了source /etc/profile 使其生效;export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
export ORACLE_SID=FREE
export PDB_NAME=FREEPDB1
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib
export PATH=${ORACLE_HOME}/bin:${ORACLE_HOME}/OPatch:$OGG_HOME:${PATH}
export HOST=`hostname | cut -f1 -d"."`
export LD_LIBRARY_PATH=$ORACLE_HOME/Lib:$ORACLE_HOME/Lib32:$0GG_HOME:/lib/usr/lib:/usr/local/lib
# General exports and vars
export PATH=$ORACLE_HOME/bin:$PATH
LSNR=$ORACLE_HOME/bin/lsnrctl
SQLPLUS=$ORACLE_HOME/bin/sqlplus
查看一下监听状态[root@localhost ~]#lsnrctl status
LSNRCTL for Linux: Version 23.0.0.0.0 - Production on 14-JUN-2025 09:12:14
Copyright (c) 1991, 2025, 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 13-JUN-2025 22:07:15
Uptime 0 days 11 hr. 4 min. 59 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service FREE
Listener Parameter File /opt/oracle/product/23ai/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 "376bf6b4d147a4fce065000000000001" 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 ~]#netstat -tulnp | grep 1521
tcp6 0 0 :::1521 :::* LISTEN 50976/tnslsnr
[root@localhost ~]#netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 982/sshd: /usr/sbin
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 981/cupsd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 982/sshd: /usr/sbin
tcp6 0 0 :::28237 :::* LISTEN 51129/db_d000_FREE
tcp6 0 0 :::1521 :::* LISTEN 50976/tnslsnr
tcp6 0 0 ::1:631 :::* LISTEN 981/cupsd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 777/avahi-daemon: r
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 127.0.0.1:323 0.0.0.0:* 808/chronyd
udp 0 0 0.0.0.0:39632 0.0.0.0:* 777/avahi-daemon: r
udp6 0 0 ::1:25412 :::* 51131/db_s000_FREE
udp6 0 0 :::5353 :::* 777/avahi-daemon: r
udp6 0 0 ::1:13759 :::* 51084/db_lreg_FREE
udp6 0 0 :::57202 :::* 777/avahi-daemon: r
udp6 0 0 :::111 :::* 1/systemd
udp6 0 0 ::1:323 :::* 808/chronyd
udp6 0 0 ::1:64210 :::* 51129/db_d000_FREE
自动启动和关闭监听器和数据库 systemctl daemon-reload ; /usr/lib/systemd/systemd-sysv-install enable oracle-free-23ai ;
关闭systemctl stop oracle-free-23ai.service ;重新启动 systemctl restart oracle-free-23ai
此时都可以通过/etc/init.d/oracle-free-23ai status 查看状态 ,确保两个running
作者: likeyouli 时间: 2025-6-14 09:30
本帖最后由 likeyouli 于 2025-6-14 09:52 编辑
主机中仅想安装sqlplus,不想安装oracle数据库了,毕竟太占用资源,再说我主机多个系统,随意切换到哪个系统,都可以方便连接虚拟机中的数据库注意图片中的两个文件都需要下载 https://www.oracle.com/cn/databa ... 4-64-downloads.html
c 盘中新建C:\oracle\instantclient_23 文件夹,将basic中的instantclient_23_8这个文件夹里边的所有内容拷贝到C:\oracle\instantclient_23里边,再将sqlplus包里的instantclient_23_8这个文件夹下的所有内容也拷贝到C:\oracle\instantclient_23里边,有点合并instantclient_23_8文件夹下内容的感觉,至于两个压缩包里的META-INF不知道有啥用
然后就是设置环境变量,直接用户变量里添加上C:\oracle\instantclient_23即可,(可选设置[size=12.573px]ORACLE_HOME=C:\oracle\instantclient_23)。
[size=16.002px]Instant Client 23c 需要 VS 2019 运行时库:
dumpbin /dependents sqlplus.exe
[size=16.002px]查看缺少哪些 DLL 文件
-
..png
(8.63 KB, 下载次数: 0)
两个都需要下载
作者: likeyouli 时间: 2025-6-14 09:31
本帖最后由 likeyouli 于 2025-6-19 22:04 编辑
占楼,另做他用 https://developer.aliyun.com/article/1637345开发者社区 数据库 文章 正文
Linux平台Oracle开机自启动设置2024-11-14195发布于河北
版权
简介: 【11月更文挑战第7天】本文介绍了 Linux 系统中服务管理机制,并详细说明了如何在使用 systemd 和 System V 的系统上设置 Oracle 数据库的开机自启动。包括创建服务单元文件、编辑启动脚本、设置开机自启动和启动服务的具体步骤。最后建议重启系统验证设置是否成功。
[color=rgba(0, 0, 0, 0.65)]- 在 Linux 系统中,服务的开机自启动通常是通过系统的初始化系统来管理的。常见的初始化系统有 System V(SysV)和 systemd。CentOS 6 及更早版本主要使用 SysV,而 CentOS 7 及更高版本、Ubuntu 等系统主要使用 systemd。System V 使用一系列以/etc/init.d/为目录的脚本,而 systemd 使用单元配置文件(.service文件)。
- 针对 systemd 系统(如 CentOS 7+、Ubuntu 等)的 Oracle 开机自启动设置
- 以oracle用户(通常是安装和管理 Oracle 数据库的用户)登录系统。
- 创建一个名为oracle.service的文件,通常放在/usr/lib/systemd/system/目录下。示例文件内容如下:
[Unit]Description = Oracle Database ServiceAfter = network.target[Service]User = oracleGroup = dbaType = simpleExecStart = /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstartExecStop = /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshutRestart = always[Install]WantedBy = multi - user.target
- Description是对服务的描述,这里写的是 “Oracle Database Service”。
- After表示这个服务应该在network.target之后启动,因为 Oracle 数据库通常需要网络连接。
- User和Group指定了运行 Oracle 服务的用户和组,这里是oracle用户和dba组。
- Type = simple表示这是一个简单的服务类型,即执行ExecStart指定的命令来启动服务。
- ExecStart指定了启动 Oracle 数据库的命令路径,这里是/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart,你需要根据自己的 Oracle 安装路径进行调整。
- ExecStop指定了关闭 Oracle 数据库的命令路径,这里是/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut。
- Restart = always表示如果服务意外停止,系统会自动重新启动它。
- WantedBy = multi - user.target表示这个服务在多用户模式下应该被启动。
- 使用以下命令让 systemd 重新加载配置文件:
systemctl daemon - reload
- 要设置 Oracle 服务开机自启动,可以使用以下命令:
systemctl enable oracle.service
systemctl start oracle.service
- 针对 System V 系统(如 CentOS 6 等)的 Oracle 开机自启动设置
- 以oracle用户登录系统。
- 找到 Oracle 数据库的启动脚本,通常在/etc/init.d/目录下,例如/etc/init.d/oradb(名称可能因安装方式而异)。
- 编辑这个脚本,在开头添加以下内容:
#! /bin/bash# chkconfig: 345 99 10# description: Oracle Database Service
- chkconfig: 345 99 10表示这个服务在运行级别 3、4、5 下,启动优先级是 99,停止优先级是 10。
- 步骤二:设置开机自启动
chkconfig --add oradbchkconfig oradb on
service oradb start
无论是哪种方式,在设置完成后,最好重启系统来验证 Oracle 数据库是否能够自动启动。如果在启动过程中出现问题,可以查看系统日志(如/var/log/messages或/var/log/syslog)来查找故障原因。
作者: guong 时间: 2025-6-14 12:14
进来学习一下
作者: jho 时间: 2025-6-14 16:03
学习了
作者: guong 时间: 2025-6-15 12:45
来学习学习
作者: likeyouli 时间: 2025-6-19 17:10
本帖最后由 likeyouli 于 2025-6-19 17:27 编辑
[color=rgb(var(--ds-rgb-label-1))]在 Oracle 数据库成功启动但 systemctl status *oracle* 查询不到服务时,通常是因为 Oracle 数据库默认 不通过 systemd 管理,而是使用传统的启动脚本(如 dbstart/dbshut)。以下是详细解决方案:
1. 确认 Oracle 的启动方式Oracle 数据库通常通过以下方式启动:
手动启动:通过 SQL*Plus 执行 startup,首先切换su oracle用户,用root用户不行,然后sqlplus / as sysdba , 无需用sys用户登录,然后输入startup,或者startup force ,即可启动数据库及实例。
传统脚本:/etc/init.d/oracledb_ORCLCDB-19c 或 $ORACLE_HOME/bin/dbstart (
[root@192.168.1.131 ~]#/etc/init.d/oracledb_ORCLCDB-19cUsage: /etc/init.d/oracledb_ORCLCDB-19c {start|stop|restart|configure|delete}
)
systemd 服务(需手动配置)
2. 检查现有 Oracle 服务文件运行以下命令,查看是否已有 Oracle 相关的 systemd 服务:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
ls /etc/systemd/system/*oracle*.service 2>/dev/nullls /usr/lib/systemd/system/*oracle*.service 2>/dev/null
如果无输出,说明未配置 systemd 服务。
3. 手动创建 systemd 服务文件(1)创建服务文件新建 /etc/systemd/system/oracle-19c.service:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo vi /etc/systemd/system/oracle-19c.service
填入以下内容(根据实际路径修改):
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]ini
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
[Unit]Description=Oracle Database 19cAfter=network.target[Service]Type=forkingUser=oracleGroup=oinstallEnvironment="ORACLE_HOME=/opt/oracle/product/19c/dbhome_1"Environment="ORACLE_SID=ORCLCDB"ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOMEExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOMETimeoutSec=0[Install]WantedBy=multi-user.target
(2)设置权限并重载 systemd[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo chmod 644 /etc/systemd/system/oracle-19c.servicesudo systemctl daemon-reload
4. 启用并测试服务(1)启动服务[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo systemctl start oracle-19c
(2)检查状态[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo systemctl status oracle-19c
正常输出应显示 active (running)。
(3)设置开机自启[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo systemctl enable oracle-19c
5. 替代方案:使用 Oracle 官方脚本如果不想用 systemd,可以通过传统脚本管理:
(1)修改 /etc/oratab确保数据库条目以 Y 结尾:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
(2)使用 dbstart/dbshut[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo su - oracle$ORACLE_HOME/bin/dbstart $ORACLE_HOME # 启动$ORACLE_HOME/bin/dbshut $ORACLE_HOME # 关闭
6. 验证数据库状态无论通过哪种方式启动,最终验证:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]sql
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sqlplus / as sysdbaSQL> SELECT status FROM v$instance;
应返回 OPEN。
常见问题解决[td]问题 | 解决方法 |
| 服务启动失败 | 检查 journalctl -xe 和 $ORACLE_HOME/startup.log |
| 权限不足 | 确保 oracle 用户有权限访问 $ORACLE_HOME |
| ORACLE_HOME 未定义 | 在服务文件中明确定义环境变量 |
总结如果仍有问题,请提供以下信息:
[color=var(--ds-icon-button-text-color)]
[color=var(--ds-icon-button-text-color)]
[color=var(--ds-icon-button-text-color)]
[color=var(--ds-icon-button-text-color)]
使用 dbstart/dbshut 如何设置开机自启动oracle ?
[color=var(--ds-icon-button-text-color)]
[color=var(--ds-icon-button-text-color)]
[color=rgb(var(--ds-rgb-label-1))]
在 Oracle 数据库中,dbstart 和 dbshut 是官方提供的脚本,用于启动和关闭数据库实例。要让 Oracle 数据库 开机自动启动,可以通过以下步骤配置:
1. 确保 /etc/oratab 配置正确/etc/oratab 文件决定了哪些数据库实例会被 dbstart 自动启动。
(1)检查 /etc/oratab[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
cat /etc/oratab
输出示例:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]text
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
格式:SID:ORACLE_HOME:Y|N
Y 表示允许 dbstart 自动启动该数据库。
N 表示不自动启动。
(2)修改 /etc/oratab(如果需要)[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo vi /etc/oratab
确保你的数据库条目以 Y 结尾,例如:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]text
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
保存并退出。
2. 创建 /etc/init.d/oracle 启动脚本为了让 dbstart 和 dbshut 在系统启动时自动运行,可以创建一个 init.d 脚本。
(1)创建 /etc/init.d/oracle[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo vi /etc/init.d/oracle
填入以下内容(根据实际情况修改 ORACLE_HOME 和 ORACLE_USER):
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
#!/bin/bash# chkconfig: 345 99 10# description: Oracle auto start/stop scriptORACLE_HOME=/opt/oracle/product/19c/dbhome_1ORACLE_USER=oraclecase "$1" in start) echo "Starting Oracle Database..." su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" ;; stop) echo "Stopping Oracle Database..." su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" ;; restart) echo "Restarting Oracle Database..." $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1esacexit 0
保存并退出。
(2)设置权限[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo chmod 755 /etc/init.d/oracle
3. 使用 chkconfig 或 systemctl 设置开机启动(1)chkconfig(适用于 SysVinit 系统,如 CentOS 6)[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo chkconfig --add oraclesudo chkconfig oracle on
检查是否生效:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
chkconfig --list oracle
预期输出:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]text
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(2)systemctl(适用于 systemd 系统,如 CentOS 7/8, RHEL 7/8, Ubuntu 16.04+)[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo systemctl enable oracle
检查状态:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo systemctl status oracle
4. 测试启动/关闭(1)手动测试启动[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo /etc/init.d/oracle start
或
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo systemctl start oracle
(2)手动测试关闭[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo /etc/init.d/oracle stop
或
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo systemctl stop oracle
(3)检查数据库状态[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sqlplus / as sysdba <<EOFSELECT status FROM v\$instance;EXIT;EOF
预期输出:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]text
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
STATUS--------OPEN
5. 重启服务器验证[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
sudo reboot
重启后,检查 Oracle 是否自动启动:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]bash
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
ps -ef | grep pmon
预期输出:
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]text
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
oracle 12345 1 0 10:00 ? 00:00:00 ora_pmon_ORCLCDB
6. 常见问题排查[td]问题 | 解决方案 |
| /etc/oratab 权限问题 | sudo chmod 644 /etc/oratab |
| dbstart 报错 | 检查 $ORACLE_HOME/bin/dbstart 是否有执行权限 |
| oracle 用户无法启动 | 确保 oracle 用户有权限访问 $ORACLE_HOME |
| chkconfig 报错 | 确保脚本头部有 # chkconfig: 345 99 10 |
总结修改 /etc/oratab,确保数据库条目以 Y 结尾。
创建 /etc/init.d/oracle 启动脚本。
使用 chkconfig 或 systemctl 设置开机启动。
测试 start/stop 确保脚本正常工作。
重启服务器 验证自动启动是否生效。
这样,Oracle 数据库就会在系统启动时自动运行! 🚀
| 欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) |
Powered by Discuz! X3.3 |