当前位置: 首页
数据库
Oracle 19c自启动脚本配置与systemd服务单元文件编写指南

Oracle 19c自启动脚本配置与systemd服务单元文件编写指南

热心网友 时间:2026-06-27
转载
### 为什么直接改 `/etc/oratab` 为 Y 还是不启动 这事其实挺让人迷惑的:明明已经把 `/etc/oratab` 里的标记改成了 `Y`,可机器重启后数据库就是没起来。问题出在哪儿? 关键点在于 Oracle 19c 的 `dbstart` 脚本已经废弃了自动监听器启动逻辑。它硬编码检查 `ORACLE_HOME_LISTNER` 环境变量——而这个变量在 19c 里默认根本没设,也不再由 `oraenv` 或 profile 自动导出。所以脚本一启动就报错:“ORACLE_HOME_LISTNER is not set, unable to auto-start Oracle Net Listener”。然后它直接跳过监听器启动,数据库也因为连不上监听而挂起或静默失败。 怎样配置Oracle 19c的自启动脚本_编写systemd服务单元文件 解决办法其实就三条: - 手动补全 `ORACLE_HOME_LISTNER=$ORACLE_HOME`,位置放在 `dbstart` 脚本开头(`#!/bin/bash` 下一行就行)。 - `/etc/oratab` 里的 `Y` 必须是大写,不能带空格或注释尾缀。比如 `ORCL:/u01/app/oracle/product/19c/dbhome_1:Y` 这样写。 - 另外要注意:`dbstart` 不会去校验密码文件、spfile 路径或 `local_listener` 配置,失败时只把日志写到 `$ORACLE_HOME/startup.log`,终端上完全看不到错误——这也是很多人折腾半天找不到原因的地方。 ### systemd service 文件里为什么不能只写 `Environment=ORACLE_HOME=...` systemd 启动服务时不会加载 `~oracle/.bash_profile` 或 `/etc/profile`,所以 `ORACLE_SID`、`PATH`、`LD_LIBRARY_PATH` 全是空的。只要漏了 `ORACLE_SID`,`dbstart` 就找不到对应的实例行,直接跳过启动,连个通知都没有。 更稳妥的做法是单独写一个轻量环境初始化脚本,比如 `/etc/profile.d/oracle_env.sh`,里面只放三行: ``` export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1 export ORACLE_SID=ORCL export PATH=$ORACLE_HOME/bin:$PATH ``` 然后在 service 文件的 `ExecStart` 里改成这样: ``` /bin/bash -c 'source /etc/profile.d/oracle_env.sh && $ORACLE_HOME/bin/dbstart $ORACLE_HOME' ``` 绝对不要尝试在 `Environment=` 行里拼接变量,比如 `Environment="PATH=$ORACLE_HOME/bin:$PATH"`——systemd 不会解析变量,它会原样把这个字符串传给进程,结果路径就变成了字面量的 `$ORACLE_HOME`,完全不可用。 ### `Type=forking` 和 `Type=oneshot` 哪个更适合 Oracle 19c 从实际部署经验来看,`Type=forking` 更稳妥,但必须配上 `PIDFile`;`Type=oneshot` 看似简单,实际容易误判“启动完成”,导致后面依赖的服务提前启动,或者 `systemctl start` 返回过早,以为服务已经起来了,其实数据库还没完全就绪。 - 选 `Type=forking` 时,务必设置 `PIDFile=$ORACLE_HOME/dbs/lk$ORACLE_SID`(注意是 `lk` 开头的锁文件,不是 `.pid` 文件)。 - 选 `Type=oneshot` 的话,必须加上 `RemainAfterExit=yes`,否则服务状态会立刻变成 `inactive`,`systemctl is-active oracle.service` 查不到运行态。 - 不管用哪种类型,都建议加一行 `TimeoutSec=300`——`dbstart` 内部等待监听器默认是 15 秒,但在 ARM 平台或高负载下容易超时,systemd 会直接 kill 掉进程。 ### 监听器和数据库的启动顺序怎么保障不踩坑 `dbstart` 内部虽然有等待逻辑,但它只执行一次 `lsnrctl status`,并不验证监听器是否真正注册了当前实例。最常见的现象是:监听器起来了,但 `sqlplus / as sysdba` 报 `ORA-12514: TNS:listener does not currently know of service requested`——监听器不认识这个数据库实例。 这里有几个实战建议: - 不要用 `ExecStartPre` 单独启动监听器再启动数据库——这样绕过了 `dbstart` 对 `oratab` 的读取,实例很可能被忽略掉。 - 应该在 `dbstart` 执行后追加一个验证步骤。比如在 service 的 `ExecStartPost` 里加: ``` /bin/bash -c 'sleep 10 && $ORACLE_HOME/bin/sqlplus -S / as sysdba < /dev/null' ``` - 更关键的是检查数据库内部的 `local_listener` 配置:`show parameter local_listener` 必须指向正确的地址,然后执行 `alter system register;` 确保动态注册生效。 最后必须提一个最容易忽略的点:systemd 服务启动时,`oracle` 用户对 `$ORACLE_HOME/bin/` 下所有可执行文件必须有 `x` 权限,特别是 `dbstart`、`lsnrctl`、`sqlplus`。权限不对时,service 日志里只显示 “Permission denied”,不会告诉你具体哪个文件——排查起来相当头大。
来源:https://www.php.cn/faq/2692968.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
如何配置Oracle可恢复空间分配以防止任务中断

