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

相关推荐
文牧之1 小时前
AutoVACUUM (PostgreSQL) 与 DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC (Oracle) 对比
运维·数据库·postgresql·oracle
難釋懷3 小时前
Android开发-在应用之间共享数据
android·jvm·oracle
恪心与java8 小时前
mysql
数据库·mysql·oracle
wangcheng869918 小时前
Oracle常用函数-日期时间类型
数据库·sql·oracle
右璇1 天前
ORACLE查看归档是否打开
数据库·oracle
数澜悠客1 天前
AI规则引擎:解锁SQL数据分析新姿势
数据库·人工智能·oracle
bing_1581 天前
MongoDB 的核心概念(文档、集合、数据库、BSON)是什么?
数据库·mongodb·oracle
HelloZheQ1 天前
MVCC:数据库并发控制的利器
服务器·数据库·oracle
JhonKI1 天前
【MySQL】日志缓冲区详解 以及 InnoDB内存结构总结
数据库·mysql·oracle
多多*2 天前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle