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

相关推荐
川贝枇杷膏cbppg3 小时前
dm_unknown_202512.log:达梦数据库 “未分类日志“
数据库·oracle
求学中--4 小时前
MySQL 数据库完整操作命令与使用指南
数据库·sql·mysql·oracle
Stone_OverLooking10 小时前
Qt6.5.3 mingw64 Ninja编译oracle oci驱动
数据库·qt·oracle
安当加密10 小时前
Oracle数据库透明加密实践:基于TDE架构的安全加固方案
数据库·oracle·架构
NineData10 小时前
NineData 支持 DB2 迁移到 PolarDB Oracle
数据库·oracle·ninedata·数据库迁移·数据库迁移工具·信创改造·智能数据管理平台
DBA小马哥14 小时前
Oracle迁移中查询优化器原理解析与实战优化策略
数据库·oracle
卓码软件测评14 小时前
第三方数据库测试:【utPLSQL用于Oracle和tSQLt用于SQL Server数据库单元测试框架入门】
数据库·oracle·sqlserver·单元测试·mssql
码农阿豪15 小时前
从 Oracle 到金仓:一次真实迁移经历的复盘与思考
数据库·oracle·金仓数据库
一颗宁檬不酸15 小时前
Oracle PL/SQL 过程与游标实战分享:马拉松赛事管理系统
数据库·sql·oracle
染指111015 小时前
72.渗透-Mysql基础-选择数据库
数据库·oracle