您好,登錄后才能下訂單哦!
DCD: Dead Connection Detection ,可以用于檢測(cè)、標(biāo)記僵死而沒有斷開會(huì)session,再由PMON進(jìn)行清理,釋放資源。
開啟DCD,只需要在服務(wù)端的sqlnet.ora文件中添加SQLNET.EXPIRE_TIME參數(shù),單位為分鐘:
SQLNET.EXPIRE_TIME = 10 |
如果時(shí)間達(dá)到這個(gè)值,server端就是發(fā)出一個(gè)”probe” packet 給客戶端,如要客戶斷是正常的,這個(gè)packet就被忽略,timer重新計(jì)時(shí);如果客戶端異常中斷,則server端就會(huì)收到一個(gè)消息,用以釋放連接。
DCD還可以用于防止防火墻的timeout,例如:
某個(gè)系統(tǒng)RMAN備份,在結(jié)束時(shí),報(bào):
released channel: dev_0 released channel: dev_1 released channel: dev_2 released channel: dev_3 released channel: dev_4 released channel: dev_5 released channel: dev_6 released channel: dev_7 released channel: dev_8 released channel: dev_9 released channel: dev_10 released channel: dev_11 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-06004: ORACLE error from recovery catalog database: ORA-03135: connection lost contact ORACLE error from recovery catalog database: ORA-03114: not connected to ORACLE |
參考文章(ID 729811.1):
+ Is the rman catalog Database running on a different system than the Target Database? If so, verify with the System Administrators what the TCP/IP timeout is set to. If there is any firewall between two systems, set the value of SQLNET.EXPIRE_TIME to less than the TCP timeout value of the firewall. + Increase the value of SQLNET.EXPIRE_TIME in the sqlnet.ora file on both target servers if no firewall exists between two systems. + Increase the value of keepalive interval. |
以上這個(gè)RMAN報(bào)錯(cuò)例子就是由于防火墻設(shè)置timeout原因,當(dāng)client和server在timeout時(shí)間內(nèi)沒有數(shù)據(jù)傳輸?shù)臅r(shí)候,會(huì)話就會(huì)被防火墻斷開。而設(shè)置SQLNET.EXPIRE_TIME參數(shù),使其小于防火墻的timeout時(shí)間,就可以避免這一情況的發(fā)生。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。