因爲oracle 服務器佔用資源比較大,所以 最好是需要的時候打開,不用的時候自動不啓動
爲此參照網上的教程寫了下面的腳本
配置服務爲手動.bat
sc config OracleRemExecServiceV2 start= DEMAND
sc config OracleOraDB12Home1TNSListener start= DEMAND
sc config OracleServiceORCL start= DEMAND
sc config OracleJobSchedulerORCL start= DEMAND
sc config OracleVssWriterORCL start= DEMAND
sc config OracleOraDB12Home1MTSRecoveryService start= DEMAND
一鍵啓停oracle服務器.bat
@echo Restore The Service Start State Saved At 14:32:04.85 2022/02/24 週四
@echo off
title Oracle服務管理
cls
color 2f
goto MENU
:MENU
cls
@echo. =-=-=-=-=Oracle服務管理=-=-=-=-=
@echo.
@echo. 1 開啓服務
@echo.
@echo. 2 關閉服務
@echo.
@echo. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@echo. 請輸入選擇項目的序號:
set /p ID=
if "%id%"=="1" goto cmd1
if "%id%"=="2" goto cmd2
@echo 請輸入正確序號!&ping -n 2 127.1>nul&goto MENU
:cmd1
@echo 開啓Oracle服務中...
net Start OracleRemExecServiceV2
net Start OracleOraDB12Home1TNSListener
net Start OracleServiceORCL
net Start OracleJobSchedulerORCL
net Start OracleVssWriterORCL
net Start OracleOraDB12Home1MTSRecoveryService
@echo Oracle服務打開完成,按任意鍵退出...
@pause
exit
:cmd2
@echo 關閉Oracle服務中...
net stop OracleRemExecServiceV2
net stop OracleOraDB12Home1TNSListener
net stop OracleServiceORCL
net stop OracleJobSchedulerORCL
net stop OracleVssWriterORCL
net stop OracleOraDB12Home1MTSRecoveryService
@echo Oracle服務關閉完成,按任意鍵退出...
@pause
exit
但是 我因爲測試不同的oralce 服務器版本,上面的oracle服務名稱 每次會發生變化,然後還經常重裝系統,所以每次去修改 上面腳本中的服務名稱很麻煩
爲此 我又 寫了個腳本 來產生上面的腳本,可以適應任何的oralce服務器版本 比如10 ,11 ,10 免費版,oracle 12 ……..
產生oralce服務器一鍵啓停腳本.bat
echo.
for /f "tokens=1, 2, 3, 4 delims=-/. " %%j in ('Date /T') do set FILENAME1=oracle服務設置爲手動_%%j_%%k_%%l_%%m
for /f "tokens=1, 2 delims=: " %%j in ('TIME /T') do set FILENAME1=%FILENAME1%_%%j_%%k.bat
for /f "tokens=1, 2, 3, 4 delims=-/. " %%j in ('Date /T') do set FILENAME2=oracle服務一鍵啓停_%%j_%%k_%%l_%%m
for /f "tokens=1, 2 delims=: " %%j in ('TIME /T') do set FILENAME2=%FILENAME2%_%%j_%%k.bat
sc query type= service state= all| findstr /r /C:"SERVICE_NAME: Oracle" >tmpsrv.txt
echo Save Service Start State In %FILENAME1%
echo @echo Restore The Service Start State Saved At %TIME% %DATE% >"%FILENAME1%"
echo Save Service Start State In %FILENAME2%
echo @echo Restore The Service Start State Saved At %TIME% %DATE% >"%FILENAME2%"
echo @echo off >>"%FILENAME2%"
echo title Oracle服務管理 >>"%FILENAME2%"
echo cls >>"%FILENAME2%"
echo color 2f >>"%FILENAME2%"
echo goto MENU >>"%FILENAME2%"
echo :MENU >>"%FILENAME2%"
echo cls >>"%FILENAME2%"
echo @echo. =-=-=-=-=Oracle服務管理=-=-=-=-= >>"%FILENAME2%"
echo @echo. >>"%FILENAME2%"
echo @echo. 1 開啓服務 >>"%FILENAME2%"
echo @echo. >>"%FILENAME2%"
echo @echo. 2 關閉服務 >>"%FILENAME2%"
echo @echo. >>"%FILENAME2%"
echo @echo. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= >>"%FILENAME2%"
echo @echo. 請輸入選擇項目的序號: >>"%FILENAME2%"
echo set /p ID= >>"%FILENAME2%"
echo if "%%id%%"=="1" goto cmd1 >>"%FILENAME2%"
echo if "%%id%%"=="2" goto cmd2 >>"%FILENAME2%"
echo @echo 請輸入正確序號!^&ping -n 2 127.1^>nul^&goto MENU >>"%FILENAME2%"
echo :cmd1 >>"%FILENAME2%"
echo @echo 開啓Oracle服務中... >>"%FILENAME2%"
for /f "tokens=2 delims=:" %%j in (tmpsrv.txt) do @( sc qc %%j |findstr START_TYPE >tmpstype.txt && for /f "tokens=4 delims=:_ " %%s in ( tmpstype.txt) do @echo net Start %%j >>"%FILENAME2%")
echo @echo Oracle服務打開完成,按任意鍵退出... >>"%FILENAME2%"
echo @pause >>"%FILENAME2%"
echo exit >>"%FILENAME2%"
echo :cmd2 >>"%FILENAME2%"
echo @echo 關閉Oracle服務中... >>"%FILENAME2%"
for /f "tokens=2 delims=:" %%j in (tmpsrv.txt) do @( sc qc %%j |findstr START_TYPE >tmpstype.txt && for /f "tokens=4 delims=:_ " %%s in ( tmpstype.txt) do @echo sc config %%j start= DEMAND >>"%FILENAME1%")
echo @pause >>"%FILENAME1%"
for /f "tokens=2 delims=:" %%j in (tmpsrv.txt) do @( sc qc %%j |findstr START_TYPE >tmpstype.txt && for /f "tokens=4 delims=:_ " %%s in ( tmpstype.txt) do @echo net stop %%j >>"%FILENAME2%")
echo @echo Oracle服務關閉完成,按任意鍵退出... >>"%FILENAME2%"
echo @pause >>"%FILENAME2%"
echo exit >>"%FILENAME2%"
del tmpsrv.txt
del tmpstype.txt
cd ..
cd bat
總結:懶是人類進步最大的動力