配置Linux下Oracle19c开机自动启动及验证
配置oracle19c自动启动的2个关键点
1.$ORACLE_HOME 2.安装oracle的用户
以本人数据库为例子
$ORACLE_HOME=‘/home/afcinst/app/afcinst/product/19.3.0/dbhome_1’
安装oracle的用户:oracle
一.配置oracle19c开机自动启动
1. 修改 oracle 的启动脚本配置
[root@HEB-2-SC etc]# vi /etc/oratab
将里面 最后一句话设置从N 修改为Y 允许启动
orclSid:/home/oracle/app/product/19.3.0/dbhome_1:Y
2. 设置 数据库的启动命令
[root@HEB-2-SC etc]# vi /usr/bin/oracle.sh
增加的内容为:
#! /bin/bash
# script For oracle19c.service
#启动监听
/home/oracle/app/product/19.3.0/dbhome_1/bin/lsnrctl start
#启动数据库实例:q:q
/home/oracle/app/product/19.3.0/dbhome_1/bin/dbstart /home/oracle/app/product/19.3.0/dbhome_1
设置这个文件的读写权限
chmod 777 /usr/bin/oracle.sh
3. 新增一个关于oracle19c的服务
[root@HEB-2-SC etc]# vi /etc/systemd/system/oracle19c.service
编辑内容如下 每个配置都要另起一行
在其他机器配置注意红色部分的替换:
[Unit]
Description=Oracle19c
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=afcinst Environment="ORACLE_HOME=/home/afcinst/app/afcinst/product/19.3.0/dbhome_1 "
ExecStart=/usr/bin/oracle.sh
[Install]
WantedBy=multi-user.target
如果后续有对oracle19c.service配置文件进行修改,请先执行下面的语句
重新加载服务配置文件
[root@HEB-2-SC etc] # systemctl daemon-reload
4. 设置新增的oracle服务开机自动启动
[root@HEB-2-SC etc]# systemctl enable oracle19c
查看服务运行状态,检查状态是否为“Active”
[root@HEB-2-SC etc]# systemctl status oracle19c
至此 Oracle19c重启自动启动已经配置完成
5. 多pdb容器数据库的额外操作
如果你安装的oracle19c属于多PDB容器数据库,由于oracle19c默认CBD重启后,PDB都是Mount状态,所以我们需要在CDB下创建触发器来实现在CDB重启的时PDB也自动打开
SQL> show con_name;
CON_NAME
-------------------
CDB$ROOT
SQL> CREATE OR REPLACE TRIGGER open_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; END open_pdbs;/
二、验证重启服务是否自动启动
1.先关闭oracle服务,关闭后验证客户端不能连接oracle
切换至装oracle的用户下面
[root@HEB-2-SC etc]#su – oracle
关闭数据库实例
[oracle@HEB-2-SC ~]$ dbshut $ORACLE_HOME
关闭数据库监听
Lsnrctl stop
查看oracle服务 确认oracle服务已关闭
[oracle@HEB-2-SC ~]$ ps -ef | grep ora
Oracle客户端无法连接数据库
2.reboot重启linux
以下操作都在root用户下
[root@HEB-2-SC etc]# reboot
待系统重新启动后
查看oracle服务是否已经启动
[root@HEB-2-SC ~]$ ps -ef | grep ora
经过验证,关机前oracle服务已关闭,在系统重启后oracle服务会自动重启
此时再用客户端连接数据库,连接正常!