CentOS 7.9 最小化系统配置 Oracle 19c 开机自启动

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 的自启动脚本。请确保根据您的具体环境并调整相应的路径和相应设置。

相关推荐
传说故事14 小时前
数据库中一些常用英文单词含义
数据库·oracle
dotnet9017 小时前
批量生成所有表的修改脚本
数据库·sql·oracle
蓝鸟197419 小时前
EXISTS子查询SELECT 1与SELECT *到底有无区别?Oracle生产实测解惑(附HIS业务SQL案例)
oracle·his系统·sql优化·数据库调优·exists
一十九的酒20 小时前
Oracle Data Guard 备库归档日志满导致同步中断的解决实战
数据库·oracle·oracle-dg 续传·归档空间满
回眸&啤酒鸭1 天前
【回眸】Memmy Agent 智能体落地应用全景指南
数据库·oracle
一只专注api接口开发的技术猿1 天前
OpenClaw 实战:搭建京东商品监控与简易数据分析脚本
大数据·jvm·数据库·oracle·数据分析
Irene19911 天前
Oracle 连接避坑指南:环境+配置+账号
数据库·oracle
鹿鸣天涯1 天前
应急响应:MySQL日志分析
mysql·安全·adb·oracle
仙宇觉尘2 天前
记一次 .NET 某中医药附属医院门诊系统 崩溃分析
数据库·oracle·.net
NineData2 天前
Oracle 长事务正在消耗 undo 空间,ChatDBA 能提前发现
数据库·sql·oracle·agent·ninedata·回滚·长事务