17092601_CentOS7(64)下Oracle11g设置开机自启动

1. 环境准备

1.1 系统

操作系统:CentOS 7(64位)

1.2 工具/软件

已安装完成的Oracle11g(64位);
创建数据库实例,本文中数据库实例名:test;$ORACLE_SID:testsid

2. 方法/步骤

2.1 配置/etc/oratab

以root身份登录到linux系统,编辑/etc/oratab文件,找到
testsid:/data/oracle/product/11.2.0/db_1:N
,改为
testsid:/data/oracle/product/11.2.0/db_1:Y
注意:/data/oracle/product/11.2.0/db_1为安装的$ORACLE_HOME,根据情况自行修改路径。

[oracle@zm-centos7 ~]$ su   #切换到root
Password:                   #输入root密码
[root@zm-centos7 oracle]# vim /etc/oratab
[root@zm-centos7 oracle]# cat /etc/oratab
#
tsid:/data/oracle/product/11.2.0/db_1:N


# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
testsid:/data/oracle/product/11.2.0/db_1:Y
[root@zm-centos7 oracle]#

2.2 配置/etc/rc.d/rc.local

添加如下行:
su oracle -lc “/data/oracle/product/11.2.0/db_1/bin/lsnrctl start”
su oracle -lc /data/oracle/product/11.2.0/db_1/bin/dbstart
其中第一行因为lsnrctl之后有空格,需要引号,第二行加不加引号都可以。修改完保存退出即可。

代码如下:

[root@zm-centos7 /]# vim /etc/rc.d/rc.local
[root@zm-centos7 /]# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc /data/oracle/product/11.2.0/db_1/bin/dbstart

touch /var/lock/subsys/local
# mount -a
[root@zm-centos7 /]#

如果是在以前的centos版本中,这样就可以了。但是centos7 的/etc/rc.local不会开机执行,认真查看/etc/rc.local文件的内容就发现问题的原因了

[root@zm-centos7 /]# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

翻译一下:

这个文件是为了兼容性的问题而添加的。
强烈建议创建自己的systemd服务或udev规则来在开机时运行脚本而不是使用这个文件。
与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行。
请记住,你必须执行“chmod +x /etc/rc.d/rc.local”来确保确保这个脚本在引导时执行。

查看一下/etc/rc.d/rc.local的权限

[root@zm-centos7 /]# ll /etc/rc.d/rc.local
-rw-r--r-- 1 root root 484 Oct 11 17:17 /etc/rc.d/rc.local

发现没有执行权限,按照说明的内容执行命令:

[root@zm-centos7 bin]# chmod +x /etc/rc.d/rc.local
[root@zm-centos7 bin]# reboot     #重启机器,确认结果

2.3 重启机器,确认自启动结果

以oracle用户,打开一个终端:

[oracle@zm-centos7 ~]$ lsnrctl status   # 查看监听状态

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-OCT-2017 23:05:06

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                11-OCT-2017 23:02:22
Uptime                    0 days 0 hr. 2 min. 45 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /data/oracle/diag/tnslsnr/zm-centos7/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Services Summary...
Service "test" has 1 instance(s).
  Instance "testsid", status READY, has 1 handler(s) for this service...
Service "testsidXDB" has 1 instance(s).
  Instance "testsid", status READY, has 1 handler(s) for this service...
The command completed successfully

查看oracle服务状态

[oracle@zm-centos7 ~]$ ps -ef |grep ora
oracle    3053     1  0 23:02 ?        00:00:00 /data/oracle/product/11.2.0/db_1/bin/tnslsnr LISTENER -inherit
oracle    3283     1  0 23:03 ?        00:00:00 ora_pmon_testsid
oracle    3285     1  0 23:03 ?        00:00:00 ora_vktm_testsid
oracle    3289     1  0 23:03 ?        00:00:00 ora_gen0_testsid
oracle    3291     1  0 23:03 ?        00:00:00 ora_diag_testsid
oracle    3293     1  0 23:03 ?        00:00:00 ora_dbrm_testsid
oracle    3295     1  0 23:03 ?        00:00:00 ora_psp0_testsid
oracle    3297     1  0 23:03 ?        00:00:00 ora_dia0_testsid
oracle    3299     1  0 23:03 ?        00:00:00 ora_mman_testsid
oracle    3301     1  0 23:03 ?        00:00:00 ora_dbw0_testsid
oracle    3303     1  0 23:03 ?        00:00:00 ora_lgwr_testsid
oracle    3305     1  0 23:03 ?        00:00:00 ora_ckpt_testsid
oracle    3307     1  0 23:03 ?        00:00:00 ora_smon_testsid
oracle    3309     1  0 23:03 ?        00:00:00 ora_reco_testsid
oracle    3311     1  0 23:03 ?        00:00:00 ora_mmon_testsid
oracle    3313     1  0 23:03 ?        00:00:00 ora_mmnl_testsid
oracle    3315     1  0 23:03 ?        00:00:00 ora_d000_testsid
oracle    3317     1  0 23:03 ?        00:00:00 ora_s000_testsid
oracle    3364     1  0 23:03 ?        00:00:00 ora_p000_testsid
oracle    3366     1  0 23:03 ?        00:00:00 ora_p001_testsid
oracle    3368     1  0 23:03 ?        00:00:00 ora_qmnc_testsid
oracle    3563     1  0 23:03 ?        00:00:00 ora_cjq0_testsid
oracle    3577     1  0 23:03 ?        00:00:00 ora_q000_testsid
oracle    3579     1  0 23:03 ?        00:00:00 ora_q001_testsid
oracle    3633     1  0 23:03 ?        00:00:00 ora_vkrm_testsid
root      3792  1241  0 23:04 ?        00:00:00 sshd: oracle [priv]
oracle    3801  3792  0 23:04 ?        00:00:00 sshd: oracle@pts/0
oracle    3806  3801  0 23:04 pts/0    00:00:00 -bash
oracle    3914     1  0 23:06 ?        00:00:00 ora_j000_testsid
oracle    3916     1  0 23:06 ?        00:00:00 ora_j001_testsid
oracle    3926  3806  0 23:07 pts/0    00:00:00 ps -ef
oracle    3927  3806  0 23:07 pts/0    00:00:00 grep --color=auto ora
[oracle@zm-centos7 ~]$

确认自启动成功。另外再说一下,虽然此方法实现了自启动,但在学习的过程中,还看到了其他的方法实现自启动,本人也将在之后的博文中进行实践和总结。谢谢!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值