Oracle 支援傳統 Host/Terminal 與 C/S 架構。SQL*Net(Oracle Net Services)為網路中介軟體,建立於 TCP/IP、SPX/IPX 等協定之上,提供:
| 檔案/工具 | 路徑 | 用途 |
|---|---|---|
lsnrctl | $ORACLE_HOME/bin | 啟動/停止/狀態監聽器 (V2) |
listener.ora | $ORACLE_HOME/network/admin | 監聽器配置:位址、SID_LIST |
tnsnames.ora | $ORACLE_HOME/network/admin | 客戶端連線描述符 |
sqlnet.ora | $ORACLE_HOME/network/admin | 名稱解析順序、安全、追蹤參數 |
config.ora | $ORACLE_HOME/dbs | 預設連線描述符 LOCAL_CONNECT |
| /etc/hosts | /etc | IP-主機名對應 |
| /etc/services | /etc | 埠號-服務名對應 |
sqlnet.ora → NAMES.DIRECTORY_PATH 決定順序(預設 TNSNAMES)。tnsnames.ora 取得 HOST、PORT、SERVICE_NAME/SID。listener.ora 驗證 SID/服務名,啟動 Server Process(Dedicated/Shared)。sqlplus / as sysdba:OS 驗證,**不經監聽器**,DB 可關閉。sqlplus user/pwd:本機 Bequeath,**不經監聽器**。sqlplus user/pwd@tns_alias:**網路連線,需監聽器啟動**,最通用。普通使用者需 DB Open;SYSDBA/密碼檔驗證可在 Mount 階段連線。
LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = Oracle)
(ORACLE_HOME = /usr/oracle)
)
)
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10
ora =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
(CONNECT_DATA =
(SID = Oracle)
(SERVER = DEDICATED)
)
)
# 多協定/多主機範例
REMOTE_DB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = server1)(PORT = 1521))
(ADDRESS = (PROTOCOL = SPX)(SERVICE = novell1))
)
(CONNECT_DATA = (SID = Oracle)(SERVER = DEDICATED))
)
NAMES.DIRECTORY_PATH = (TNSNAMES, HOSTNAME)
# 僅用 TNSNAMES 可設為 (TNSNAMES)
SQLNET.EXPIRE_TIME = 10 # 檢測死連線 (分鐘)
TCP.VALIDNODE_CHECKING = YES # 存取控制
TCP.INVITED_NODES = (192.168.1.0/24)
lsnrctl 1521/tcp # Oracle Listener
tnsping tns_alias 驗證名稱解析與監聽器回應。lsnrctl status 確認監聽器運行、註冊服務。sqlnet.ora 解析順序與存取控制。