Oracle靜態監聽中SID_NAME區分大小寫嗎?

来源:https://www.cnblogs.com/kerrycode/p/18420610
-Advertisement-
Play Games

如果靜態監聽中ORACLE_SID不註意大小寫的話,可能導致資料庫連接不上的問題。如下案例所示: $ sqlplus system/***@GPSUATSQL*Plus: Release 19.0.0.0.0 - Production on Wed Sep 18 15:48:37 2024Versi ...


如果靜態監聽中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/

掃描上面二維碼關註我 如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力! 本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接.
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SQL Server的Descending Indexes降序索引 背景索引是關係型資料庫中優化查詢性能的重要手段之一。對於需要處理大量數據的場景,合理的索引策略能夠顯著減少查詢時間。 特別是在涉及多欄位排序的複雜查詢中,選擇合適的索引類型(如降序索引)顯得尤為重要。本文將探討如何在SQL Serv ...
  • 背景 最近碰到一個 case,一個 Redis 實例的記憶體突增,used_memory最大時達到了 78.9G,而該實例的maxmemory配置卻只有 16G,最終導致實例中的數據被大量驅逐。 以下是問題發生時INFO MEMORY的部分輸出內容。 # Memoryused_memory:84716 ...
  • 目錄使用C語言連接庫的安裝C APImysql_initmysql_real_connectmysql_closemysql_querymysql_set_character_setmysql_store_result 使用C語言連接 mysql操作是線程安全的(事務) 以API路線認識mysql ...
  • 目錄用戶用戶管理查詢所有用戶查看當前用戶查看當前連接數創建用戶刪除用戶修改密碼規則查看規則/策略規則說明臨時設置持久設置修改密碼許可權資料庫提供的 許可權列表查看許可權給用戶授權回收用戶許可權 用戶 用戶管理 mysql用戶管理位於資料庫mysql中的user表中 mysql> show tables; + ...
  • 摘要 在學習MySQL語法之前,我們需要先解決在Ubuntu或CentOs環境下的“軟體安裝”的問題。本文梳理了安裝前後的各個步驟及有關的註意事項,主要涵蓋了安裝前的準備工作、如何安裝mysql,以及安裝之後如何啟動、如何正式使用這幾個方面。建議讀者先瀏覽一遍,留心相關的註意事項,或許能令自己稍後的 ...
  • 目錄MySQL卸載環境查看是否已安裝MySQL卸載mysql服務查看是否卸載乾凈MySQL安裝查看linux版本選擇MySQL版本獲取mysql官方yum源rpm安裝mysql官方yum源安裝mysql服務查看是否安裝成功配置MySQL簡單登錄mysql命令免密登錄配置my.cnf 其他配置項設置開 ...
  • 文章作者:尚志忠 編輯整理:曾輝 行業背景 隨著大數據、雲計算、5G、人工智慧等技術的快速發展,以及醫療信息化建設的不斷深入,數據中台作為打通醫療數據融合壁壘、實現數據互通與共用、構建高效數據應用的關鍵信息平臺,正逐漸成為推動醫療行業數字化轉型和創新發展的重要力量。 星海·濟世醫療數據中台介紹 中國 ...
  • 近日,VLDB 2024(International Conference on Very Large Data Bases)在廣州隆重舉行,全球資料庫領域頂尖學者匯聚一堂,圍繞資料庫行業前沿議題展開探討,帶來一場跨越東西方、覆蓋產學研的交流盛宴。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...