CentOS 7.9 最小化系统配置 Oracle 19c 自启动脚本
1. 配置 Oracle 实例自启动
编辑 /etc/oratab
文件,设置数据库实例自启动:
bash
vi /etc/oratab
每行代表一个数据库实例,格式为: SID:ORACLE_HOME:AUTOSTART
例如:
ruby
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
确保将需要自启动的实例的最后一个字段设置为 Y
。
2. 创建数据库管理脚本
创建并编辑数据库管理脚本:
bash
vi /opt/oracle/manage_db.sh
将以下内容复制到脚本中:
bash
#!/bin/bash
# 用法: ./manage_db.sh <action>
# 示例: ./manage_db.sh start
ACTION=$1
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
start_db() {
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/bin/dbstart $ORACLE_HOME
}
stop_db() {
$ORACLE_HOME/bin/dbshut $ORACLE_HOME
}
restart_db() {
stop_db
sleep 10
start_db
}
status_db() {
$ORACLE_HOME/bin/lsnrctl status
# 列出所有运行中的实例
sqlplus -S / as sysdba <<EOF
set pagesize 0 feedback off verify off heading off echo off
select instance_name, status from v\$instance;
exit
EOF
}
case "$ACTION" in
start)
start_db
;;
stop)
stop_db
;;
restart)
restart_db
;;
status)
status_db
;;
*)
echo "用法: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
3. 设置脚本权限
设置脚本所有者为 oracle 用户和 oinstall 组:
bash
sudo chown oracle:oinstall /opt/oracle/manage_db.sh
设置脚本执行权限:
bash
sudo chmod 750 /opt/oracle/manage_db.sh
4. 创建 systemd 服务文件
创建并编辑 systemd 服务文件:
bash
vi /etc/systemd/system/oracle19c.service
将以下内容复制到服务文件中:
ini
[Unit]
Description=Oracle 19c Databases
After=network.target
Requires=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
LimitMEMLOCK=infinity
LimitNOFILE=65535
Environment="ORACLE_HOME=/opt/oracle/product/19c/dbhome_1"
ExecStart=/opt/oracle/manage_db.sh start
ExecStop=/opt/oracle/manage_db.sh stop
ExecReload=/opt/oracle/manage_db.sh restart
Restart=no
RemainAfterExit=yes
TimeoutStartSec=10min
TimeoutStopSec=10min
[Install]
WantedBy=multi-user.target
5. 启用并测试服务
启用 Oracle 19c 服务开机自启:
bash
systemctl enable oracle19c.service
测试服务:
bash
systemctl start oracle19c.service
systemctl stop oracle19c.service
systemctl status oracle19c.service
systemctl restart oracle19c.service
注:按照这些步骤,您可以在 CentOS 7.9 最小化系统上配置 Oracle 19c 的自启动脚本。请确保根据您的具体环境并调整相应的路径和相应设置。