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

相关推荐
百度智能云技术站10 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
梦想平凡12 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
夏木~14 小时前
Oracle 中什么情况下 可以使用 EXISTS 替代 IN 提高查询效率
数据库·oracle
吴冰_hogan15 小时前
MySQL InnoDB 存储引擎 Redo Log(重做日志)详解
数据库·oracle
CodeCraft Studio15 小时前
【实用技能】如何在 SQL Server 中处理 Null 或空值?
数据库·oracle·sqlserver
武汉联从信息15 小时前
浅谈ORACLE中间件SOA BPM,IDM,OID,UCM,WebcenterPortal服务器如何做迁移切换
oracle
Elastic 中国社区官方博客16 小时前
Elasticsearch:什么是查询语言?
大数据·数据库·elasticsearch·搜索引擎·oracle
夜光小兔纸17 小时前
oracle dblink 的创建及使用
数据库·oracle
Smile丶凉轩18 小时前
MySQL库的操作
数据库·mysql·oracle
p@nd@19 小时前
Oracle筑基篇-调度算法-LRU的引入
数据库·oracle·操作系统·lru