自定义oracle启动服务
1、修改ORACLE ORLCPDB1为默认启动
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB1 READ WRITE NO
SQL> alter pluggable database ORCLPDB1 open;
SQL> alter pluggable database ORCLPDB1 save state;2、编写shell脚本
2.0、切换用户
[root@localhost ~]# su - oracle
2.1、oracle启动脚本
[oracle@localhost ~]$ cat start.sh #!/bin/bash sqlplus / as sysdba << EOF startup; EOF
2.2、oracle重启脚本
[oracle@localhost ~]$ cat reload.sh #!/bin/bash sqlplus / as sysdba <<EOF shutdown immediate; startup; EOF
2.3、oracle停止脚本
[oracle@localhost ~]$ cat shut.sh #!/bin/bash sqlplus / as sysdba <<EOF shutdown immediate; EOF
2.4、分配权限
chmod +x reload.sh shut.sh start.sh
3、添加启动服务
3.1、数据库启动服务器
su - root cd /usr/lib/systemd/system [oracle@oracle system]$ vim oracledb.service [Unit] Description=OracleDB Start After=network.target remote-fs.target nss-lookup.target [Service] Type=simple ExecStart=/usr/bin/su - oracle -c "/home/oracle/start.sh" >> /tmp/oracledb.log ExecReload=/usr/bin/su - oracle -c "/home/oracle/relaod.sh" >> /tmp/oracledb.log ExecStop=/usr/bin/su - oracle -c "/home/oracle/shut.sh" >> /tmp/oracledb.log PrivateTmp=true RemainAfterExit=yes [Install] WantedBy=multi-user.target
3.2、监听服务
[oracle@oracle system]$ vim lnstctl-server.service [Unit] Description=Oracle RDBMS After=network.target remote-fs.target nss-lookup.target [Service] Type=simple ExecStart=/usr/bin/su - oracle -c "/opt/oracle/product/21c/dbhome_1/bin/lsnrctl start >> /tmp/lsnrctl.log" ExecReload=/usr/bin/su - oracle -c "/opt/oracle/product/21c/dbhome_1/bin/lsnrctl reload >> /tmp/lsnrctl.log" ExecStop=/usr/bin/su - oracle -c "/opt/oracle/product/21c/dbhome_1/bin/lsnrctl stop >> /tmp/lsnrctl.log" RemainAfterExit=yes [Install] WantedBy=multi-user.target
3.3、启动服务测试
systemctl start lnstctl-server.service systemctl start oracledb.service systemctl enable lnstctl-server.service systemctl enable oracledb.service