如何配置Oracle可恢复空间分配以防止任务中断

启用可恢复空间分配需将RESUMABLE_TIMEOUT设为非零值(如3600秒),RAC环境需逐节点单独设置。该机制仅对ORA-01536等空间类错误生效,挂起期间事务锁定状态不变,超时自动中止。会话级启用需显式指定timeout和name,否则可能无效。

时间:2026-07-09 07:09
Redis集群升级配置文件不兼容 对照新旧参数手册转换

Redis集群升级配置文件不兼容 对照新旧参数手册转换

升级至Redis7 0配置不兼容须知:主从复制命令由slaveof改为replicaof否则报错;集群全量覆盖参数默认开启需改为关闭;TCP连接积压参数需与系统内核一致;访问控制列表默认用户无管理权限需授权;节点配置文件禁止手动编辑,应通过命令管理。

时间:2026-07-09 07:09
Oracle 19c补丁冲突问题修复方法详细步骤使用opatch apply命令

Oracle 19c补丁冲突问题修复方法详细步骤使用opatch apply命令

Oracle19c补丁冲突因新旧补丁修复重叠或文件冲突所致。需先确认OPatch版本、inventory一致性及执行用户正确性,再通过opatchprereq定位具体冲突。真实冲突可回退旧补丁或改用完整RU流程,RAC环境需逐节点检查inventory。

时间:2026-07-09 07:08
MySQL修改权限后为何必须执行FLUSH PRIVILEGES?

MySQL修改权限后为何必须执行FLUSH PRIVILEGES?

MySQL修改权限后是否执行FLUSHPRIVILEGES取决于修改方式。通过GRANT或ALTERUSER标准命令自动同步,无需手动刷新;直接UPDATEmysql user表则必须执行以刷新内存缓存。已存在连接不重载,需注意host匹配、认证插件兼容性及RELOAD权限。

时间:2026-07-09 07:08
SQL嵌套查询在电商订单报表中的应用实践

SQL嵌套查询在电商订单报表中的应用实践

SQL嵌套查询在电商订单报表中适用于条件筛选,如快速圈定用户范围,但不适合替代关联分析。使用时需注意子查询空值导致IN失效、必须返回单列、MySQL5 7不支持LATERAL及CTE。聚合分析应依赖聚合加过滤,深层嵌套可用派生表或CTE分步处理。

时间:2026-07-09 07:08
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