






















首先确定手工能够启动:
进入Linux 的oracle账号
sqlplus / as sysdba登录 执行startup
可以正常启动的话,再执行
SELECT status FROM v$instance;
可以查到cbd状态
设置开机启动方法:
ALTER PLUGGABLE DATABASE ... SAVE STATE)。1. 查看 oratab
cat /etc/oratab
这部可能会报错cat: /etc/oratab: No such file or directory,说明
以 root 身份:ls -l $ORACLE_HOME/root.sh
如果这个脚本本身就存在,说明安装过程确实准备执行 root.sh,只是没被执行。
以root身份执行$ORACLE_HOME/root.sh
检查cat /etc/oratab,如果没有自己的实例启动的配置,需要在最后添一下,示例如下:
orclcdb:/u01/app/oracle/product/19c/dbhome_1:Y
第 1 段:ORACLE_SID
第 2 段:ORACLE_HOME
第 3 段:Y 表示允许 dbstart 自动启动该实例。
ls -l $ORACLE_HOME/bin/dbstart
ls -l $ORACLE_HOME/bin/dbshut
这两个脚本是 Oracle 自带的,用来根据 /etc/oratab 启动/关闭实例。
2.创建文件/etc/systemd/system/oracle-db.service
[Unit] Description=Oracle Database 19c (ORCLCDB) After=network.target [Service] Type=forking # 直接用绝对路径,不再依赖 $ORACLE_HOME 变量 ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart /opt/oracle/product/19c/dbhome_1 ExecStop=/opt/oracle/product/19c/dbhome_1/bin/dbshut /opt/oracle/product/19c/dbhome_1 User=oracle Group=oinstall LimitMEMLOCK=infinity LimitNOFILE=65535 RemainAfterExit=yes [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable oracle-db
sudo systemctl start oracle-db
sudo systemctl status oracle-db
如果之前服务是 failed,start 前可以先 reset-failed:
sudo systemctl reset-failed oracle-db
sudo systemctl start oracle-db
Oracle 官方文档说明:用 dbstart / dbshut 做自动启停时,这两个脚本会根据 /etc/oratab 启动/关闭对应实例,同时也会启动/关闭监听,不用单独写监听自启动脚本
无论用哪种方式,启动后检查:
ps -ef | grep smon
能看到:
oracle XXXX 1 10:38 ? 00:00:00 ora_smon_ORCLCDB
就说明实例已经随 systemd 起来了。
关于PDB的自启动,见上一篇博文
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。