Windows下启动/关闭oracle、执行SQL的bat脚本

Windows下启动/关闭oracle、执行SQL的bat脚本

由于工作中每天需要将新的参数导入,之前的步骤一直是先删除原来的用户、表空间,然后新建,最后在CMD下导入,现采用bat脚本实现一键导入。

打开/关闭oracle服务执行脚本

如果开机直接运行oracle,将会启动特别慢,况且每次也不一定开机就要用oracle;有时oracle启动时间太长,则会占用2G+内存,手动见服务点开又有些麻烦。


@echo off

title Oracle服务管理

cls

color 2f

goto MENU

:MENU

cls

echo. =-=-=-=-=Oracle服务管理=-=-=-=-=

echo.

echo. 1 开启服务

echo.

echo. 2 关闭服务

echo.

echo. 3 退 出

echo.

echo. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

echo. 请输入选择项目的序号:

set /p ID=

if “%id%”==”1” goto cmd1

if “%id%”==”2” goto cmd2

if “%id%”==”3” exit

echo 请输入正确序号!&ping -n 2 127.1>nul&goto MENU

:cmd1

echo.

echo 开启Oracle服务中…

net start|findstr /i /c:”OracleDBConsoleorcl”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleDBConsoleorcl”)

net start|findstr /i /c:”OracleOraDb11g_home1iSQL*Plus”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleOraDb11g_home1iSQL*Plus”)

net start|findstr /i /c:”OracleOraDb11g_home1TNSListener”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleOraDb11g_home1TNSListener”)

net start|findstr /i /c:”OracleServiceORCL”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleServiceORCL”)

echo.

echo Oracle服务已经成功开启…

echo.

pause

exit

:cmd2

echo.

echo 关闭Oracle服务中…

net start|findstr /i /c:”OracleDBConsoleorcl”>nul&&set k=1||set k=0

if %k%==1 (net stop “OracleDBConsoleorcl”)

net start|findstr /i /c:”OracleOraDb11g_home1iSQL*Plus”>nul&&set k=1||set k=0

if %k%==1 (net stop “OracleOraDb11g_home1iSQL*Plus”)

net start|findstr /i /c:”OracleOraDb11g_home1TNSListener”>nul&&set k=1||set k=0

if %k%==1 (net stop “OracleOraDb11g_home1TNSListener”)

net start|findstr /i /c:”OracleServiceORCL”>nul&&set k=1||set k=0

if %k%==1 (net stop “OracleServiceORCL”)

echo.

echo Oracle服务已经成功关闭…

echo.

pause

exit 

一键获取并更新参数


echo 步骤: 
echo 1.开启服务 
echo 2.执行sql语句进行删除操作 
echo 3.关闭服务、直接删除文件(确保文件完全删除) 
echo 4.开启服务 
echo 5.新建表空间用户 
echo 6.导入 
echo 7.退出 
echo ——–一键获取并更新参数.bat————

set b=%cd% 
echo —————–1.开启Oracle服务——- 
echo 开启Oracle服务中…

net start|findstr /i /c:”OracleDBConsoleorcl”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleDBConsoleorcl”)

net start|findstr /i /c:”OracleOraDb11g_home1TNSListener”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleOraDb11g_home1TNSListener”)

net start|findstr /i /c:”OracleServiceORCL”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleServiceORCL”)

echo. 
echo Oracle服务已经成功开启… 
echo 2.执行sql语句进行删除操作 
SQLPLUS/NOLOG @E:\oneKeyUpdateData\connectDeleteStep.sql 
echo 3可以改为现判断文件存在,之后进行关服务、删除。___________________________________________________ 
echo 3.关闭服务、直接删除文件(确保文件完全删除) 
echo ———-关闭Oracle服务———– 
echo 关闭Oracle服务中…

net start|findstr /i /c:”OracleDBConsoleorcl”>nul&&set k=1||set k=0

if %k%==1 (net stop “OracleDBConsoleorcl”)

net start|findstr /i /c:”OracleOraDb11g_home1iSQL*Plus”>nul&&set k=1||set k=0

if %k%==1 (net stop “OracleOraDb11g_home1iSQL*Plus”)

net start|findstr /i /c:”OracleOraDb11g_home1TNSListener”>nul&&set k=1||set k=0

if %k%==1 (net stop “OracleOraDb11g_home1TNSListener”)

net start|findstr /i /c:”OracleServiceORCL”>nul&&set k=1||set k=0

if %k%==1 (net stop “OracleServiceORCL”)

echo. 
echo Oracle服务已经成功关闭… 
echo ———-(检测)并删除表文件,没有这个文件也并不影响———–改进为自动获取用户oracle目录____ 
del E:\app\用户名\oradata\orcl\表名1.DMP 
del E:\app\用户名\oradata\orcl\表名2.DMP 
echo —————–4.开启Oracle服务——- 
echo 开启Oracle服务中…

net start|findstr /i /c:”OracleDBConsoleorcl”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleDBConsoleorcl”)

net start|findstr /i /c:”OracleOraDb11g_home1TNSListener”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleOraDb11g_home1TNSListener”)

net start|findstr /i /c:”OracleServiceORCL”>nul&&set k=1||set k=0

if %k%==0 (net start “OracleServiceORCL”)

echo. 
echo Oracle服务已经成功开启… 
echo 5.新建表空间用户 
echo —————–连接oracle,新建用户、表———- 
SQLPLUS/NOLOG @E:\oneKeyUpdateData\connectCreateStep.sql 
echo ————6.导入—————-改进为自动获取最新的________________________ 
imp 用户名/密码@orcl BUFFER=64000 file=参数路径*.dmp FULL=y COMMIT=y IGNORE=y statistics=none LOG=日志名.log; 
echo ————7.退出—————- 
pause 
exit 


———–connectCreateStep.sql——– 
—–连接oracle————— 
SPOOL D:\a.LOG; 
CONNECT 用户名/密码@orcl 
———–新建一个表空间 表空间名 ———- 
create tablespace 表空间名 datafile ‘D:\app\用户名\oradata\orcl\表空间名.dmp’ size 50M autoextend on next 50M maxsize unlimited; 
—————表空间:表空间2———— 
create tablespace 表空间2 datafile ‘D:\app\用户名\oradata\orcl\表空间2.dmp’ size 50M autoextend on next 50M maxsize unlimited; 
————–新建用户————- 
create user 新用户 identified by 密码2 default tablespace 表空间名; 
————–赋予用户权限————- 
grant dba,connect,resource,aq_administrator_role,aq_user_role,authenticateduser to 新用户 ;

SPOOL OFF; 
DISCONNECT; 
EXIT; 


———–connectDeleteStep.sql——– 
—–连接oracle————— 
SPOOL E:\a.LOG; 
CONNECT 用户名/密码@orcl 
drop user 用户2 cascade; 
DROP TABLESPACE 表空间1 INCLUDING CONTENTS AND DATAFILES; 
DROP TABLESPACE 表空间2 INCLUDING CONTENTS AND DATAFILES; 
SPOOL OFF; 
DISCONNECT; 
EXIT; 

总结

bat相关

  • 中文编码GB2312才能正常显示汉字
  • 功能不如Linux下强大,用起来总是感觉有点蹩脚

sqlplus相关

  • 可以进行多行语句,它会逐行执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值