各位好,今天再HYPER-V中安裝了Oracle,主機虛擬機都是WIN10。現在主機可以通過遠程桌面連接虛擬機,telnet測驗1521埠也是開放的。為什么用PLSQL連接時,一直處于正在登錄狀態,就是一直連不上。
昨天主機與虛擬機是通過外部網路連接的,那時候plsql連接是沒問題的,今天換成內部網路連接,然后我把tnsname.ora中的相關IP也改了,卻連不上。研究了一整天了,望各位路過大俠救我!!
uj5u.com熱心網友回復:
這個很可能是網路的原因。1.ping 服務器id
2.ping 資料庫連接串
試試看!
uj5u.com熱心網友回復:
你好,服務器id能夠ping通,但是ping 資料庫連接串,我沒明白什么意思。uj5u.com熱心網友回復:
你所說的外部網路和內部網路指什么?ping資料庫的連接串指tnsping配置的server_name
uj5u.com熱心網友回復:
WIN10連接HYPER-V的虛擬機時,有三種虛擬交換機型別,分別是外部、內部、專用,我說的外部網路是指我設定的是外部虛擬交換機型別。
這個我自己說習慣了,沒注意。
uj5u.com熱心網友回復:
前面幾位讓ping、tnsping的,有沒有什么結果?uj5u.com熱心網友回復:
tnsping 好像得在客戶端(主機)上安裝Oracle才能通,我的客戶端沒有安裝Oracle,所以提示tnsping不是內部或外部命令,但在服務端(虛擬機)上是可以通的。
另外,無論是在在服務端還是客戶端,都是能ping通的,沒問題。
uj5u.com熱心網友回復:
那是因為你客戶端裝了閹割版的instant client,所以沒有tnsping,那就麻煩,猜猜猜吧:你的虛擬機防火墻是不是開著?
uj5u.com熱心網友回復:
另外,找下監聽的日志檔案,看下你遠程連接的時候,監聽有沒有偵測到你的遠程連接。uj5u.com熱心網友回復:
另外,找下監聽的日志檔案,看下你遠程連接的時候,監聽有沒有偵測到你的遠程連接。
防火墻是關閉的。
在遠程連接時,我在在監聽日志檔案里邊,我找到這么一段日志:
<msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr'
type='UNKNOWN' level='16' host_id='NORM'
host_addr='fe80::189a:e814:4766:794f%12'>
<txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=https://bbs.csdn.net/topics/(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:/software/e/OracleClient/plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0
</txt>
</msg>
E:\software\e\OracleClient\plsqldev.exe 是我客戶端的PLSQL,ZHOU是我客戶端計算機名,zhou是用戶名,HOST后邊是客戶端的IP。
這個應該算是偵測到我的遠程連接了吧?
uj5u.com熱心網友回復:
另外,找下監聽的日志檔案,看下你遠程連接的時候,監聽有沒有偵測到你的遠程連接。
防火墻是關閉的。
在遠程連接時,我在在監聽日志檔案里邊,我找到這么一段日志:
<msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr'
type='UNKNOWN' level='16' host_id='NORM'
host_addr='fe80::189a:e814:4766:794f%12'>
<txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=https://bbs.csdn.net/topics/(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:/software/e/OracleClient/plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0
</txt>
</msg>
E:\software\e\OracleClient\plsqldev.exe 是我客戶端的PLSQL,ZHOU是我客戶端計算機名,zhou是用戶名,HOST后邊是客戶端的IP。
這個應該算是偵測到我的遠程連接了吧?
不僅僅是偵測到了,而且已經建立連接了,那說明等待是在資料庫內的,通常出現這種情況是因為大量短連接導致的連接風暴搞出來的問題,或者密碼錯誤的連接不停重試搞出來的,但你這個應該不是這兩種情況?在卡住的時候,在資料庫服務器上查下v$session中有沒有program欄位為plsql(具體可能是其他值,比如plsql developer等等)那行的event(v$session的另外一個欄位)是什么,再做進一步的診斷。
uj5u.com熱心網友回復:
另外,找下監聽的日志檔案,看下你遠程連接的時候,監聽有沒有偵測到你的遠程連接。
防火墻是關閉的。
在遠程連接時,我在在監聽日志檔案里邊,我找到這么一段日志:
<msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr'
type='UNKNOWN' level='16' host_id='NORM'
host_addr='fe80::189a:e814:4766:794f%12'>
<txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=https://bbs.csdn.net/topics/(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:/software/e/OracleClient/plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0
</txt>
</msg>
E:\software\e\OracleClient\plsqldev.exe 是我客戶端的PLSQL,ZHOU是我客戶端計算機名,zhou是用戶名,HOST后邊是客戶端的IP。
這個應該算是偵測到我的遠程連接了吧?
不僅僅是偵測到了,而且已經建立連接了,那說明等待是在資料庫內的,通常出現這種情況是因為大量短連接導致的連接風暴搞出來的問題,或者密碼錯誤的連接不停重試搞出來的,但你這個應該不是這兩種情況?在卡住的時候,在資料庫服務器上查下v$session中有沒有program欄位為plsql(具體可能是其他值,比如plsql developer等等)那行的event(v$session的另外一個欄位)是什么,再做進一步的診斷。
剛剛找了,只能找到服務端自己的PLSQL,客戶端的PLSQL連接時,沒在v$session表中找到相關資訊。。。。
uj5u.com熱心網友回復:
另外,找下監聽的日志檔案,看下你遠程連接的時候,監聽有沒有偵測到你的遠程連接。
防火墻是關閉的。
在遠程連接時,我在在監聽日志檔案里邊,我找到這么一段日志:
<msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr'
type='UNKNOWN' level='16' host_id='NORM'
host_addr='fe80::189a:e814:4766:794f%12'>
<txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=https://bbs.csdn.net/topics/(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:/software/e/OracleClient/plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0
</txt>
</msg>
E:\software\e\OracleClient\plsqldev.exe 是我客戶端的PLSQL,ZHOU是我客戶端計算機名,zhou是用戶名,HOST后邊是客戶端的IP。
這個應該算是偵測到我的遠程連接了吧?
不僅僅是偵測到了,而且已經建立連接了,那說明等待是在資料庫內的,通常出現這種情況是因為大量短連接導致的連接風暴搞出來的問題,或者密碼錯誤的連接不停重試搞出來的,但你這個應該不是這兩種情況?在卡住的時候,在資料庫服務器上查下v$session中有沒有program欄位為plsql(具體可能是其他值,比如plsql developer等等)那行的event(v$session的另外一個欄位)是什么,再做進一步的診斷。
剛剛找了,只能找到服務端自己的PLSQL,客戶端的PLSQL連接時,沒在v$session表中找到相關資訊。。。。
還有,我剛剛將HYPER-V的網路配接器的設定改為外部連接,設定虛擬機(服務端)的IP和DNS為自動獲取,然后改了客戶端的tnsname.ora配置后,又可以連接了。
我在想,這會不會是因為我之前設定的IP不對或者是DNS不對?
uj5u.com熱心網友回復:
另外,找下監聽的日志檔案,看下你遠程連接的時候,監聽有沒有偵測到你的遠程連接。
防火墻是關閉的。
在遠程連接時,我在在監聽日志檔案里邊,我找到這么一段日志:
<msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr'
type='UNKNOWN' level='16' host_id='NORM'
host_addr='fe80::189a:e814:4766:794f%12'>
<txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=https://bbs.csdn.net/topics/(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:/software/e/OracleClient/plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0
</txt>
</msg>
E:\software\e\OracleClient\plsqldev.exe 是我客戶端的PLSQL,ZHOU是我客戶端計算機名,zhou是用戶名,HOST后邊是客戶端的IP。
這個應該算是偵測到我的遠程連接了吧?
不僅僅是偵測到了,而且已經建立連接了,那說明等待是在資料庫內的,通常出現這種情況是因為大量短連接導致的連接風暴搞出來的問題,或者密碼錯誤的連接不停重試搞出來的,但你這個應該不是這兩種情況?在卡住的時候,在資料庫服務器上查下v$session中有沒有program欄位為plsql(具體可能是其他值,比如plsql developer等等)那行的event(v$session的另外一個欄位)是什么,再做進一步的診斷。
剛剛找了,只能找到服務端自己的PLSQL,客戶端的PLSQL連接時,沒在v$session表中找到相關資訊。。。。
還有,我剛剛將HYPER-V的網路配接器的設定改為外部連接,設定虛擬機(服務端)的IP和DNS為自動獲取,然后改了客戶端的tnsname.ora配置后,又可以連接了。
我在想,這會不會是因為我之前設定的IP不對或者是DNS不對?
如果先前IP設定不對,那么壓根不會連接到監聽的,更何況還建立了連接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/79249.html
標籤:開發
