导读:本期聚焦于小伙伴创作的《Linux下如何设置Oracle数据库开机自启动》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Linux下如何设置Oracle数据库开机自启动》有用,将其分享出去将是对创作者最好的鼓励。

在Linux服务器环境中,Oracle数据库默认不会随系统开机自动启动,每次服务器重启都需要手动执行启动命令,对于需要长期稳定运行的业务系统来说非常不便。配置Oracle开机自启动可以减少人工干预,保障数据库服务的连续性。

Linux下如何设置Oracle数据库开机自启动

前置准备

配置自启动前需要确认以下信息:

  • Oracle数据库安装路径,通常为/u01/app/oracle/product/19.3.0/dbhome_1,具体路径需根据实际安装情况调整
  • Oracle数据库实例名,可通过echo $ORACLE_SID命令查看
  • 服务器操作系统版本,确认是采用systemd管理服务的新版本系统,还是使用rc_local的传统版本系统
  • 拥有root用户权限以及oracle用户权限

方案一:使用rc_local配置自启动(适配CentOS 6及更早版本)

步骤1:编辑rc_local文件

使用root用户编辑/etc/rc.d/rc.local文件,添加Oracle启动相关命令:

# 切换到oracle用户执行启动命令
su - oracle -c "export ORACLE_SID=orcl;export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1;$ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
startup;
exit;
EOF"

# 启动监听
su - oracle -c "export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1;$ORACLE_HOME/bin/lsnrctl start"

步骤2:赋予rc_local执行权限

传统版本的rc_local文件默认可能没有执行权限,需要手动添加:

chmod +x /etc/rc.d/rc.local

方案二:使用systemd配置自启动(适配CentOS 7、Ubuntu 16.04及更高版本)

步骤1:创建systemd服务文件

/etc/systemd/system/目录下创建oracle.service文件,内容如下:

[Unit]
Description=Oracle Database Service
After=network.target

[Service]
Type=forking
User=oracle
Group=oinstall
Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1"
Environment="ORACLE_SID=orcl"
ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbshut $ORACLE_HOME
Restart=on-failure

[Install]
WantedBy=multi-user.target

步骤2:修改Oracle配置文件

编辑$ORACLE_HOME/bin/dbstart文件,找到ORACLE_HOME_LISTNER所在行,修改为:

ORACLE_HOME_LISTNER=$ORACLE_HOME

同时编辑/etc/oratab文件,将实例名所在行的最后一个字段由N改为Y,示例如下:

orcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y

步骤3:启用并验证服务

执行以下命令启用服务并设置开机自启动:

# 重新加载systemd配置
systemctl daemon-reload
# 启用oracle服务
systemctl enable oracle.service
# 启动服务验证配置是否正确
systemctl start oracle.service
# 查看服务状态
systemctl status oracle.service

配置验证

重启Linux服务器后,登录系统执行以下命令验证Oracle是否自动启动:

# 切换到oracle用户
su - oracle
# 登录数据库查看实例状态
sqlplus / as sysdba
# 执行以下SQL查询实例状态
select status from v$instance;

如果返回结果为OPEN,说明Oracle数据库已经成功随系统开机自启动。

注意事项

  • 配置过程中涉及的环境变量路径、实例名需要根据实际部署情况调整,错误的路径会导致启动失败
  • 如果使用systemd方案,需要确保oracle用户对$ORACLE_HOME目录有读写执行权限
  • 若服务器同时部署多个Oracle实例,需要为每个实例单独配置启动命令或systemd服务单元
  • 修改rc_local文件时,避免添加与Oracle启动无关的冗余命令,防止启动流程异常

OracleLinux自启动systemdrc_local修改时间:2026-06-04 02:05:55

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。