最近在搭建一臺測試環(huán)境時,發(fā)現(xiàn)開通監(jiān)聽1521端口的防火墻后,遠(yuǎn)程 連接還是無法連接,只有允許ip不限制端口時就能正常連接到數(shù)據(jù)庫。 原因如下: 首先這臺數(shù)據(jù)庫是MTS,也就是共享模式: SQL show parameter shared_servers;NAME TYPE VALUE----------------
最近在搭建一臺測試環(huán)境時,發(fā)現(xiàn)開通監(jiān)聽1521端口的防火墻后,遠(yuǎn)程 連接還是無法連接,只有允許ip不限制端口時就能正常連接到數(shù)據(jù)庫。
原因如下:
首先這臺數(shù)據(jù)庫是MTS,也就是共享模式:
SQL> show parameter shared_servers; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ max_shared_servers integer shared_servers integer 1
共享模式的連接方式是客戶端連接監(jiān)聽如1521后,會redirect到dispatcher,而dispatcher的端口是隨機(jī)的。如果你只開通了1521,那是連接不了數(shù)據(jù)庫的,你會發(fā)現(xiàn)telnet ip 1521通,但就是連接不上數(shù)據(jù)庫。
在這種情況 下你可以用如下方法解決:
可以在客戶端進(jìn)行Dedicated模式連接,在tnsnames.ora中增加SERVER=DEDICATED配置:
test = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.97.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = test) ) )
然后固定dispatcher的端口
# vi initSID.ora *.dispatchers="(address=(protocol=tcp)(port=49316))(dispatchers=3)"
重啟實(shí)例
可以這樣查看dispatcher的端口,然后再開通防火墻:
SQL> select name,network from v$dispatcher; NAME ---- NETWORK -------------------------------------------------------------------------------- D000 (ADDRESS=(PROTOCOL=tcp)(HOST=auto_oracle.dmc.com)(PORT=49316))
配置防火墻允許訪問49316端口。
這個時候需要開通兩個端口,一個是1521和49316。
原文地址:oracle MTS模式下防火墻如何開通, 感謝原作者分享。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com