大家都知道windows下绝大部分都是图形操作化,很少用命令来执行,例如启动、关闭orcl数据库服务时,一般情况都是在任务管理器(taskmgr、ctrl+shift+esc)或服务(services.msc)等方式找到orcl相关服务手动挨个挨个启动、关闭服务,这样个人感觉效率低,也很繁琐,今天教大家一个快速启动、关闭orcl服务的方法,方便你我他她.......
在cmd下有两种命令方法启动服务,分别为net和sc命令,区别是sc可以启动被禁用的服务
net语法是:
net start 服务名
net stop 服务名
sc语法是:
sc config 服务名 start= demand #手动
sc condig 服务名 start= auto #自动
sc config 服务名 start= disabled #禁用
sc start 服务名
sc stop 服务名
下面我们用net语法写一个快速启动批处理文件
一、新建一个start.txt文本文件,把以下代码复制进去,然后保存为.cmd格式即可(温馨提醒:需要把扩展名显示出来)
@echo.----------------------------------------------------------
@echo. 一 Author: aゞ锦衣卫
@echo. 键 Reminder:请以管理员身份运行
@echo. ★ Description:一键启动Oracle相关服务
@echo. 服 Blog:www.cnblogs.com/su-root
@echo. 务 Email:1147076062@qq.com VX:zikun868686
@echo.--------------------------------------------------------------------------
@echo offlsnrctl start
@echo off
%var%
if %ERRORLEVEL% == 0 (echo %var%OracleOraDb11g_home1TNSListener服务启动成功) ELSE echo %var%执行失败了,请查看是否用管理员身份运行或该服务已经在运行运行net start oracleserviceorcl
@echo off
if %ERRORLEVEL% == 0 (echo %var%OracleServiceORCL服务启动成功) ELSE echo %var%执行失败了,请查看是否用管理员身份运行或该服务已经在运行
echo.请按任意键退出一键服务 %date:~0,4%年%date:~5,2%月%date:~8,2%日 %time:~0,2%点%time:~3,2%分%time:~6,2%秒
echo.
pause
执行效果如下:

如果不放心服务是否启动正常运行,我们在任务管理器里查看一下:

ok,已正常启动服务!
注:以上代码为常用启动服务,若须增加非必启动服务,直接在代码中增加即可。
二、新建一个stop.txt文本文件,把以下代码复制进去,然后保存为.cmd格式即可(温馨提醒:需要把扩展名显示出来)
@echo.----------------------------------------------------------
@echo. 一 Author: aゞ锦衣卫
@echo. 键 Reminder:请以管理员身份运行
@echo. ★ Description:一键关闭Oracle相关服务
@echo. 服 Blog:www.cnblogs.com/su-root
@echo. 务 Email:1147076062@qq.com VX:zikun868686
@echo.--------------------------------------------------------------------------
@echo offlsnrctl stop
@echo off
%var%
if %ERRORLEVEL% == 0 (echo %var%OracleOraDb11g_home1TNSListener服务关闭成功) ELSE echo %var%执行失败了,请查看是否用管理员身份运行或该服务已经关闭
net stop oracleserviceorcl
@echo off
if %ERRORLEVEL% == 0 (echo %var%OracleServiceORCL服务关闭成功) ELSE echo %var%执行失败了,请查看是否用管理员身份运行或该服务已经关闭
echo.请按任意键退出一键服务 %date:~0,4%年%date:~5,2%月%date:~8,2%日 %time:~0,2%点%time:~3,2%分%time:~6,2%秒
echo.
pause
执行效果如下:

如果不放心服务是否正常关闭服务,我们在任务管理器里查看一下:

ok,已正常关闭服务!
注:以上代码为常用启动服务,若须增加非必启动服务,直接在代码中增加即可。
-----------------------------------------------------------------------------------------------------------------------------------
下面我们可以写一个传参交互式方式一键启动或关闭orcl服务批处理文件
@echo off
@echo.----------------------------------------------------------
@echo. 一 Author: aゞ锦衣卫
@echo. 键 Reminder:请以管理员身份运行
@echo. ★ Description:一键启动Oracle相关服务
@echo. 服 Blog:www.cnblogs.com/su-root
@echo. 务 Email:1147076062@qq.com VX:zikun868686
@echo.----------------------------------------------------------
@echo. 温馨提醒:“1”代表启动服务;“2代表”关闭服务
@echo.----------------------------------------------------------
set /p "num=请输入“1”或“2”到这里,然后按下回车键:"
if "%num%"=="1" cls & goto 1
if "%num%"=="2" cls & goto 2
echo. & echo 不能输入除了“1”和“2”之外的其他字符! & pause>nul & cls & goto input
:1
@echo.----------------------------------------------------------
@echo. 一 Author: aゞ锦衣卫
@echo. 键 Reminder:请以管理员身份运行
@echo. ★ Description:一键启动Oracle相关服务
@echo. 服 Blog:www.cnblogs.com/su-root
@echo. 务 Email:1147076062@qq.com VX:zikun868686
@echo.--------------------------------------------------------------------------
@echo offlsnrctl start
@echo off
%var%
if %ERRORLEVEL% == 0 (echo %var%OracleOraDb11g_home1TNSListener服务启动成功) ELSE echo %var%执行失败了,请查看是否用管理员身份运行或该服务已经在运行运行
net start oracleserviceorcl
@echo off
if %ERRORLEVEL% == 0 (echo %var%OracleServiceORCL服务启动成功) ELSE echo %var%执行失败了,请查看是否用管理员身份运行或该服务已经在运行
echo.请按任意键退出一键服务 %date:~0,4%年%date:~5,2%月%date:~8,2%日 %time:~0,2%点%time:~3,2%分%time:~6,2%秒
echo.
pause
exit
:2
@echo.----------------------------------------------------------
@echo. 一 Author: aゞ锦衣卫
@echo. 键 Reminder:请以管理员身份运行
@echo. ★ Description:一键关闭Oracle相关服务
@echo. 服 Blog:www.cnblogs.com/su-root
@echo. 务 Email:1147076062@qq.com VX:zikun868686
@echo.--------------------------------------------------------------------------
@echo offlsnrctl stop
@echo off
%var%
if %ERRORLEVEL% == 0 (echo %var%OracleOraDb11g_home1TNSListener服务关闭成功) ELSE echo %var%执行失败了,请查看是否用管理员身份运行或该服务已经关闭
net stop oracleserviceorcl
@echo off
if %ERRORLEVEL% == 0 (echo %var%OracleServiceORCL服务关闭成功) ELSE echo %var%执行失败了,请查看是否用管理员身份运行或该服务已经关闭
echo.请按任意键退出一键服务 %date:~0,4%年%date:~5,2%月%date:~8,2%日 %time:~0,2%点%time:~3,2%分%time:~6,2%秒
echo.
pause
exit
执行效果如下:



