You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle数据库PKI配置后连接报错ORA-01034/ORA-27101求助

排查Oracle PKI配置后ORA-01034/ORA-27101错误的根因

已完成Oracle数据库PKI配置:tnsping执行成功、监听器状态正常、SHA-256自签名证书交换完成,但客户端执行sqlplus /@dbserver-check时出现以下错误:

sqlplus /@dbserver-check

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jul 20 10:56:19 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0

客户端tnsnames.ora文件内容:

DBSERVER =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCPS)(HOST = host)(PORT = port))
   (CONNECT_DATA=
     (SERVER = DEDICATED)
     (SERVICE_NAME=service-name)
   )
  )
DBSERVER-CHECK =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCPS)(HOST = host)(PORT = port))
   (CONNECT_DATA=
     (SERVER = DEDICATED)
     (SERVICE_NAME=service-name)
   )
   (SECURITY=(SSL_SERVER_CERT_DN="CN=DBSERVER"))
  )

排查步骤:

  • 确认数据库实例运行状态
    在数据库服务器执行ps -ef | grep pmon,查看对应实例的pmon进程是否存在;再尝试本地登录sqlplus / as sysdba,检查实例是否处于OPEN状态。若实例未启动,先启动实例再测试连接。

  • 校验tnsnames.ora参数准确性
    确认DBSERVER-CHECK中的HOST、PORT、SERVICE_NAME与数据库端实际配置完全一致;尝试用DBSERVER别名连接测试,若同样报错,说明问题可能不在SSL配置,而是基础连接参数错误。

  • 验证SSL证书DN匹配性
    在数据库服务器执行orapki wallet display -wallet <服务器钱包路径>,查看服务器证书的实际DN,确保与客户端SECURITY=(SSL_SERVER_CERT_DN="CN=DBSERVER")中的内容完全一致(包括大小写、标点符号),DN不匹配会导致连接失败并触发类似实例不可用的错误。

  • 检查SSL配置完整性

    • 客户端:确认sqlnet.ora中配置了WALLET_LOCATION指向正确的客户端钱包,且SQLNET.AUTHENTICATION_SERVICES=(TCPS);
    • 服务器端:检查listener.ora是否正确配置了TCPS协议的监听地址,sqlnet.ora中是否指定了正确的服务器钱包路径及SSL参数。
  • 排查共享内存相关异常
    如果数据库实例确实处于运行状态,需检查服务器端ORACLE_SID环境变量是否正确,实例启动参数中共享内存配置是否正常;远程连接时,若客户端无法正确获取实例共享内存信息,也可能触发该错误,可检查监听器是否正确注册了实例服务。

内容的提问来源于stack exchange,提问作者Amit Mahajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 08:15:40