Oracle中“無監聽程序”和“協議適配器錯誤”的解決方法
一、發現問題
有些殺毒程序會清掉一些oracle注冊表信息或刪除oracle的bin目錄下的一些.exe文件,導致數據庫無法啟動,下麵來分析一下最常見的問題。
二、無監聽程序
1、什麼是監聽器(LISTENER)
監聽器是建立在服務端的,用於監聽客戶端向數據庫服務器端提出的連接請求。
配置文件在\db_1\NETWORK\ADMIN\listener.ora。
2、本地服務名(Tnsname)
本地服務名是建立在客戶端的,需要連哪些服務器數據庫,就將該數據庫服務端的信息配置。
配置文件在\db_1\NETWORK\ADMIN\tnsnames.ora。
3、解決方法
通過Net Manager重新建立監聽器和本地服務名。
可參見:https://wenku.baidu.com/link?url=Z5BNd9D2KYGDHnROo1fn5XjXgCeDbAU6Xtk2Yrdg-Txb7gVkyVVAopLfHYOHcthYjqCP0FssulU_OZpA41-IDdCF3pgUNveOVeTU7vfPxDG
三、協議適配器錯誤
上述情況配置好後可能會出現“協議適配器錯誤”:
C:\Documents and Settings\Admin>lsnrctl
LSNRCTL> start
啟動tnslsnr: 請稍候...
Failed to start service, error 3.
TNS-12560: TNS: 協議適配器錯誤
TNS-00530: 協議適配器錯誤
①注冊表有問題
C:\Documents and Settings\Admin>regedit
進入注冊表到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome81TNSListener
ImagePath被清掉了,增加可擴充字符串值,取名為ImagePath,編輯字符串的數值數據為E:\oracle\product\10.2.0\db_1\BIN\TNSLSNR,退出注冊表。
②TNSLSNR.EXE被刪掉了
E:\oracle\product\10.2.0\db_1\BIN的TNSLSNR.EXE被刪掉了,從別處拷過來一個放到該目錄就行了。
最後更新:2017-04-03 12:54:31