systemd配置方法
# vim /etc/oratab
将注销行打开,N改为Y保存退出
orclcdb:/u01/app/oracle/product/19c/db_1:Y
dbstart和dbshut是Oracle自带的启动与关闭脚本,后面必须跟ORACLE_HOME,也可以通过修改dbstart和dbshut两个程序中的$1赋值去配置ORACLE_HOME;
这两个程序在10i之前是不包含启动与关闭监听程序的,11g之后支持开库前启动监听器
执行以下指令将Oracle服务写入systemd
cat << EOF > /usr/lib/systemd/system/oracle.service
[Unit]
Description=Oracle Database 19c Startup/Shutdown Service
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
ExecStart=/u01/app/oracle/product/19c/db_1/bin/dbstart /u01/app/oracle/product/19c/db_1
ExecStop=/u01/app/oracle/product/19c/db_1/bin/dbshut /u01/app/oracle/product/19c/db_1
[Install]
WantedBy=multi-user.target
EOF
授权
# chmod 754 /usr/lib/systemd/system/oracle.service
重载systemd
# systemctl daemon-reload
将oracle.service写入启动项
# systemctl enable oracle
生成关闭数据库脚本,位置随意
cat <<EOF > /home/oracle/shutdown.sh
#!/bin/bash
systemctl stop oracle
EOF
软链接到init 0和init 6(实现执行shutdown、reboot、init 0、init 6时一致性关库)
ln -s /home/oracle/shutdown.sh /etc/rc0.d/K09oracle_shutdown
ln -s /home/oracle/shutdown.sh /etc/rc6.d/K09oracle_shutdown
创建CDB启动后打开所有PDB的触发器
CREATE OR REPLACE TRIGGER open_pdbs
AFTER startup ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter pluggable database all open' ;
END open_pdbs ;
查询触发器
SYS@orcl>select trigger_name from all_triggers where trigger_name='OPEN_PDBS';