群里有朋友问到windows下如何设计开机自启动的脚本,一般而言小鱼大多还是在linux环境下运维,windows的bat了解的很少,windows运行机制也不是特别了解,不过既然朋友问到这个问题,虽然是个小问题,不过可能以后确实会用到这个,就找了一些资料进行了测试和整理
例如开机运行的bat脚本存储的位置为C:\script\script.bat,脚本的内容为:
lsnrctl start
sqlplus / as sysdba @c:\script\script.sql
需要注意的是windows下的bat和linux unix中的shell不一样,bat中没有<<EOF分界符,不过sqlplus却提供给我们另外一种方式来在bat中执行sql的命令。
C:\Users\Administrator>sqlplus -help
SQL*Plus: Release 10.2.0.4.0 - Production
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
。。。
is: @|[.] [ ...]Runs the specified SQL*Plus script from a web server (URL) or the
local file system (filename.ext) with specified parameters that
will be assigned to substitution variables in the script.
Sqlplus解释也很详细提到了@|[.] [ ...]方式来运行sql命令
这里已经编辑了一个实用的bat脚本,接下来就是如何将这个脚本制作为开机自启动,此时我们需要创建一个.vbs脚本在开机后台自动运行该脚本,脚本的内容为:
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "C:\script\script.bat /start",0
将上述文件保存为script.vbs放入开机-所有程序-启动内,其实也就是一个文件夹,用于记录开机自启动bat脚本,小鱼这个测试环境中这个文件夹的位置为
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
上述的vbs脚本需要注意第一行应该是定义一个变量,然后第二行调用了去运行了这个变量,变量的脚本就是C:\script\script.bat这个脚本,小鱼并非windows程序员出身,只自学过一点点mfc的框架。
等待一切完成后,我们就可以来进行测试了,这里小鱼在C:\script\script.bat脚本中启动了监听,然后修改了open_cursors参数,从默认的300修改为了1000,接下来我们重启机器或者手动运行script.vbs进行验证:
运行脚本前:
SQL> show parameter open_cursorsNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300运行脚本后:
SQL> show parameter open_cursors;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 1000
可能还有别的方法来设置开机自启动,比如windows服务来引导bat脚本,这里小鱼就不再列出了,后面有大量机会如果能够接触aix系统,也会贴出一些系统常用维护技巧与大家分享。