同事开发使用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数据库也可以使用这种方法,通用的哦~- 脚本介绍
- 开机启动
- 功能测试