首页 > 数据库 >Oracle静态监听中SID_NAME区分大小写吗?

Oracle静态监听中SID_NAME区分大小写吗?

时间:2024-09-19 15:26:06浏览次数:9  
标签:PROTOCOL NAME SID ADDRESS Oracle 监听 GPS

如果静态监听中ORACLE_SID不注意大小写的话,可能导致数据库连接不上的问题。如下案例所示:

$ sqlplus system/***@GPSUAT

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Sep 18 15:48:37 2024
Version 19.24.0.0.0

Copyright (c) 1982, 2024, 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
Additional information: 4480
Additional information: -1989017509
Process ID: 0
Session ID: 0 Serial number: 0


Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied

检查数据库实例正常,监听正常。使用tnsping检查服务的网络是否正常,如下所示:

$ tnsping GPSUAT

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 07-NOV-2023 08:35:42

Copyright (c) 1997, 2022, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.40)(PORT = 15021)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = GPSUAT)))
OK (10 msec)

数据库中tnsnames.ora的配置如下所示:

GPSUAT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.40)(PORT = 15021))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = GPSUAT)
    )
  )

此时,监听的配置如下

$ more listener.ora 
GPS =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = GPS))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.40)(PORT = 15021))
      (ADDRESS = (PROTOCOL = TCPS)(HOST =192.168.9.40)(PORT = 15022))
    )
  )

SID_LIST_GPS =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = GPS)
      (ORACLE_HOME=/opt/oracle19c/product/19.3.0/db_1)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = GPSUAT)
      (SID_NAME = GPS)
      (ORACLE_HOME=/opt/oracle19c/product/19.3.0/db_1)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = GPSUAT2)
      (SID_NAME = GPS)
      (ORACLE_HOME=/opt/oracle19c/product/19.3.0/db_1)
    ) 
  )
SECURE_REGISTER_GPS = (IPC)
SECURE_CONTROL_GPS =(TCPS,IPC)
ADMIN_RESTRICTIONS_GPS = ON
DIAG_ADR_ENABLED_GPS = OFF

正确的配置如下(SID_NAME必须使用小写,跟实例的大小写一致。)

$ more listener.ora 
GPS =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = GPS))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.40)(PORT = 15021))
      (ADDRESS = (PROTOCOL = TCPS)(HOST =192.168.9.40)(PORT = 15022))
    )
  )

SID_LIST_GPS =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = gps)
      (ORACLE_HOME=/opt/oracle19c/product/19.3.0/db_1)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = GPSUAT)
      (SID_NAME = gps)
      (ORACLE_HOME=/opt/oracle19c/product/19.3.0/db_1)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = GPSUAT2)
      (SID_NAME = gps)
      (ORACLE_HOME=/opt/oracle19c/product/19.3.0/db_1)
    ) 
  )
SECURE_REGISTER_GPS = (IPC)
SECURE_CONTROL_GPS =(TCPS,IPC)
ADMIN_RESTRICTIONS_GPS = ON

其实这篇博客配置静态监听时谨防SID_NAME大小写问题导致数据库无法连接[1]中已经对这个问题进行了详细的描述,这里不做重复展开讨论了,直接应用它的结论。如下所示:

在监听静态注册的环境中,listener.ora文件中写的实例名,要区分大小写,否则虽然远程telnet 监听端口是通的,但依旧会报出数据库不可用的问题。

之所以会报出数据库不可用问题,是由于远程连接通过监听连到的是另外一个库,而该库没有启动或者不存在。。。

总结:以后在处理问题中,注意区分实例名大小写问题,在监听层面,动态监听和静态监听很容易混淆实例名问题,尤其当服务器上存在大小写不同的数据库时候。

参考资料
[1]

1: http://blog.itpub.net/519536/viewspace-704704/

标签:PROTOCOL,NAME,SID,ADDRESS,Oracle,监听,GPS
From: https://www.cnblogs.com/kerrycode/p/18420610

相关文章

  • Oracle 19c OCP 认证考试 082 题库(第23题)- 2024年修正版
    【优技教育】Oracle19cOCP082题库(Q23题)-2024年修正版考试科目:1Z0-082考试题量:90通过分数:60%考试时间:150min本文为(CUUG原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。原文地址:http://www.cuug.com/index.php?s=/home/article/detail/id/3407.html第......
  • tp3.2.3 关于chdir导致namespace Event路径冲突的问题
    echo$_SERVER['DOCUMENT_ROOT'].'<br>';echogetcwd().'<br>';echodirname(__FILE__);chdir(dirname(__FILE__));require_once("../thirdPay/OrderCreate.php");require_once("../thirdPay/OrderQuery.php&qu......
  • Oracle 19c通过cdb的service name连接后为pdb库
     Oracle19c通过cdb的servicename连接后为pdb库 现在数据库版本为19.19,库名为oemdb,有1个容器数据库pdb为empdbrepos,如下:[oracle@oem13c~]$sqlplus/assysdbaSQL*Plus:Release19.0.0.0.0-ProductiononThuSep1909:34:512024Version19.19.0.0.0......09:......
  • WPF RadioButton GroupName
    <Windowx:Class="WpfApp375.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • Q:LISTAGG()函数用法笔记(oracle)
    .LISTAGG()函数作为普通函数使用时就是查询出来的结果列转为行☆LISTAGG函数既是分析函数,也是聚合函数有两种用法:1、分析函数,如:row_number()、rank()、dense_rank()等,用法相似listagg(合并字段,连接符)withingroup(orderby合并的字段的排序)over(partitionby分组字段)......
  • Oracle 19c OCP 认证考试 082 题库(第22题)- 2024年修正版
    【优技教育】Oracle19cOCP082题库(Q22题)-2024年修正版考试科目:1Z0-082考试题量:90通过分数:60%考试时间:150min本文为(CUUG原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。原文地址:http://www.cuug.com/index.php?s=/home/article/detail/id/3406.html第......
  • Hadoop(十二)NameNode 和 SecondaryNameNode
    一、NN和2NN工作机制1、NameNode中的元数据存储在哪里?存储在NameNode节点的磁盘中会导致效率过低,因为经常需要进行随机访问和响应客户请求;存储在内存中,一旦元数据丢失,整个集群就无法工作,也不合适。因此产生了在磁盘中备份元数据的FsImage。引入Edits文件(只进行追加操作,效率很......
  • PyQt / PySide + Pywin32 + ctypes 自定义标题栏窗口 + 完全还原 Windows 原生窗口边
    项目地址:GitHub-github201014/PyQt-NativeWindow:AclassofwindowincludenativeEvent,usePySideorPyQtandPywin32andctypesAclassofwindowincludenativeEvent,usePySideorPyQtandPywin32andctypes-github201014/PyQt-NativeWindowhttps://githu......
  • 数据库数据恢复—Oracle数据库打开报错“system01.dbf需要更多的恢复来保持一致性,数据
    Oracle数据库故障&检测:打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,无法通过备份去恢复数据库。恢复zxfg用户下的数据。出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据......
  • [昌哥IT课堂]|欢迎 MySQL 9.0,回顾 Oracle 在 8.0 版中的管理(译)
    对于新兴技术和社区的管理是相对容易的。经过29年发展,MySQL已成为全球数百万用户中使用最广泛且备受信任的开源数据库之一。在这一规模的社区领导中可能存在复杂性。我们努力寻求稳定和创新的平衡,为客户提供稳定可预测的平台,并为技术用户提供新功能。Oracle通过投资于技术的工......