lsnrctl status
關鍵輸出:PORT=1522、listener.ora 路徑、服務清單。
lsnrctl stop
# 修改前
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = skate)(PORT = 1522))
)
)
# 修改後 (例:改為 1523)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = skate)(PORT = 1523))
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = skate)(PORT = 1523))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=skate)(PORT=1523))' SCOPE=BOTH;
lsnrctl start
lsnrctl status
# 客戶端測試
sqlplus scott/tiger@orcl
LSNRCTL> set current_listener LISTENER
LSNRCTL> set password
Password: ********
The command completed successfully
LSNRCTL> save_config
或直接編輯 listener.ora:
PASSWORDS_LISTENER =
# 僅允許特定 IP/子網
TCP.VALIDNODE_CHECKING = YES
TCP.INVITED_NODES = (192.168.1.10, 192.168.1.0/24)
TCP.EXCLUDED_NODES = (192.168.1.100)
| 項目 | 指令 | 預期結果 |
|---|---|---|
| 監聽狀態 | lsnrctl status | 顯示新端口、服務 READY |
| 本地連線 | sqlplus / as sysdba | 成功 |
| 遠端連線 | sqlplus user/pwd@新TNS | 成功 |
| 非授權 IP | tnsping / sqlplus | ORA-12537 / TNS-12560 |
tnsnames.ora、JDBC 連線字串、應用設定檔須同步更新。