配置完ASM实例后,每次启动oracle数据库服务器的时候要先启动ASM实例,然后启动数据库实例;关闭的时候,需要先关闭oracle数据库实例,然后关闭ASM实例;敲起命来来麻烦的很,因而改进了原来的shell脚本来更好的实现自动化,为了加快启动和关闭的速度,该脚本不包含dbconsole的启动和关闭,脚本同样适用于非ASM环境。

一:总脚本调用/usr/bin/startdb和/usr/bin/stopdb脚本,使用chkconfig命令创建相关的符号链接后就可以使用service命令调用

  1. [root@ora10g ~]# cat /etc/init.d/oracle
  2. #!/bin/sh
  3. #chkconfig: 35 85 15
  4. #description:oracle
  5. #function: start .. stop the oracle and asm instance on 10g R2 64bit
  6. #author:lw.yang
  7. #version: V.2.0
  8. # Source function library.
  9. . /etc/rc.d/init.d/functions
  10. case "$1" in
  11. start)
  12. /usr/bin/startdb
  13. ;;
  14. stop)
  15. /usr/bin/stopdb
  16. ;;
  17. *)
  18. echo $"Usage: $0 {start|stop}"
  19. exit 1
  20. esac

二:/usr/bin/startdb脚本用来启动ASM实例和ORACLE数据库实例和监听器,启动前会进行判断是否配置了ASM以及实例是否已经启动,ASM实例需要ocssd.bin后台进程启动才可以运行

  1. [root@ora10g ~]# cat /usr/bin/startdb
  2. #!/bin/sh
  3. #define variables
  4. ASM_PID=$(pidof ocssd.bin)
  5. ASM_PROC=$(ps -ef |grep asm_ |grep -v 'grep' |wc -l)
  6. D_SID=$(su - oracle -c "env |grep ORACLE_SID|cut -d "=" -f 2")
  7. DB_PROC=$(ps -ef |grep ora_ |grep -E 'smon|pmon|ckpt|lgwr' |wc -l)
  8. #startup asm instance
  9. if [ -z $ASM_PID ];then
  10. echo "Not configure use ASM"
  11. continue
  12. elif [ $ASM_PROC -gt "7" ];then
  13. echo "ASM instance already running"
  14. else
  15. su - oracle  -c "export ORACLE_SID=+ASM && sqlplus /nolog<<EOF
  16. conn /as sysdba
  17. startup
  18. exit
  19. EOF"
  20. fi
  21. #startup database instance
  22. if [ $DB_PROC -eq "4" ];then
  23. echo "Database instance already running,shutdown it firtst"
  24. else
  25. su - oracle -c "lsnrctl start"
  26. su - oracle -c "export ORACLE_SID=$D_SID && sqlplus /nolog<<EOF
  27. conn /as sysdba
  28. startup
  29. exit
  30. EOF"
  31. touch /var/lock/subsys/oracle
  32. fi

三:/usr/bin/stopdb脚本用来关闭监听器,oracle数据库实例和ASM实例,关闭之前会先进行判断是否使用ASM以及相关实例是否已经关闭

  1. #!/bin/sh
  2. #define variables
  3. ASM_PID=$(pidof ocssd.bin)
  4. ASM_PROC=$(ps -ef |grep asm_ |grep -v 'grep' |wc -l)
  5. D_SID=$(su - oracle -c "env |grep ORACLE_SID|cut -d "=" -f 2")
  6. DB_PROC=$(ps -ef |grep ora_ |grep -E 'smon|pmon|ckpt|lgwr' |wc -l)
  7. #stop database instance
  8. if [ $DB_PROC -eq "0" ];then
  9. echo "Database instance already shutdown"
  10. else
  11. su - oracle -c "lsnrctl stop"
  12. su - oracle -c "export ORACLE_SID=$D_SID && sqlplus /nolog<<EOF
  13. conn /as sysdba
  14. shutdown immediate
  15. exit
  16. EOF"
  17. rm -f /var/lock/subsys/oracle
  18. fi
  19. #stop asm instance
  20. if [ -z $ASM_PID ];then
  21. echo "Not configure use ASM"
  22. elif [ $ASM_PROC -eq "0" ];then
  23. echo "ASM instance already shutdown"
  24. exit
  25. else
  26. su - oracle  -c "export ORACLE_SID=+ASM && sqlplus /nolog<<EOF
  27. conn /as sysdba
  28. shutdown immediate
  29. exit
  30. EOF"
  31. fi

