启动service报错ORA-44317: database open read-only

ADG(RAC)备库环境,srvctl添加service服务成功,启动service时报错ORA-44317: database open read-only。

这是预期行为, 使用"srvctl add service -d <db_name> -s <service_name>"创建服务时,将在 OCR 中创建和注册服务,但在使用"srvctl start service -d <db_name> -s <service_name>启动服务之前,不会在数据库中创建服务。

当使用 srvctl start service -d <db_name> -s <service_name> 启动服务时,如果数据库中不存在service_name该服务(查询 dba_services 将判断该服务是否在数据库中存在),则首先使用DBMS_SERVICES包创建此服务。如果数据库是只读的,则 dbms_services.create_service 将失败并显示 ORA-44317,因为数据库是只读的,并且"srvctl start service"命令将失败,并显示 PRKP-1030 和 CRS-0215。

但是,如果 <service_name> 已存在于备用数据库中,则可以通过 srvctl 启动该服务,而不会出现问题。通常,当在 primary 中创建 service_name 时,会出现这种情况,然后在 standby 上应用重做日志时,会在 standby 上创建相同的服务。

因此,两种方式,主库创建并启动同名service,让service信息同步到备库。或者备库直接在service_name中添加service服务名。

ORA-44317 TRYING TO START SERVICE IN READ-ONLY STANDBY (Doc ID 749657.1)

相关推荐
码农多耕地呗5 分钟前
mysql之深入理解b+树原理
数据库·b树·mysql
踢足球09296 分钟前
寒假打卡:2026-01-26
数据库
漂洋过海的鱼儿7 分钟前
Qt--元对象系统
开发语言·数据库·qt
沧澜sincerely10 分钟前
分组数据【GROUP BY 与 HAVING的使用】
数据库·sql·group by·having
知识分享小能手10 分钟前
Oracle 19c入门学习教程,从入门到精通,Oracle数据库控制 —— 事务与并发控制详解(14)
数据库·学习·oracle
2301_8112329812 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
予枫的编程笔记13 分钟前
【Redis实战进阶篇】高并发下数据安全与性能平衡?Redis准存储三大核心场景实战指南
数据库·redis·缓存·高并发优化·电商实战·redis准存储·redis pipeline
jiunian_cn14 分钟前
【Redis】Redis基本全局命令
数据库·redis·缓存
m0_5613596714 分钟前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python
霖霖总总15 分钟前
[小技巧48]MySQL 8.0 主从复制常见问题全解析:从原理到排障实战
数据库·mysql