OCP-05:Oracle Database 设置开机自启

使用 systemd 将 Oracle 数据库设置为开机自动启动

通过设置 Systemd unit 实现数据库开机自启。
首先需要修改 /etc/oratab

ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y

设置为 Y 意味着可以使用 dbstart 脚本来启动数据库。
随后通过使用 dbstartdbshut 脚本测试能否启动数据库:

[oracle@oel7-3 ~]$ $ORACLE_HOME/bin/dbstart $ORACLE_HOME
Processing Database instance "ORCLCDB": log file /opt/oracle/product/19c/dbhome_1/rdbms/log/startup.log
[oracle@oel7-3 ~]$ cat /opt/oracle/product/19c/dbhome_1/rdbms/log/startup.log

/opt/oracle/product/19c/dbhome_1/bin/dbstart: Starting up database "ORCLCDB"
Thu Jan  9 10:10:37 CST 2025


SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 9 10:10:37 2025
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL> Connected to an idle instance.
SQL> ORACLE instance started.

Total System Global Area 1660941720 bytes
Fixed Size                  9135512 bytes
Variable Size             989855744 bytes
Database Buffers          654311424 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

/opt/oracle/product/19c/dbhome_1/bin/dbstart: Database instance "ORCLCDB" warm started.


[oracle@oel7-3 ~]$ $ORACLE_HOME/bin/dbshut $ORACLE_HOME
Processing Database instance "ORCLCDB": log file /opt/oracle/product/19c/dbhome_1/rdbms/log/shutdown.log
[oracle@oel7-3 ~]$ cat /opt/oracle/product/19c/dbhome_1/rdbms/log/shutdown.log

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 9 10:11:09 2025
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL> Connected.
SQL> Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Database instance "ORCLCDB" shut down.

通过日志可以看到数据库实例可以正常的启动和停止,接下来编写 Systemd Unit 文件。
创建 /etc/systemd/system/oracle19c.service 单元文件:

# /etc/systemd/system/oracle19c.service
[Unit]
Description=Oracle 19C
After=syslog.target network.target

[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart /opt/oracle/product/19c/dbhome_1
ExecStop=/opt/oracle/product/19c/dbhome_1/bin/dbshut /opt/oracle/product/19c/dbhome_1

[Install]
WantedBy=multi-user.target

修改了 Systemd 单元文件需要 reload:

systemctl daemon-reload

设置为开启自启:

systemctl enable --now oracle19c.service

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

滚动至顶部