ok,测试成功!
----------------------------------------------------------------------------------------------------------------------------------
优化一下脚本:
@echo Oracle服务
@echo off
@echo.----------------------------------------------------------------
@echo. 一 Author: aゞ锦衣卫
@echo. 键 Reminder:请以管理员身份运行
@echo. ★ Description:一键启动/关闭Oracle相关服务
@echo. 服 Blog:www.cnblogs.com/su-root
@echo. 务 Email:1147076062@qq.com VX:zikun868686
@echo.----------------------------------------------------------------
@echo. 温馨提醒:1 启动服务 2 关闭服务 3 退出程序
@echo.----------------------------------------------------------------
@echo.
set /p s=:请输入1或2或3到这里,然后按下回车键:
if "%s%"=="1" goto:start
if "%s%"=="2" goto:stop
if "%s%"=="3" goto:exit
:start
net start OracleOraDb11g_home1TNSListener
net start OracleServiceORCL
@echo 服务已启动,即将退出脚本服务!
goto exit
:stop
net stop OracleOraDb11g_home1TNSListener
net stop OracleServiceORCL
@echo 服务已关闭,即将退出脚本服务!
goto exit
:exit
@echo 即将退出脚本服务!
echo.
echo.
echo.请按任意键退出一键服务 %date:~0,4%年%date:~5,2%月%date:~8,2%日 %time:~0,2%点%time:~3,2%分%time:~6,2%秒
pause exit
执行结果如下:


再次优化:
@echo Oracle服务
@echo off
@echo.----------------------------------------------------------------
@echo. 一 Author: aゞ锦衣卫
@echo. 键 Reminder:请以管理员身份运行
@echo. ★ Description:一键启动/关闭Oracle相关服务
@echo. 服 Blog:www.cnblogs.com/su-root
@echo. 务 Email:1147076062@qq.com VX:zikun868686
@echo.----------------------------------------------------------------
@echo. 温馨提醒:1 启动服务 2 关闭服务 3 退出程序
@echo.----------------------------------------------------------------
@echo.
:loop
set /p s=:请输入1或2或3到这里,然后按下回车键:
if "%s%"=="1" net start OracleOraDb11g_home1TNSListener
if "%s%"=="1" net start OracleServiceORCL
if "%s%"=="1" echo 服务已启动,即将转入初始化界面!
@echo.----------------------------------------------------------------
if "%s%"=="2" net stop OracleOraDb11g_home1TNSListener
if "%s%"=="2" net stop OracleServiceORCL
if "%s%"=="2" echo 服务已关闭,即将转入初始化界面!
@echo.----------------------------------------------------------------
if "%s%"=="3" exit
goto loop

ok,优化测试成功!
-------------------------------------------------------------------------------------------------------------------------
成功安装Oracle 11g后,共有7个服务,
一、这七个服务的含义分别为:
1. Oracle ORCL VSS Writer Service:
Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动)
2. OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)
3. OracleJobSchedulerORCL:
Oracle作业调度(定时器)服务,ORCL是Oracle实例标识。(非必须启动)
4. OracleMTSRecoveryService:
服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)
5. OracleOraDb11g_home1ClrAgent:
Oracle数据库
.NET扩展服务的一部分。 (非必须启动)
6. OracleOraDb11g_home1TNSListener:
监听器服务,服务只有在数据库需要远程访问的时候才需要。(非必须启动,下面会有详细详解)。
7. OracleServiceORCL:
数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)
对新手来说,要是只用Oracle自带的sql*plus的话,只要启动OracleServiceORCL即可,要是使用PL/SQL Developer等第三方工具的话,OracleOraDb11g_home1TNSListener服务也要开启。OracleDBConsoleorcl是进入基于web的EM必须开启的,其余服务很少用。
ORCL是数据库实例名,默认的数据库是ORCL,你可以创建其他的,即OracleService+数据库名。