Shell实现的Oracle启动脚本分享

Usage: sh oracled [start|stop|restart] SIDs 其中SIDs是数据库名,多个名称之间用逗号分隔。缺省的操作是 restart ,也可以指定需要进行的操作( start | stop | restart )

代码如下:

#!/bin/sh 
 
cmdname="restart" 
# get oracle sid information from env by default. 
oracleSID=${ORACLE_SID} 
env_oracleSID=${ORACLE_SID} 
 
function echohelp(){ 
  echo "******oracled Tool Helper******" 
  echo "Usage:sh oracled [start|stop|restart] SIDs" 
  echo "SIDs : seperated by comma" 
  exit 5 

 
function startoracle(){ 
  echo "begin to start oracle ..." 
 
  lsnrctl start 
  for curSID in `echo ${oracleSID} | awk 'BEGIN {RS=","}{ORS="\n"}{print $1}'` ; do 
    if [ "x${curSID}" = "x" ] ; then 
      continue; 
    fi 
    export ORACLE_SID=${curSID} 
 
sqlplus /nolog <<EOF 
 
connect /as sysdba 
startup 
exit 
exit 
 
EOF 
 
    echo "oracle DB [${curSID}] started OK." 
  done 

function stoporacle(){ 
  echo "begin to stop oracle ..." 
 
  for curSID in `echo ${oracleSID} | awk 'BEGIN {RS=","}{ORS="\n"}{print $1}'` ; do 
    if [ "x${curSID}" = "x" ] ; then 
      continue; 
    fi 
    export ORACLE_SID=${curSID} 
 
sqlplus /nolog <<EOF 
 
connect /as sysdba 
shutdown immediate 
exit 
exit 
 
EOF 
 
    echo "oracle DB [${curSID}] stopped OK." 
  done 
  lsnrctl stop 

function restartoracle(){ 
  stoporacle 
  startoracle 

 
 
if [ $# -lt 1 ] ; then 
  echohelp 
fi 
 
until [ $# -eq 0 ] 
do 
  tmpVOrg=$1 
  tmpV=`echo "${tmpVOrg}" | awk '{printf "%s",$1}' | tr '[A-Z]' '[a-z]'` 
  if [ $tmpV = "start" -o $tmpV = "restart" -o $tmpV = "stop" ] ; then 
    cmdname=${tmpV} 
  elif [ $tmpV = "--help" -o $tmpV = "-h" ] ; then 
    echohelp 
  else 
    oracleSID=$tmpVOrg 
  fi 
 
  shift 
done 
 
if [ "x${cmdname}" = "x" ] ; then 
  echohelp 
fi 
 
${cmdname}oracle 
 
export ORACLE_SID=${env_oracleSID}

(0)

相关推荐

  • oracle执行cmd的实现方法

    不过有一个简单的执行cmd命令方法: SQL> host net user User accounts for \\PC-ATQHJ4UG1SDA ---------------------------------------------------------------------------- __vmware_user__ admin Administrator ASPNET Guest IUSR_PC-ATQHJ4UG1SDA IWAM_PC-ATQHJ4UG1SDA SUPPORT_

  • PowerShell 自动备份oracle并上传到ftp

    一.windows平台 1.rman自动备份方法 # Author: Edward.Zhou -- <edgeman_03@163.com> # Purpose: Windows平台下采用PowerShell使用rman自动备份oracle并上传备份到ftp,并根据日期自动保留所需备份 # Created: 2015/8/12 $env:ORACLE_SID="orcl" $env:NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

  • Windows下编写批处理脚本来启动和重置Oracle数据库

    cmd启动Oracle数据库 新建一个bat文件,复制内容进去,双击即可启动. @echo off net start OracleXETNSListener 2>nul net start OracleServiceXE 2>nul @oradim -startup -sid XE -starttype inst > nul 2>&1 Oracle重置数据库命令 新建bat文件,复制以下内容,然后执行. @echo off REM REM The script assum

  • Oracle数据库密码重置、导入导出库命令示例应用

    重置办法如下:打开CMD命令提示符,然后输入下面命令进行重置: 输入sqlplus /nolog,回车 SQL> conn /as sysdba 已连接: SQL>alter user system identified by "123456"; ---(123456就是重置的密码了) SQL>alter user sys identified by "123456"; 下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简

  • oracle sequence语句重置方介绍

    在开发过程中,可能会用到oracle sequence语句,本文以oracle sequence语句如何重置进行介绍,需要的朋友可以参考下Oracle重置sequence语句1 Sql代码 复制代码 代码如下: DECLARE n NUMBER(10 ); tsql VARCHAR2(100 ); p_seqName varchar2(20 ); BEGIN p_seqName := 'SEQ_RUN_ID'; EXECUTE IMMEDIATE 'SELECT ' || p_seqName |

  • oracle 重置序列从指定数字开始的方法详解

    重置oracle序列从指定数字开始 复制代码 代码如下: declare n number(10); v_startnum number(10):=10000001;--从多少开始 v_step number(10):=1;--步进 tsql varchar2(200); v_seqname varchar2(200):='MIP_JF_SEQUENCE';--序列名 begin execute immediate 'select '||v_seqname||'.nextval from dua

  • oracle 重置sys密码的方法介绍

    如何重置oracle 10g SYS 的密码 安装完oracle 10g后,竟然将安装时设置的系统密码忘记.在同事的帮助下通过一下方法解决. 1.oracle的密码文件存在于:oracle_home/database/pwd<sid>.ora 2.使用orapwd 重置SYS密码 C:oracleproduct10.2.0db_1database>orapwd Usage: orapwd file=<fname> password=<password> entri

  • shell脚本操作oracle删除表空间、创建表空间、删除用户

    oracle下表空间的导出,用户的删除,表空间删除,用户新建,表空间新建,数据导入的shell使用非oracle用户执行该脚本参数说名$1:base表空间的用户名$2:同步表空间的用户名使用场景测试用,base表空间用于升级建立一些固化数据.同步表空间用于测试用,每次去和base表空间拉平数据 复制代码 代码如下: #!/bin/shoraclehome=$ORACLE_HOMEecho $oraclehomelocaldir="/oracle/data"echo $localdir#

  • Oracle重建索引Shell脚本、SQL脚本分享

    索引是提高数据库查询性能的有力武器.没有索引,就好比图书馆没有图书标签一样,找一本书自己想要的书比登天还难.然而索引在使用的过程中,尤其是在批量的DML的情形下会产生相应的碎片,以及B树高度会发生相应变化,因此可以对这些变化较大的索引进行重构以提高性能.N久以前Oracle建议我们定期重建那些高度为4,已删除的索引条目至少占有现有索引条目总数的20%的这些表上的索引.但Oracle现在强烈建议不要定期重建索引.具体可以参考文章:Oracle 重建索引的必要性.尽管如此重建索引还是有必要的,只是不

  • Shell实现的Oracle启动脚本分享

    Usage: sh oracled [start|stop|restart] SIDs 其中SIDs是数据库名,多个名称之间用逗号分隔.缺省的操作是 restart ,也可以指定需要进行的操作( start | stop | restart ) 复制代码 代码如下: #!/bin/sh    cmdname="restart"  # get oracle sid information from env by default.  oracleSID=${ORACLE_SID}  env

  • Linux下的Oracle启动脚本及其开机自启动

    说明:以下操作环境在CentOS 6.4 + Oracle 11gR2(Oracle安装在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g) 用OUI安装并配置Oracle数据库后,Oracle就开启了(包括:数据库实例.监听器.EM).在重启操作系统之后,Oracle默认是没有启动的.使用如下命令查看Oracle相关服务是否已启动: ps aux | grep ora_ #若无ora_**_**相关的进程,则oracle数据库实例未启动

  • Shell实现的iptables管理脚本分享

    以前的脚本是用save模式,现在把命令附加到一个文件里面,这样的话,可以方便的二次修改什么的 脚本基本是这样的,大家可以跟自己的情况再次修改~  增加功能什么的. 复制代码 代码如下: #!/bin/bash while true do clear echo "----------------------menu----------------------" echo "(1) service iptables restart" echo "(2) ipt

  • Shell实现强制释放内存脚本分享

    公司服务器最近两天老是因为内存被使用满而造成死机,实在是受不了老叫机房的人去帮忙重启,专门写了个脚本来释放下内存,当然这台服务器不是太重要,我粗鲁的处理方式估计不会适合大多数服务器,请大家使用之前先考虑清楚,不然造成数据丢失就不关我的事了. 脚本内容: cat check-mem.sh 复制代码 代码如下: #!/bin/bash mem_total=`free -m | awk 'NR==2' | awk '{print $2}'` mem_free=`free -m | awk 'NR==3

  • shell监控linux系统进程创建脚本分享

    复制代码 代码如下: #!/bin/shwhile truedo ps ax -o command | sort | uniq > 1.txt usleep 100000 ps ax -o command | sort | uniq > 2.txt diff  1.txt 2.txt | grep '^\+[^\+]' | while read a do  a=`echo ${a#*+}`  if [[ "$a" != "uniq" ]] &&a

  • 如何利用shell开发keepalived启动脚本

    keepalived是什么? Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx.Haproxy.MySQL等)的高可用解决方案软件. Keepalived软件主要是通过VRRP协议实现高可用功能的.VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VR

  • mysql常用备份命令和shell备份脚本分享

    备份多个数据库可以使用如下命令: mysqldump -uroot -p123456 --databases test1 test2 test3 > /home/test/dump.sql; 恢复备份: source dump.sql --在mysql命令行中输入该命令即可恢复 备份整个数据库: mysqldump -uroot -123456 -A > all.sql 备份整个数据库结构: mysqldump -uroot -p123456 -P3306 -A -d > all_002

  • Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享

    环境: ssh server: 192.168.100.29  server.example.com ssh client: 192.168.100.30  client.example.com 通过root用户建立秘钥认证实现SHELL脚本管理,分发,部署 首先client端创建秘钥对,并将公钥分发给需要登录的SSH服务端 注:公钥相当于锁,私钥相当于钥匙,我们这里相当于在客户端创建一对钥匙和锁,想要做到SSH免密码登录,就相当于我们将锁分发到服务端并装锁,然后客户端就可以利用钥匙开锁. 一.

  • Shell实现判断进程是否存在并重新启动脚本分享

    简洁版: #! /bin/bash # author caoxin # time 2012-10-10 # program : 判断进行是否存在,并重新启动 function check(){ count=`ps -ef |grep $1 |grep -v "grep" |wc -l` #echo $count if [ 0 == $count ];then nohup python /runscript/working/$1 & fi } check behaviors.py

  • Nginx和PHP-FPM的启动、重启、停止脚本分享

    服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了.自己动手丰衣足食.以下脚本应该在RHEL, Fedora, CentOS下都适用. 一.Nginx启动脚本/etc/init.d/nginx 复制代码 代码如下: #!/bin/bash # # Startup script for Nginx - this script starts and stops th

随机推荐