linux CentOS7配置Oracle 19C 开机自启动
·
目录
1. 确认数据库当前状态
# 切换到 oracle 用户
su - oracle
# 检查监听器
lsnrctl status
# 检查数据库实例
sqlplus / as sysdba
SQL> select instance_name, status from v$instance;
运行状态下的话,关掉
# oracle 用户下执行
lsnrctl stop
sqlplus / as sysdba
SQL> shutdown immediate
SQL> exit
2. 配置 oratab 文件
# 用 root 用户修改最后一列为 Y
sudo vi /etc/oratab

3. 创建 systemd 服务文件
# 用 root 用户创建
su root
sudo vi /etc/systemd/system/oracle-19c.service
oracle-19c.service 文件内容
#定义服务的基本信息和依赖关系
[Unit]
#定义服务名称
Description=Oracle Database 19c
#控制启动顺序,在网络服务启动后,再启动Oracle,因为监听器需要网络
After=network.target
#程序运行核心配置-定义服务的启动/停止/重启行为
[Service]
#dbstart脚本执行后会退出,但是Oracle进程会继续在后台运行,所以用forking
Type=forking
#以Oracle用户运行脚本
User=oracle
#以oinstall运行脚本
Group=oinstall
#给当前服务设置的环境变量,此处与Oracle环境变量需一致
Environment="ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1"
Environment="ORACLE_SID=orcl"
Environment="PATH=/u01/app/oracle/product/19c/dbhome_1/bin:/usr/local/bin:/usr/bin:/bin"
# 启动命令
#/u01/app/oracle/product/19c/dbhome_1/bin/dbstart Oracle自带的启动脚本
#/u01/app/oracle/product/19c/dbhome_1 传给 dbstart 的参数,告诉它 ORACLE_HOME 在哪
ExecStart=/u01/app/oracle/product/19c/dbhome_1/bin/dbstart /u01/app/oracle/product/19c/dbhome_1
# 停止命令
ExecStop=/u01/app/oracle/product/19c/dbhome_1/bin/dbshut /u01/app/oracle/product/19c/dbhome_1
# 重启策略
#服务退出后不自动重启,自动重启有可能导致数据损坏
Restart=no
#开机自启配置-定义systemctl enable xxx 设置开机自启时,该服务挂载到哪个系统启动目标
#WantedBy=multi-user.target Linux多用户字符界面
#target 层级 关机-救援模式-多用户模式-图形界面模式
[Install]
WantedBy=multi-user.target
4. 启用并测试服务
#重新加载 systemd 配置
sudo systemctl daemon-reload
#启用开机自启
sudo systemctl enable oracle-19c
#启动 Oracle 服务
sudo systemctl start oracle-19c
#查看服务状态
sudo systemctl status oracle-19c

5. 验证 Oracle 是否启动成功
# 切换到 oracle 用户
su - oracle
# 检查监听器
lsnrctl status
# 检查数据库实例
sqlplus / as sysdba
SQL> select instance_name, status from v$instance;

6. 开关机测试自启动配置是否成功
关机操作
su - oracle
# 1. 停止监听器
lsnrctl stop
# 验证监听状态(确认已停止)
lsnrctl status
# 2. 进入 SQL*Plus 停止数据库
sqlplus / as sysdba
SQL> shutdown immediate
#等待显示
Database closed.
Database dismounted.
ORACLE instance shut down.
#之后退出
SQL> exit
#关闭linux系统
sudo shutdown -h now
开机操作
# 开机登录后切换到 oracle
su - oracle
# 检查监听器
lsnrctl status
# 检查数据库
sqlplus / as sysdba
SQL> select instance_name, status from v$instance;
如果显示 OPEN,说明自启动配置成功!

更多推荐


所有评论(0)