Linux Oracle数据库开机启动

同事开发使用Oracle数据库,每天早上来上班之后得手动启动数据库。为了解决他的这个问题,于是乎给他写了一个开机自启的Shell脚本。

还有许多朋友服务器使用的Oracle数据库也可以使用这种方法,通用的哦~

 

  • 脚本介绍
  • 开机启动
  • 功能测试

一、脚本介绍

脚本内容:

#!/bin/bash 
#start Oracle server 
lsnrctl start 
echo $'startup\nexit' > /home/oracle/start_Oracle.sql 
sqlplus / as sysdba @/home/oracle/start_Oracle.sql 

脚本只有简简单单的五行内容,那么我们来简单了解一下吧!

 

第一行:告诉kernel我们使用的解释器为Bash

#!/bin/bash

 

第二行:简单的提示信息,便于后期维护

#start Oracle server 

 

第三行:启动数据库监听

lsnrctl start

  

第四行:将启动数据库需要的SQL语句输入至 /home/oracle/start_Oracle.sql数据库脚本中,后续我们需要调用此脚本

echo $'startup\nexit' > /home/oracle/start_Oracle.sql

 

/home/oracle/start_Oracle.sql的内容

startup
exit

 

第五行:调用我们刚刚生成的SQL语句,格式是:“sqlplus /as sysdba”连接数据库“@”后边加上SQL脚本

sqlplus / as sysdba @/home/oracle/start_Oracle.sql

二、开机启动

加入系统开机执行

# vi /etc/rc.local
增加
su - oracle -s /bin/bash /home/oracle/start_Oracle.sh

因为我使用的是root来执行此脚本,所以当开机启动的时候需要切换到Oracle用户才好

三、功能测试

重新启动检测是否成功,可能要等段时间,linux开机也需要加载些别的东西

# reboot

查看数据库是否启动成功

$ ps -ef | grep [o]ra_
oracle    2376     1  0 Jul01 ?        00:00:20 ora_pmon_dg01
oracle    2378     1  0 Jul01 ?        00:00:02 ora_psp0_dg01
oracle    2380     1  0 Jul01 ?        00:00:02 ora_mman_dg01
oracle    2382     1  0 Jul01 ?        00:00:03 ora_dbw0_dg01
oracle    2384     1  0 Jul01 ?        00:00:03 ora_lgwr_dg01
oracle    2386     1  0 Jul01 ?        01:09:20 ora_ckpt_dg01
oracle    2388     1  0 Jul01 ?        00:00:23 ora_smon_dg01
oracle    2390     1  0 Jul01 ?        00:00:00 ora_reco_dg01
oracle    2392     1  0 Jul01 ?        00:00:02 ora_cjq0_dg01
oracle    2394     1  0 Jul01 ?        00:00:18 ora_mmon_dg01
oracle    2396     1  0 Jul01 ?        00:00:02 ora_mmnl_dg01
oracle    2398     1  0 Jul01 ?        00:00:00 ora_d000_dg01
oracle    2400     1  0 Jul01 ?        00:00:00 ora_s000_dg01
oracle    2403     1  0 Jul01 ?        00:00:00 ora_arc0_dg01
oracle    2405     1  0 Jul01 ?        00:00:27 ora_arc1_dg01

 

查看数据库监听是否启动成功

$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 18-AUG-2013 18:55:20

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg01)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                18-AUG-2013 19:01:53
Uptime                    0 days 0 hr. 1 min. 19 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/product/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dg01)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "dg01" has 2 instance(s).
  Instance "dg01", status UNKNOWN, has 1 handler(s) for this service...
  Instance "dg01", status READY, has 1 handler(s) for this service...
Service "dg01_XPT" has 1 instance(s).
  Instance "dg01", status READY, has 1 handler(s) for this service...
The command completed successfully

 

至此,完成。

同事开发使用Oracle数据库,每天早上来上班之后得手动启动数据库。为了解决他的这个问题,于是乎给他写了一个开机自启的Shell脚本。 还有许多朋友服务器使用的Oracle数据库也可以使用这种方法,通用的哦~  
  • 脚本介绍
  • 开机启动
  • 功能测试

猜你喜欢

转载自leadercoo.iteye.com/blog/1926773
今日推荐