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

相关推荐
有想法的py工程师26 分钟前
PostgreSQL 设置唯一主键的生产事故复盘与最佳实践
数据库·oracle
幻灭行度1 小时前
Redis ACL 实现多账号权限隔离
数据库·redis·oracle
Lao A(zhou liang)的菜园1 小时前
作为Oracle DBA,如何快速处理HANG类故障?
数据库·oracle·dba
Lao A(zhou liang)的菜园1 小时前
作为DBA,如何快速处理Oracle连接类故障?
数据库·oracle·dba
六月雨滴1 小时前
Oracle Data Guard 完全解析及与 RMAN 的核心区别
数据库·oracle·dba
内蒙深海大鲨鱼2 小时前
mysql学习
学习·mysql·oracle
一只fish2 小时前
Oracle官方文档翻译《Database Concepts 26ai》第15章-逻辑存储结构
数据库·oracle
BlackHeart120315 小时前
【SQL】Oracle中序列(Sequence)作为默认值引发的ORA-00979
数据库·sql·oracle
一点事16 小时前
docker:安装oracle 19c
docker·oracle·容器
Drache_long18 小时前
CentOS7安装Oracle数据库
数据库·oracle