四:测试

  1. 非ASM环境下,数据库实例已经启动下测试:
  2. [root@ora10g ~]# service oracle start
  3. Not configure use ASM
  4. Database instance already running,shutdown it firtst
  5. [root@ora10g ~]# service oracle stop
  6. LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 02-JUN-2011 09:48:36
  7. Copyright (c) 1991, 2005, Oracle.  All rights reserved.
  8. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
  9. The command completed successfully
  10. SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jun 2 09:48:40 2011
  11. Copyright (c) 1982, 2005, Oracle.  All rights reserved.
  12. SQL> Connected.
  13. SQL> Database closed.
  14. Database dismounted.
  15. ORACLE instance shut down.
  16. SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
  17. With the Partitioning, OLAP and Data Mining options
  18. Not configure use ASM
  19. 非ASM环境下,数据库实例已经关闭下测试:
  20. [root@ora10g ~]# service oracle stop
  21. Database instance already shutdown
  22. Not configure use ASM
  23. [root@ora10g ~]# service oracle start
  24. Not configure use ASM
  25. LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 02-JUN-2011 09:50:25
  26. Copyright (c) 1991, 2005, Oracle.  All rights reserved.
  27. Starting /u01/app/oracle/bin/tnslsnr: please wait...
  28. TNSLSNR for Linux: Version 10.2.0.1.0 - Production
  29. System parameter file is /u01/app/oracle/network/admin/listener.ora
  30. Log messages written to /u01/app/oracle/network/log/listener.log
  31. Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora10g.766.com)(PORT=1521)))
  32. Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
  33. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
  34. STATUS of the LISTENER
  35. ------------------------
  36. Alias                     LISTENER
  37. Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
  38. Start Date                02-JUN-2011 09:50:25
  39. Uptime                    0 days 0 hr. 0 min. 0 sec
  40. Trace Level               off
  41. Security                  ON: Local OS Authentication
  42. SNMP                      OFF
  43. Listener Parameter File   /u01/app/oracle/network/admin/listener.ora
  44. Listener Log File         /u01/app/oracle/network/log/listener.log
  45. Listening Endpoints Summary...
  46. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora10g.766.com)(PORT=1521)))
  47. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
  48. Services Summary...
  49. Service "PLSExtProc" has 1 instance(s).
  50. Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
  51. The command completed successfully
  52. SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jun 2 09:50:25 2011
  53. Copyright (c) 1982, 2005, Oracle.  All rights reserved.
  54. SQL> Connected to an idle instance.
  55. SQL> ORACLE instance started.
  56. Total System Global Area  629145600 bytes
  57. Fixed Size                  2022824 bytes
  58. Variable Size             230687320 bytes
  59. Database Buffers          390070272 bytes
  60. Redo Buffers                6365184 bytes
  61. Database mounted.
  62. Database opened.
  63. SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
  64. With the Partitioning, OLAP and Data Mining options

五:设置操作系统环境变量

设置NLS_DATE_FORMAT和NLS_LANG环境变量,这两个变量需要同时设定,否则执行select sysdate from dual的时候,输出格式DD-MON-YY

SQL> select sysdate from dual;

SYSDATE
---------
02-JUN-11

[oracle@ora10g ~]$ env |grep NLS
NLS_LANG=american_america.UTF8
NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS

SQL> select sysdate from dual;

SYSDATE
-------------------
2011-06-02 10:04:49

设置默认编辑器为vim,若不设置该变量,在sqlplus中将无法使用ed命令

SQL> ed
Wrote file afiedt.buf
27

[oracle@ora10g ~]$ env |grep EDITOR
EDITOR=vim

