安装完Centos7下的oracle19c,下面开始设置开机自启动。
方法1
# 1、root用户修改 /etc/oratab, 将上面的N改为Y
vi /etc/oratab
orcl:/data1/opt/oracle/app/oracle/product/19/dbhome_1:N
将上面的N改为Y
# 2、oracle用户修改
su - oracle
cd $ORACLE_HOME/bin
vi dbstart
修改 #ORACLE_HOME_LISTNER=$1 为 ORACLE_HOME_LISTNER=$ORACLE_HOME
vi dbshut
修改 #ORACLE_HOME_LISTNER=$1 为 ORACLE_HOME_LISTNER=$ORACLE_HOME
# 3、root用户修改
chmod 777 /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
添加
# for oracle
su - oracle -lc 'lsnrctl start'
su - oracle -lc 'dbstart'
# 4. 重启,测试成功
reboot 或 init 6
注意: su - oracle -lc 'lsnrctl start'
-l 表示同时切换用户目录。比如你要换到oracle用户下你的目录就同时在oracle目录下了。
-c则表示执行完命令好再返回到原来的用户。
方法2(推荐)
# 1. 需要先修改一下 oracle 的启动脚本配置:
vi /etc/oratab
将“ORCLCDB:/opt/oracle/product/19c/dbhome_1:N”
改为“ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y”
保存退出
# 2. 然后设置数据库的启动命令
# 增加的内容为: 注意改成自己的$ORACLE_HOME
vi /usr/bin/oracle.sh
#! /bin/bash
# script For oracle19c.service
/data1/opt/oracle/app/oracle/product/19/dbhome_1/bin/lsnrctl start
/data1/opt/oracle/app/oracle/product/19/dbhome_1/bin/dbstart /data1/opt/oracle/app/oracle/product/19/dbhome_1/dbhome_1
# 3. 设置文件oracle.sh的读写权限
chmod 777 /usr/bin/oracle.sh
# 4. 设置 oracle19c.service
vi /etc/systemd/system/oracle19c.service
编辑添加内容为:
[Unit]
Description=Oracle19c
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/opt/oracle/product/19c/dbhome_1"
ExecStart=/usr/bin/oracle.sh
[Install]
WantedBy=multi-user.target
# 5. 设置开机自动启动
systemctl enable oracle19c
# 6. 重启测试.
reboot 或者 ini 6
成功.
systemctl status oracle19c
## 错误信息1
[root@ora-srv1 ~]# /data1/opt/oracle/app/oracle/product/19/dbhome_1/bin/lsnrctl start
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 24-MAR-2022 09:41:43
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Message 1070 not found; No message file for product=network, facility=TNSTNS-12545: Message 12545 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
Linux Error: 2: No such file or directory
# systemctl start oracle19c 出现的错误
3月 24 10:23:04 ora-srv1 systemd[1]: Starting Oracle19c...
3月 24 10:23:10 ora-srv1 oracle.sh[1135]: LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 24-MAR-2022 10:23:10
3月 24 10:23:10 ora-srv1 oracle.sh[1135]: Copyright (c) 1991, 2019, Oracle. All rights reserved.
3月 24 10:23:10 ora-srv1 oracle.sh[1135]: Message 1070 not found; No message file for product=network, facility=TNSTNS-12545: Message 12545 not found; ...cility=TNS
3月 24 10:23:10 ora-srv1 oracle.sh[1135]: TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
3月 24 10:23:10 ora-srv1 oracle.sh[1135]: TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
3月 24 10:23:10 ora-srv1 oracle.sh[1135]: Linux Error: 2: No such file or directory
3月 24 10:23:11 ora-srv1 oracle.sh[1135]: mkdir: 无法创建目录"/network": 权限不够
3月 24 10:23:11 ora-srv1 oracle.sh[1135]: Failed to auto-start Oracle Net Listener using /bin/tnslsnr
3月 24 10:23:12 ora-srv1 oracle.sh[1135]: Processing Database instance "orcl": log file /data1/opt/oracle/app/oracle/product/19/dbhome_1/rdbms/log/startup.log
Hint: Some lines were ellipsized, use -l to show in full.
这个问题有待解决!