標籤: Oracle DataBase數據庫
今天使用Oracle數據庫,使用可視化鏈接工具鏈接測試環境的數據庫時提示無監聽程序,最後在老師幫助下終於搞定了!︿( ̄︶ ̄)︿windows
ORA-12541:TNS:無監聽程序
檢查監聽程序是否可以正常啓動,使用『windows+R』輸入cmd
,
在命令行中輸入lsnrctl start
來檢查監聽是否正常運行,若是正常則會提示:
TNS-01106: 使用名稱LISTENER的監聽程序已經啓動
安全
若是沒有運行,可使用
lsnrctl status
命令來查看服務狀態,
lsnrctl reload
來重啓監聽服務
lsnrctl stop
來關閉監聽服務
lsnrctl start
來開啓監聽服務oracle
若是監聽服務仍是沒有重啓,而且提示:
正在鏈接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) TNS-12541: TNS: 無監聽程序 TNS-12560: TNS: 協議適配器錯誤 TNS-00511: 無監聽程序 64-bit Windows Error: 2: No such file or directory 正在鏈接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) TNS-12541: TNS: 無監聽程序 TNS-12560: TNS: 協議適配器錯誤 TNS-00511: 無監聽程序 64-bit Windows Error: 61: Unknown error
那麼以 管理員身份 運行cmd
(CMD位置:C:\Windows\system32)
在cmd裏輸入 如下命令來重啓 監聽服務;工具
net start "OracleOraDb11g_home1TNSListener"
在命令行下使用命令 tnsping IP地址
來查看IP的監聽服務是否正常(eg:tnsping 192.168.20.181)
來檢查tnsnames.ora服務配置是否正確測試
# listener.ora Network Configuration File: D:\Oracle11g\product\11.2.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = D:\Oracle11g\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ADR_BASE_LISTENER = D:\Oracle11g
最後,因爲Oracle的數據庫服務太佔用系統資源(電腦配置不行....)因而本身寫了一個批處理來設置Oracle相關服務的啓動方式(設置爲手動)以及開啓或者關閉Oracle的相關服務。
將如下代碼保存爲Oracle相關服務設置.bat
每次在用可視化工具鏈接Oracle時雙擊開啓相關服務,使用完畢以後雙擊關閉相關服務。命令行
@echo off title Oracle 服務設置工具By Ryanjie mode con lines=38 cols=88 %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0" :main color 2f echo.---------------------------------------------------------------------------------------+ echo %date% %time:~0,8% ::echo %date年~0,4%:%date月~5,2%:%date日~8,2% ::echo %time% echo. echo TODO: Oracle 服務設置工具 echo. echo Author: Ryanjie echo. echo Function: 此批處理會自動設置、啓動和中止Oracle服務 echo. echo WARNING: 若有360、電腦管家等安全軟件提醒,請勾選信任容許和再也不提醒! echo. pause echo. echo Oracle相關服務(可根據本身電腦的服務名稱進行更改,注意是『服務名稱』不是『顯示名稱』) echo 『OracleOraDb11g_home1ClrAgent』 echo 『OracleOraDb11g_home1TNSListener』 echo 『OracleServiceORCL』 echo 『Oracle ORCL VSS Writer Service』 echo 『OracleDBConsoleorcl』 echo 『OracleJobSchedulerORCL』 echo 『OracleMTSRecoveryService』 echo echo echo.---------------------------------------------------------------------------------------+ echo. echo 請選擇使用: echo. echo 1. 設置Oracle相關服務爲手動啓動(即在下面輸入1) echo. echo 2. 啓動Oracle相關服務(即在下面輸入2) echo. echo 3. 中止Oracle相關服務(即在下面輸入3) echo. echo.---------------------------------------------------------------------------------------+ if exist "%SystemRoot%\System32\choice.exe" goto Win7Choice set /p choice=請輸入數字並按回車鍵確認: echo. if %choice%==1 goto sc if %choice%==2 goto start if %choice%==3 goto stop "set choice=" echo 您輸入有誤,請從新選擇。 ping 127.0.1 -n "2">nul cls goto main :Win7Choice choice /c 123 /n /m "請輸入相應數字:" if errorlevel 3 goto stop if errorlevel 2 goto start if errorlevel 1 goto sc cls goto main :sc cls color 2f echo.---------------------------------------------------------------------------------------+ echo. sc config "OracleOraDb11g_home1ClrAgent" start= demand sc config "OracleOraDb11g_home1TNSListener" start= demand sc config "OracleServiceORCL" start= demand sc config "Oracle ORCL VSS Writer Service" start= demand sc config "OracleDBConsoleorcl" start= demand sc config "OracleJobSchedulerORCL" start= demand sc config "OracleMTSRecoveryService" start= demand echo.---------------------------------------------------------------------------------------+ echo. echo %date% %time:~0,8% ::echo %date年~0,4%:%date月~5,2%:%date日~8,2% ::echo %time% echo. echo 恭喜您,Oracle相關服務 echo. 『OracleOraDb11g_home1ClrAgent』 echo. 『OracleOraDb11g_home1TNSListener』 echo. 『OracleServiceORCL』 echo. 『Oracle ORCL VSS Writer Service』 echo. 『OracleDBConsoleorcl』 echo. 『OracleJobSchedulerORCL』 echo. 『OracleMTSRecoveryService』 echo. echo. 已成功設置爲手動啓動! echo. echo.---------------------------------------------------------------------------------------+ goto end :start cls color 2f echo.---------------------------------------------------------------------------------------+ echo. ::下面四個服務按照我的需求進行開啓 net start "OracleOraDb11g_home1ClrAgent" net start "OracleOraDb11g_home1TNSListener" net start "OracleServiceORCL" ::net start "Oracle ORCL VSS Writer Service" ::net start "OracleDBConsoleorcl" ::net start "OracleJobSchedulerORCL" ::net start "OracleMTSRecoveryService" echo.---------------------------------------------------------------------------------------+ echo. echo %date% %time:~0,8% ::echo %date年~0,4%:%date月~5,2%:%date日~8,2% ::echo %time% echo. echo 恭喜您,Oracle相關服務 echo. 『OracleOraDb11g_home1ClrAgent』 echo. 『OracleOraDb11g_home1TNSListener』 echo. 『OracleServiceORCL』 echo. echo. echo. 已成功啓動! echo. echo.---------------------------------------------------------------------------------------+ goto end :stop cls color 2f echo.---------------------------------------------------------------------------------------+ echo. net stop "OracleOraDb11g_home1ClrAgent" net stop "OracleOraDb11g_home1TNSListener" net stop "OracleServiceORCL" ::下面四個服務若是在上面已經打開,則刪除前面的"rem"便可 net stop "Oracle ORCL VSS Writer Service" net stop "OracleDBConsoleorcl" net stop "OracleJobSchedulerORCL" net stop "OracleMTSRecoveryService" echo.---------------------------------------------------------------------------------------+ echo. echo %date% %time:~0,8% ::echo %date年~0,4%:%date月~5,2%:%date日~8,2% ::echo %time% echo. echo 恭喜您,Oracle相關服務 echo. 『OracleOraDb11g_home1ClrAgent』 echo. 『OracleOraDb11g_home1TNSListener』 echo. 『OracleServiceORCL』 echo. echo. 已成功關閉! echo. echo.---------------------------------------------------------------------------------------+ goto end :end echo 請按任意鍵退出。 @Pause>nul
『』『』code