自动启动和关闭Oracle 脚本相关推荐

  1. oracle禁止自动启动命令,自动启动和关闭Oracle 脚本

    配置完ASM实例后,每次启动oracle数据库服务器的时候要先启动ASM实例,然后启动数据库实例:关闭的时候,需要先关闭oracle数据库实例,然后关闭ASM实例:敲起命来来麻烦的很,因而改进了原来的 ...

  2. 脚本自启动oracle,自动启动和关闭Oracle 脚本

    配置完ASM实例后,每次启动oracle数据库服务器的时候要先启动ASM实例,然后启动数据库实例:关闭的时候,需要先关闭oracle数据库实例,然后关闭ASM实例:敲起命来来麻烦的很,因而改进了原来的 ...

  3. linux启动关闭脚本,Linux下自动启动关闭Oracle脚本

    自动启动oracle9i 9i装在oracle文件系统下,在/oracle下建立文件startdb, 文件内容 echo   "begin   to   start   oracle&quo ...

  4. linux 脚本启动oracle,linux自动启动 oracle脚本

    最近,ORACLE系统基本调试通过,是时候设置ORACLE随RHEL自动启动与关闭服务的时候了,之所以把这个任务放在最后来做,是因为我觉得这个应该不会很难,但真正实施起来,还是遇到了个不小的障碍 写好 ...

  5. Aix oracle 自动启动,AIX如何自动启动和关闭软件的运行

    1. 自动启动定制的软件 在系统引导时, init进程顺序检测/etc/inittab文件, 决定在引导过程中进行什么样的操作.如果应用, 进程或其它的用户操作需要在系统引导过程中进行, 则要在/et ...

  6. oracle脚本刷错了怎么办,dbstartdbshut脚本中的错误

    Oracle提供了两个脚本dbstart和dbshut用来启动和关闭数据库. 这两个脚本首先读取oratab(/etc/oratab)文件来决定哪个数据库是需要自动启动和关闭,然后启动和关闭那些数据库 ...

  7. 【转】Ubuntu Desktop下自动启动终端并运行脚本

    转自:Ubuntu Desktop下自动启动终端并运行脚本 - 简书 alex@ubuntu19:~# lsb_release -a No LSB modules are available. Dis ...

  8. 开启关闭oracle数据库,手动开启/关闭Oracle数据库

    @echo off @echo 启动/关闭数据库 set /p flag=您是否要启动数据库?(是按Y启动,否按N关闭) goto answer%flag% goto end :answery ech ...

  9. 计算机应用软件开机自动启动设置,电脑开机软件自动启动怎么关闭 win7/win10快速关闭开机自启软件...

    电脑开机软件自动启动怎么关闭?电脑的开机速度除了和自身电脑的配置有关系外,还和电脑设置过得启动项有关系,如果想要电脑保持一个极佳的开机速度,最要的办法就是不要保留太多的开机启动项,那么Win10系统和 ...

最新文章

  1. Android 软键盘的显示和隐藏,这样操作就对了
  2. 2017年如何在移动端优雅的使用flex
  3. c语言中的static变量和static函数
  4. JAVA去掉HTMl以及CSS样式
  5. Memcached安装与配置
  6. linux命令大写输入,Linux命令行:对内容进行大小写字符转换 ????
  7. SQLServer获取最后插入生成的ID 不同方法
  8. [NOIP2009 最优贸易]
  9. DDA算法--计算机图形学
  10. 字节跳动计算机视觉算法工程师面试题(秋招)
  11. hook(useState、useEffect、useReducer)、context、React项目起始
  12. 基于java SSM的仿哔哩哔哩视频分享系统
  13. 达内微软mta证书有用吗_微软MTA认证含金量极高 同程同美引入MTA考试认证倍受关注...
  14. 一台双u的服务器和一台单u的服务器性能能高一半吗,单机柜供电能力提升后,选择1U还是2U?...
  15. PHP 通过身份证号判断年龄(周岁)
  16. 耐克app显示无法连接服务器,nike app登录不了怎么办 nikeapp客服在哪里怎么联系...
  17. OWASP TOP 10 2017中文译文
  18. python+大数据学习打卡day1
  19. Django基础-中文文档
  20. Q : office word 2007 段首按退格键无法退到上一行 -- 暂未解决

热门文章

  1. 10.PHP中的赋值运算符
  2. SQL基本操作(三):存储过程和触发器
  3. vrml行走和静止的人代码_CAE二次开发的核心不是代码
  4. vue 写门户网站_你不得不知道的Vue项目技巧
  5. [转]错误“AxImp.exe”已退出,代码为 -1163019603。
  6. 大型项目linux自动化版本发布脚本(shell)之tomcat、nginx服务脚本
  7. 关于 IO 和 NIO 的思考
  8. .net OADate 转javascript的Datetime js 5位 日期 转换
  9. React Native悬浮效果组件
  10. 2分钟-实现开机nginx开机自启动脚本(shell篇)