動態

詳情 返回 返回

【趙渝強老師】Oracle客户端與服務器端連接建立的過程 - 動態 詳情

Oracle數據庫採用的客户端-服務器的Client-Server的架構。Oracle的客户端需要通過使用Oracle數據庫提供的網絡環境來建立與服務器端通信,從而實現正常的數據庫訪問。Oracle的網絡環境如下圖所示。
image.png

監聽程序在Oracle網絡服務的作用是非常重要的。監聽程序會負責為客户端建立與數據庫服務器之間的連接。Oracle提供了命令lsnrctl用於啓動和停止監聽程序。下圖展示了Oracle客户端是如何通過監聽器程序與數據庫服務器端建立連接的。
image.png

從圖中可以看出,當客户端與數據庫服務器端建立連接後,客户端執行的所有SQL語句將直接由Oracle數據庫的服務器進程執行。因此,Oracle的監聽器只在建立連接時會用到。

視頻講解如下:
https://www.bilibili.com/video/BV1Sh4ZzhEUE/?aid=114979378304...

對於數據庫管理員DBA來説,啓動和關閉Oracle監聽器是很基礎的任務。但是對於Linux系統管理員或者程序員有時也需要在開發數據庫中做一些基本的數據庫管理操作,因此瞭解一些基本的管理操作對他們來説很重要。Oracle數據庫提供了命令lsnrctl來管理監聽器。該命令可以檢查監聽器的狀態、啓動監聽器和停止監聽器。這裏通過具體的步驟來演示如何使用命令lsnrctl。
(1)查看命令lsnrctl的幫助信息。

lsnrctl help

# 輸出的信息如下:
LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 20-MAR-2022 16:29:12

Copyright (c) 1991, 2021, Oracle.  All rights reserved.

The following operations are available
An asterisk (*) denotes a modifier or extended command:

start            stop        status        services        
servacls        version        reload        save_config     
trace            spawn        quit        exit            
set*            show*           

(2)查看監聽的狀態。

lsnrctl status

# 輸出的信息如下:
LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 20-MAR-2022 16:30:29
Copyright (c) 1991, 2021, Oracle.  All rights reserved.
Connecting to
 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oraclevm)(PORT=1521)))

STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 21.0.0.0.0 - Production
Start Date                06-DEC-2021 10:19:41
Uptime                    104 days 6 hr. 10 min. 48 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/homes/OraDB21Home1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oraclevm/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclevm)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oraclevm)(PORT=5500))
               (Security=(my_wallet_directory=/u01/app/oracle/admin/orcl/xdb_wallet))
               (Presentation=HTTP)(Session=RAW))
Services Summary...
Service "Oracle8" has 1 instance(s).
  Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
Service "c8209f27c6b16005e053362ee80ae60e" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

# 在輸出的監聽狀態信息中,包含了以下的內容:
# (*)監聽器的啓動時間
# (*)監聽器的運行時間
# (*)監聽器參數文件listener.ora的位置
# (*)監聽器日誌文件的位置
user avatar laoqing 頭像 koogua 頭像 edonsoft 頭像 mulavar 頭像 chaokunyang 頭像
點贊 5 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.