Linux Oracle服务启动&停止脚本与开机自启动

linux下最好用的Oracle开发工具可能就是sqldeveloper了

首先在http://otn.oracle.com/ 上下载最新的Linux - sqldeveloper

sqldeveloper 安装好了可能无法正常打开,可能是没有jdk环境,或者sqldeveloper.conf的jdk目录设置需要修改

此时jdk目录为:/usr/lib/jvm/java-6-openjdk/

文件系统下搜寻sqldeveloper.conf所在位置,因为每个机器文件所在的位置不同。

我的是在/proc/2774/cwd/下

cd /proc/2774/cwd

sudo gedit sqldeveloper.conf

修改SetJavaHome http://www.cnblogs.com/jdk

为SetJavaHome :/usr/lib/jvm/java-6-openjdk/ 保存即可。

在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle。

一、在Linux下启动Oracle

登录到CentOS,切换到oracle用户权限

# su – oracle

接着输入:

$ sqlplus "/as sysdba"

原本的画面会变为
SQL>

接着请输入
SQL> startup

就可以正常的启动数据库了。

另外停止数据库的指令如下:
SQL> shutdown immediate

二、检查Oracle DB监听器是否正常

回到终端机模式,输入:

$ lsnrctl status

检查看看监听器是否有启动

如果没有启动,可以输入:

$ lsnrctl start

启动监听器

SQL> conn sys@orcl as sysdba

然后输入密码,sys以sysdba身份登入数据库。

(创建新的oracle数据库:在终端下输入:dbca  即可弹出创建数据库实例的对话框)

三、启动emctl

另外也可以发现http://localhost.localdomain:1158/em 目前是没有反应的,这边要另外启动,启动的指令如下:

$ emctl start dbconsole

这个指令运行时间较长,执行完的画面如下:

手动启动Oracle数据库完毕,下面创建系统自行启动Oracle的脚本。

四、Oracle启动&停止脚本

1. 修改Oracle系统配置文件:/etc/oratab,只有这样,Oracle 自带的dbstart和dbshut才能够发挥作用。

# vi /etc/oratab
orcl:/opt/oracle/102:Y

# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME:<N|Y>:

2. 在 /etc/init.d/ 下创建文件oracle,内容如下:

复制代码

1#!/bin/sh# chkconfig: 35 80 10# description: Oracle auto start-stop script. 2 3# 4Set ORA_HOME to be equivalent to the $ORACLE_HOME 5from which you wish to execute dbstart and dbshut; 6# 7Set ORA_OWNER to the user id of the owner of the 8# Oracle database in ORA_HOME. 9ORA_HOME=/opt/oracle/102ORA_OWNER=oracleif [ ! -f $ORA_HOME/bin/dbstart ]then 10    echo "Oracle startup: cannot start" 11    exitficase "$1" in'start') 12# Start the Oracle databases:echo "Starting Oracle Databases ... "echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -"$ORA_HOME/bin/dbstart" >>/var/log/oracleecho "Done"# Start the Listener:echo "Starting Oracle Listeners ... "echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -"$ORA_HOME/bin/lsnrctl start" >>/var/log/oracleecho "Done."echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Finished." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oracletouch /var/lock/subsys/oracle 13;;'stop') 14# Stop the Oracle Listener:echo "Stoping Oracle Listeners ... "echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -"$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracleecho "Done."rm -/var/lock/subsys/oracle 15 16# Stop the Oracle Database:echo "Stoping Oracle Databases ... "echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -"$ORA_HOME/bin/dbshut" >>/var/log/oracleecho "Done."echo ""echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Finished." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oracle 17;;'restart') 18$0 stop 19$0 start 20;;esac

复制代码

3. 改变文件权限
# chmod 755 /etc/init.d/oracle

4. 添加服务
# chkconfig --level 35 oracle on

5. 需要在关机或重启机器之前停止数据库,做一下操作
# ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle   //关机
# ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle   //重启 

6. 使用方法
# service oracle start        //启动oracle
# service oracle stop        //关闭oracle
# service oracle restart     //重启oracle

7. 测试

a. 开机自启动

复制代码

1Last login: Mon Nov 26 19:57:06 2012 from 10.0.0.145 2[root@ORS ~]# su - oracle 3[oracle@ORS ~]$ sqlplus "/as sysdba" 4 5SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 20:07:33 2012 6 7Copyright (c) 1982, 2005, Oracle.  All rights reserved. 8 9 10Connected to: 11Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 12With the Partitioning, OLAP and Data Mining options 13 14SQL> set linesize 300; 15SQL> set pagesize 30; 16SQL> select * from scott.emp; 17 18     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO 19---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 20      7369 SMITH      CLERK           7902 17-DEC-80        800                    20 21      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30 22      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30 23      7566 JONES      MANAGER         7839 02-APR-81       2975                    20 24      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30 25      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30 26      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10 27      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20 28      7839 KING       PRESIDENT            17-NOV-81       5000                    10 29      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30 30      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20 31      7900 JAMES      CLERK           7698 03-DEC-81        950                    30 32      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20 33      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10 34 3514 rows selected. 36 37SQL>

复制代码

b. service oracle stop

复制代码

1SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 2With the Partitioning, OLAP and Data Mining options 3[oracle@ORS ~]$ logout 4[root@ORS ~]# service oracle stop 5Stoping Oracle Listeners ...  6Done. 7Stoping Oracle Databases ...  8Done. 9 10[root@ORS ~]# su - oracle 11[oracle@ORS ~]$ sqlplus "/as sysdba" 12 13SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 20:17:20 2012 14 15Copyright (c) 1982, 2005, Oracle.  All rights reserved. 16 17Connected to an idle instance. 18 19SQL> set linesize 300; 20SQL> set pagesize 30; 21SQL> select * from scott.emp; 22select * from scott.emp 23* 24ERROR at line 1: 25ORA-01034: ORACLE not available 26 27 28SQL>

复制代码

c. service oracle start

复制代码

1SQL> Disconnected 2[oracle@ORS ~]$ logout 3[root@ORS ~]# service oracle start 4Starting Oracle Databases ...  5Done 6Starting Oracle Listeners ...  7Done. 8[root@ORS ~]#

复制代码

d. service oracle restart

复制代码

1[root@ORS ~]# service oracle restart 2Stoping Oracle Listeners ...  3Done. 4Stoping Oracle Databases ...  5Done. 6 7Starting Oracle Databases ...  8Done 9Starting Oracle Listeners ...  10Done. 11[root@ORS ~]#

复制代码

至此,Oracle服务启动&停止脚本与开机自启动设置完毕。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Linux Oracle服务启动&停止脚本与开机自启动 - HelloWorld