首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 網路架構連線問題診斷與解決全攻略

     編輯:Oracle 資料庫基礎

三大核心設定檔

位於 $ORACLE_HOME/network/admin:

  • sqlnet.ora: 名稱解析順序 (如 NAMES.DIRECTORY_PATH=(TNSNAMES,HOSTNAME)),類似 Linux nsswitch.conf。
  • tnsnames.ora: TNS 別名對應主機/埠/服務名,類似 /etc/hosts。僅當 sqlnet.ora 包含 TNSNAMES 時生效。
  • listener.ora: 監聽程序設定:服務的 SID、Global DB Name、Oracle Home、監聽協定/主機/埠。

連線流程解析

執行 sqlplus sys/oracle@orcl 時:

  1. 讀 sqlnet.ora 解析順序,假設為 TNSNAMES。
  2. 查 tnsnames.ora 找 orcl 記錄,取得 HOST、PORT、SERVICE_NAME。
  3. 連線 Listener (埠 1521)。
  4. Listener 依服務模式 (專用/共享) 轉交 Server Process。
  5. 網路連線建立,Listener 任務結束。

常用連線語法

  • sqlplus / as sysdba: OS 認證,不需 Listener。
  • sqlplus sys/oracle: 本機 Bequeath 連線,不需 Listener。
  • sqlplus sys/oracle@orcl: 網路連線,**需 Listener 正常**。

Sys/密碼檔驗證用戶不需資料庫 Open;一般用戶需資料庫 Open。

除錯工具與指令

  • lsnrctl status/start/stop/services: 檢視 Listener 狀態與服務。
  • tnsping orcl: 驗證客戶端 sqlnet.ora/tnsnames.ora 及 Listener 連通性。
  • SQL> show sga / SELECT open_mode FROM v$database;: 確認 Instance/Database 狀態。

Hostname 命名法替代 TNSNAMES

修改 listener.ora 設定 GLOBAL_DBNAME,sqlnet.ora 設 NAMES.DIRECTORY_PATH=(HOSTNAME),客戶端直接 sqlplus sys/oracle@hostname 連線,免維護 tnsnames.ora。前提是 DNS/hosts 能正確解析主機名。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved