Oracle自动启动与停止
- 格式:doc
- 大小:39.00 KB
- 文档页数:5
一、重启服务器顺序:关闭数据库(toppord/toptest)→重启设备(reboot)→开启数据库(只需要开启toptest,topprod已设置自动启用)二、Linux下启动 oracle 数据库—- ssh连接上数据库主机,正式区DB(172。
16。
13.228) / 测试区DB(172。
16.13。
224) -— su – root/tiptop-- su – oracle-- echo $ORACLE_SID #检查当前实例-- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例-— lsnrctl start—- sqlplus / as sysdba—— startup至此,已将数据库开启到OPEN状态。
三、Linux下关闭ORACLE数据库—- ssh连接上正式区DB(172。
16。
13。
228) / 测试区DB(172.16。
13。
224)—— su - root/root #切换至ROOT管理员用户-— su – oracle #切换至oracle用户(oracle用户密码原为oracle,但不正确)-— echo $ORACLE_SID #检查当前实例—- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例-— sqlplus / as sysdba #以数据库管理员身份进入数据库—- shutdown immediate #关闭数据库-- su – root/root #切换回系统ROOT用户—- reboot #重启服务器检查服务器资源命令AP:top DB:topas备注:oracle数据库几种关闭方式:1、shutdown normal 正常方式关闭数据库关闭时间较长,等待事务完成才会关闭数据库。
<一>、ORACLE数据库启动模式1、启动SQL*PLUS不与数据库连接SQLPLUS /NOLOG2、以SYSDBA角色与Oracle连接CONNECT username/password AS SYSDBA3、启动实例1>、启动一个实例,装配和打开一个数据库STARTUP;或STARTUP PFILE='d:/oracle/admin/mydb/scripts/initMYDB.ora';2>、启动一个实例但不装配数据库--典型应用为数据库创建STARTUP NOMOUNT;3>、启动一个实例,装配数据库但不打开--该模式下允许你执行特定的维护操作,包括重命名数据库、增删或重命名日志文件、启用和停用重做归档日志文件选项;执行完整的数据库恢复STARTUP MOUNT;4>、在启动时限制一个数据库的存取--该模式使管理员可用数据库,但一般操作员不可用,应用于执行导入导出、执行SQL*loader的数据装载、临时阻止典型用户使用数据升迁或升级,在正常模式下,有CREATE SESSION系统特权的用户可以连接到数据库限制模式下,同时具有CREATE SESSION和RESTRICTED SESSION两个系统特权的用户才可以存取数据STARTUP RESTRICT;--关闭限制模式ALTER SYSTEM DISABLE RESTRICTED SESSION;--将正在运行的正常模式改变为限制模式ALTER SYSTEM ENABLE RESTRICTED SESSION;5>、强制一个实例启动(用于启动时出现问题情况,少用,慎用!)STARTUP FORCE;6>、启动实例,装配数据库和启动完全的介质恢复STARTUP OPEN RECOVER;4、改变数据库可用性1>、装配数据库ALTER DATABASE MOUNT;2>、打开数据库ALTER DATABASE OPEN;3>、以只读或只写或读写方式打开数据库ALTER DATABASE OPEN READ ONLY;ALTER DATABASE WRITE READ ONLY;ALTER DATABASE OPEN READ WRITE;<二>、ORACLE数据库关闭1、正常关闭SHUTDOWN NORMAL;2、事务性关闭--不许新连接,但等待现有的事务执行结束SHUTDOWN TRANSACTIONAL;3、立即关闭SHUTDOWN IMMEDIATE;4、强制关闭--该模式关闭下次启动时要进行实例恢复过程SHUTDOWN ABORT;5、停顿数据库--该状态下只允许DBA会话,不允许新的非DBA连接建立ALTER SYSTEM QUIESCE RESTRICTED;--取消停顿ALTER SYSTEM UNQUIESCE;--查看实例的停顿状态列ACTIVE_STATE说明:NORMAL未停顿QUIESCING正在停顿,但仍有非DBA会话QUIESCED已停顿select ACTIVE_STATE from V$INSTANCE;6、挂起数据库--暂停对数据文件和控制文件的所有IO,可以在无IO干扰情况先进行备份挂起命令可以挂起数据库而并不指定一个实例ALTER SYSTEM SUSPEND;--恢复到非挂起状态ALTER SYSTEM RESUME;--查看挂起状态SELECT DATABASE_STATUS FROM V$INSTANCE;。
让知识带有温度。
如何启动和关闭Oracle数据库整理如何启动和关闭Oracle数据库对于一个oracle数据库新手来说,怎么样进行管理oracle数据库呢?首先从最简洁的启动和关闭数据库来说,下面简洁的介绍一下Oracle数据库的.启动和关闭挨次实例讲解。
一、oralce的启动挨次:1、先启动监听程序(对应端口1521) :[]#lsnrctl start2、启动oracle实例:[]#sqlplus / as sysdba(回车)SQLstartup--启动的是环境变量中的默认数据库实例$ORACLE_SID--假如启动多个实例:export ORACLE_SID=ctaudit[]#sqlplus / as sysdba(回车)SQLstartup3、启动em(对应端口1158),isqlplus(对应端口5560):[]#emctl start dbconsole第1页/共2页千里之行,始于足下。
[]#isqlplusctl start二、oracle的关闭挨次1、先关闭em,isqlplus:[]#emctl stop dbconsole[]#isqlplusctl stop2、关闭监听:[]#lsnrctl stop3、关闭oracle实例:[]#sqlplus / as sysdba(回车)SQLshutdown immediate以上所述是我给大家介绍的Oracle数据库的启动和关闭挨次实例讲解,假如大家有任何疑问请给我们留言,我会准时回复大家的。
在此也特别感谢大家对的支持!文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。
第2页/共2页。
Linux操作oracle——关闭、停止、重启
一、启动监听、启动数据库
1.1启动监听
1.切换到oracle用户下
2.启动监听:
lsnrctl start
1.2.启动数据库
1.切换到oracle用户下
2.运行sqlplus命令,进入到sqlplus环境:
sqlplus /nolog
3.连接数据库(以管理员身份连接):
connect /as sysdba
4.启动数据库:
startup
二、停止监听、停止数据库
2.1.关闭监听
1.切换到oracle用户下
2.关闭监听:
lsnrctl stop
2.2.关闭数据库
1.切换到oracle用户下
2.运行sqlplus命令,进入到sqlplus环境:
sqlplus /nolog
3.连接数据库(以管理员身份连接):
connect /as sysdba
4.关闭数据库
shutdown immediate
三、相关其他命令及注意事项
3.1.其他命令
3.1.1.查看监听状态
1.切换到oracle用户下
2.查看监听状态
lsnrctl status
3.2.注意事项
3.2.1.操作监听和数据库都需要切换到oracle用户下
3.2.2.操作数据库还需要通过sqlplus,以管理员身份登录到oracle
3.2.3.如果shutdown immediatec长时间没反应,不要单纯的Crtl + C来取消,最好先另行百度解决办法。
一、摘要Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤:启动实例-->加载数据库-->打开数据库因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库。
1. Oracle启动需要经历四个状态:SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN2. Oracle关闭的四种方式:Normal, Immediate, Transactional, Abort3. 启动和关闭过程详解二、数据库启动过程1.NoMount 模式(启动实例不加载数据库)(1). 命令:startup nomount(2). 讲解:这种启动模式只会创建实例,并不加载数据库,Oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据文件。
在NoMount模式下,只能访问那些与SGA区相关的数据字典视图,包括VPARAMETER、VSGA、VPROCESS和VSESSION等,这些视图中的信息都是从SGA 区中获取的,与数据库无关。
(3). 模式用途:创建新数据库;重建控制文件;2.Mount模式(加载数据库但不打开数据库)(1). 命令:startup mount(2). 讲解:这种启动模式将为实例加载数据库,但保持数据库为关闭状态。
因为加载数据库时需要打开数据库控制文件,但数据文件和重做日志文件都都无法进行读写,所以用户还无法对数据库进行操作。
在Mount模式下,只能访问那些与控制文件相关的数据字典视图,包括VTHREAD、VCONTROLFILE、VDATABASE、VDATAFILE 和V$LOGFILE等,这些视图都是从控制文件中获取的。
(3). 模式用途:重命名数据文件;添加、删除或重命名重做日志文件;执行数据库完全恢复操作;改变数据库的归档模式;3.Open模式(正常打开数据库)(1). 命令:startup [open](2). 讲解:正常按3个步骤启动数据库。
oracle学习笔记(13)——数据库的启动与关闭1、常⽤的服务(1)OracleServiceSID数据库服务,这个服务会⾃动地启动和停⽌数据库。
如果安装了⼀个数据库,它的缺省启动类型为⾃动。
服务进程为ORACLE.EXE,参数⽂件initSID.ora,⽇志⽂件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。
注:SID - 数据库标识如Orcl(2)OracleHOME_NAMETNSListener监听器服务,服务只有在数据库需要远程访问时才需要(⽆论是通过另外⼀台主机还是在本地通过 SQL*Net⽹络协议都属于远程访问),不⽤这个服务就可以访问本地数据库,它的缺省启动类型为⾃动。
服务进程为TNSLSNR.EXE,参数⽂件Listener.ora,⽇志⽂件listener.log,控制台LSNRCTL.EXE,默认端⼝1521、1526。
(3)OracleDBConsoleorcl--可以不启动,⽤于管理Oracle的企业管理器的服务.(4)OracleJobSchedulerORCL--通常不启动,⽤于定期操作任务的服务(5)OracleOraDb10g_home1iSQL*Plus--可以不启动,这是isqlplus服务,⽤于⽤⽹页执⾏sql执⾏,11g已经取消了这个功能(6)OracleSNMPPeerMasterAgentSNMP服务代理,⽤于⽀持SNMP的⽹管软件对服务器的管理,除⾮你使⽤⽹管⼯具监控数据库的情况,否则不需要启动,它的缺省启动类型是⼿动。
服务进程为AGNTSVC.EXE,参数⽂件MASTER.CFG,默认端⼝161。
(7)OracleSNMPPeerEncapsulaterSNMP协议封装服务,⽤于SNMP协议转换,除⾮你使⽤⼀个不兼容的SNMP代理服务,否则不需要启动,它的缺省启动类型是⼿动。
服务进程为ENCSVC.EXE,参数⽂件ENCAPS.CFG,默认端⼝1161。
LinuxOracle服务启动停⽌脚本与开机⾃启动在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⾝份登⼊数据库。
三、启动emctl$ emctl start dbconsole这个指令运⾏时间较长,执⾏完的画⾯如下:⼿动启动Oracle数据库完毕,下⾯创建系统⾃⾏启动Oracle的脚本。
四、Oracle启动&停⽌脚本1. 修改Oracle系统配置⽂件:/etc/oratab,只有这样,Oracle ⾃带的dbstart和dbshut才能够发挥作⽤。
# vi /etc/orataborcl:/opt/oracle/102:Y# Entries are of the form:# $ORACLE_SID:$ORACLE_HOME:<N|Y>:2. 在 /etc/init.d/ 下创建⽂件oracle,内容如下:#!/bin/sh# chkconfig: 35 80 10# description: Oracle auto start-stop script.## Set ORA_HOME to be equivalent to the $ORACLE_HOME# from which you wish to execute dbstart and dbshut;## Set ORA_OWNER to the user id of the owner of the# Oracle database in ORA_HOME.ORA_HOME=/opt/oracle/102ORA_OWNER=oracleif [ ! -f $ORA_HOME/bin/dbstart ]thenecho "Oracle startup: cannot start"exitficase "$1" in'start')# 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/oracle echo "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -c "$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/oracle echo "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -c "$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;;'stop')# 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/oracle echo "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracleecho "Done."rm -f /var/lock/subsys/oracle# 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/oracle echo "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracleecho "Done."echo ""echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Finished." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oracle;;'restart')$0 stop$0 start;;esac3. 改变⽂件权限# chmod 755 /etc/init.d/oracle4. 添加服务# chkconfig --level 35 oracle on5. 需要在关机或重启机器之前停⽌数据库,做⼀下操作# 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 //重启oracle7. 测试a. 开机⾃启动Last login: Mon Nov 26 19:57:06 2012 from 10.0.0.145[root@ORS ~]# su - oracle[oracle@ORS ~]$ sqlplus "/as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 20:07:33 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> set linesize 300;SQL> set pagesize 30;SQL> select * from scott.emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ----------7369 SMITH CLERK 7902 17-DEC-80 800 207499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 307521 WARD SALESMAN 7698 22-FEB-81 1250 500 307566 JONES MANAGER 7839 02-APR-81 2975 207654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 307698 BLAKE MANAGER 7839 01-MAY-81 2850 307782 CLARK MANAGER 7839 09-JUN-81 2450 107788 SCOTT ANALYST 7566 19-APR-87 3000 207839 KING PRESIDENT 17-NOV-81 5000 107844 TURNER SALESMAN 7698 08-SEP-81 1500 0 307876 ADAMS CLERK 7788 23-MAY-87 1100 207900 JAMES CLERK 7698 03-DEC-81 950 307902 FORD ANALYST 7566 03-DEC-81 3000 207934 MILLER CLERK 7782 23-JAN-82 1300 1014 rows selected.SQL>b. service oracle stopSQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options[oracle@ORS ~]$ logout[root@ORS ~]# service oracle stopStoping Oracle Listeners ...Done.Stoping Oracle Databases ...Done.[root@ORS ~]# su - oracle[oracle@ORS ~]$ sqlplus "/as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 20:17:20 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to an idle instance.SQL> set linesize 300;SQL> set pagesize 30;SQL> select * from scott.emp;select * from scott.emp*ERROR at line 1:ORA-01034: ORACLE not availableSQL>c. service oracle startSQL> Disconnected[oracle@ORS ~]$ logout[root@ORS ~]# service oracle startStarting Oracle Databases ...DoneStarting Oracle Listeners ...Done.[root@ORS ~]#d. service oracle restart[root@ORS ~]# service oracle restartStoping Oracle Listeners ...Done.Stoping Oracle Databases ...Done.Starting Oracle Databases ...DoneStarting Oracle Listeners ...Done.[root@ORS ~]#⾄此,Oracle服务启动&停⽌脚本与开机⾃启动设置完毕。
深刻理解Oracle数据库的启动和关闭Oracle 数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。
、启动和关闭Oracle 数据库对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager。
从Oracle & 以后,系统将Server Manager 的所有功能都集中到了SQL*Plus 中,也就是说从8i 以后对于数据库的启动和关闭可以直接通过SQL*Plus来完成,而不再另外需要Server Manager,但系统为了保持向下兼容,依旧保留了Server Manager 工具。
另外也可通过图形用户工具(GUI)的Oracle Enterprise Manager 来完成系统的启动和关闭,图形用户界面Instance Manager 非常简单,这里不再详述。
要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDB叙限的用户登陆。
一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS 用户以SYSDB连接的同义词)。
Oracle 数据库的新版本将逐步淘汰INTERNA 这个内部用户,所以我们最好还是设置DBA 用户具有SYSDB权限。
、数据库的启动(STARTU)P启动一个数据库需要三个步骤:1、创建一个Oracle 实例(非安装阶段)2、由实例安装数据库(安装阶段)3、打开数据库(打开阶段)在Startup 命令中,可以通过不同的选项来控制数据库的不同启动步骤1、STARTUP NOMOUNTNONOUN选项仅仅创建一个Oracle实例。
读取init.ora 初始化参数文件、启动后台进程、初始化系统全局区(SGA)。
Init.ora 文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。
Oracle开启和关闭的四种模式>1 启动数据库 在cmd命令窗⼝,直接输⼊"sqlplus",直接进⼊oracle管理界⾯,输⼊⽤户名和密码后,开始启动数据库,启动数据库三个步骤:启动实例、加载数据库、打开数据库 命令格式: startup [nomount|mount|open|force][restrict][pfile=filename] nomount:表⽰启动实例不加载数据库 mount:表⽰启动实例、加载数据库并保持数据库的关闭状态 open:表⽰启动实例、加载并打开数据库,这个是默认选项 force:表⽰终⽌实例并重新启动数据库 restrict:⽤于指定以受限制的会话⽅式启动数据库 pfile:⽤于指定启动实例时所使⽤的⽂本参数⽂件,filename就是⽂件名 1.1 nomount模式 只会创建实例(oracle实例的各种内存结构和服务进程),并不加载数据库,也不会打开任何数据⽂件; startup nomount 注意:⽤户要以sysdba的⾝份登录,才会有关闭和启动数据实例额权限 1.2 mount模式 这种模式将启动实例、加载数据库并保持数据库的关闭状态。
startup mount 1.3 open模式 这种模式将启动实例,加载并打开数据库,这就是常规的启动模式,如果⽤户想要对数据库进⾏多种操作,就必须使⽤open模式启动数据库实例。
startup startup命令后⾯不带有任何参数,就表⽰以open模式启动数据库实例 1.4 force模式 这种模式将终⽌实例并重新启动数据库,这种启动模式具有⼀定的强制性。
⽐如,在其他启动模式失效时,可以尝试使⽤这种启动模式 2 关闭数据库 与启动数据库实例相同,关闭数据库实例也有三个关闭步骤:关闭数据库、卸载数据库、关闭实例 语法格式: shutdown [normal|transactional|immediate|abort] normal:表⽰以正常⽅式关闭数据库 transactional:表⽰在当前所有的活动事务被提交完毕之后,关闭数据库 immediate:表⽰在尽可能短的时间内⽴即关闭数据库 abort:表⽰以终⽌⽅式来关闭数据库 2.1 normal⽅式 这种⽅式称为正常的关闭⽅式,如果对关闭数据库的时间没有限制,通常会使⽤这种⽅式来关闭数据库: shutdown normal 在执⾏以上代码后,oracle将会执⾏以下操作: 阻⽌任何⽤户建⽴新的连接 等待当前所有正在连接的⽤户主动断开连接 当所有的⽤户都断开连接后,将⽴即关闭数据库 2.2 transactional⽅式 这种⽅式称为事务关闭⽅式,它的⾸要任务是能够保证当前所有的活动事物都可以被提交,并在尽可能短的时间内关闭数据库: shutdown transactional 在执⾏以上代码后,oracle将会执⾏以下操作: 阻⽌⽤户建⽴新连接和开始新事物 等待所有活动事物提交后,再断开⽤户连接 当所有的活动事物提交完毕,所有的⽤户都断开连接后,将关闭数据库 2.3 immediate⽅式 这种事⽴即关闭⽅式,这种⽅式能够在尽可能短的时间内关闭数据库: 在这种关闭⽅式下,oracle不但会⽴即中断当前⽤户的链接,⽽且会强⾏终⽌⽤户的当前活动事物,将未完成的事物回退,以⽴即关闭的⽅式关闭数据库时,oracle将会执⾏以下操作: 阻⽌⽤户建⽴新连接和开始新事务 将未提交的活动事务回退 关闭数据库 2.4 abort⽅式 这种⽅式称为终⽌关闭⽅式,终⽌关闭⽅式具有⼀定的强制性和破坏性。
linux AS5下 Oracle10g自动启动与停止1.修改/etc/oratabSID:ORACLE_HOME:AUTO把AUTO域设置为Y(大写),只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。
本实例为:ccen:/opt/oracle/product/10.2.0/db_1:Y2、编写服务脚本:将脚本命名为oracle,保存在/etc/rc.d/init.d下,改变文件属性:chmod 755 oracle# !/bin/bash# whoami# root# chkconfig: 345 51 49# description: starts the oracle dabase deamons#ORACLE_HOME=/opt/oracle/product/10.2.0/db_1ORACLE_OWNER=oraclecase "$1" instart)echo -n "Starting oracle10g: "su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart" &su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"#su - $ORACLE_OWNER -c "$ORACLE_HOME/export ORACLE_SID=CCEN"touch /var/lock/subsys/oracle10gecho;;stop)echo -n "shutting down oracle10g: "su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut" &su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"rm -f /var/lock/subsys/oracle10gecho;;'restart')echo -n "restarting oracle10g: "$0 stop$0 startecho;;*)echo "usage: oracle10g "exit 1esacexit 0#chmod 755 oracle#chkconfig --add oracle测试运行看能否启动oracle 服务及listener服务$ ps -efw | grep ora_$ lsnrctl status$ ps -efw | grep LISTEN | grep -v grep*************************************************************************************************** #启动监听lsnrctl start#关闭监听lsnrctl stop#启动dbconsole服务emctl start dbconsole#停止dbconsole服务emctl stop dbconsole#启动或停止iSQL*Plus:isqlplusctl start | stop。
Oracle启动和停止的几种方式startup [force] [restrict] [pfile= FILENAME] [open [recover][ DATABASE] | mount | nomount] startup force:终止当前数据库的运行,并开始重新正常的启动数据库。
startup restrict:只允许具有restricted session权限的用户访问数据库。
startup pfile=FILENAME:以FILENAME为初始化文件启动数据库,不是采用缺省初始化文件。
startup open:startup缺省的参数就是open,同startup(即不带任何参数),打开数据库,允许数据库的访问。
当前实例的控制文件中所描述的所有文件都已经打开。
startup mount:mount数据库,仅仅给dba进行管理操作,不允许数据库的用户访问。
仅仅只是当前实例的控制文件被打开,数据文件未打开。
startup nomount:仅仅通过初始化文件,分配出sga区,启动数据库后台进程,没有打开控制文件和数据文件。
不能任何访问数据库。
startup recover:数据库启动,并开始介质恢复。
=================================================================== shutdown有四个参数:normal、transactional、immediate、abort。
缺省不带任何参数时表示是normal。
shutdown normal:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。
启动时不需要实例恢复。
shutdown transactional:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。
启动时不需要实例恢复。
shutdown immediate:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。
Oracle可以设置为自动启动和手动启动
设置为自动启动,则在开机时oracle就会启动,但是开机会很慢。
将oracle设置为开机启动或者关闭开机启动有两种方法:
1、使用360或者金山卫士关闭oracle开机启动,在金山关闭后
在控制面板的服务项里面也就关闭了,二者是同步的。
2、同理,在控制面板的服务项里关闭后,在金山卫士的开机启动
项里也会自动关闭oracle。
3、控制面板管理工具服务找到oracle开头的服
务将oracle监听服务(OracleXETNSListener,)和本地服务(OracleService[XE])选为自动或者手动(根据实际需要自行变化)
如果oracle设置为手动,也就是开机后自己手动启动数据库,那么手动启动数据库也有两种方法
1、运用快捷方式,在开始菜单中点击启动和关闭数据库来开启和
关闭数据库服务(这种方法只是在oracle的express版本中才有,企业版中没有这种方法,express为精简版,为初学者练习使用,一般直接安装企业版)
2、控制面板管理工具服务找到oracle开头的服
务将oracle监听服务和本地服务选为启动或者停止(根据实际需要自行变化)
注意:运用快捷方式手动启动时会让两个服务都启动,但是运用快捷
方式关闭时,貌似只能将其中一个服务关闭掉,所以,关闭服务时,最好在后台通过控制面板关闭。
19.Oracle启动停止
Linux操作oracle——关闭、停止、重启
一、启动监听、启动数据库
1.1启动监听
1.切换到oracle用户下
2.启动监听:
lsnrctl start
1.2.启动数据库
1.切换到oracle用户下
2.运行sqlplus命令,进入到sqlplus环境:sqlplus /nolog
3.连接数据库(以管理员身份连接):connect /as sysdba
4.启动数据库:
startup
二、停止监听、停止数据库
2.1.关闭监听
1.切换到oracle用户下
2.关闭监听:
lsnrctl stop
2.2.关闭数据库
1.切换到oracle用户下
2.运行sqlplus命令,进入到sqlplus环境:sqlplus /nolog
3.连接数据库(以管理员身份连接):connect /as sysdba
4.关闭数据库
shutdown immediate
三、相关其他命令及注意事项
3.1.其他命令
3.1.1.查看监听状态
1.切换到oracle用户下
2.查看监听状态
lsnrctl status
3.2.注意事项
3.2.1.操作监听和数据库都需要切换到oracle用户下
3.2.2.操作数据库还需要通过sqlplus,以管理员身份登录到oracle
3.2.3.如果shutdown immediatec长时间没反应,不要单纯的Crtl + C来取消,最好先另行百度解决办法。
一、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须首先切换到root用户,如下su -roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪几种启动方式说明:有以下几种启动方式:1、startup nomount非安装启动,这种方式启动下可执行:重建控制文件、重建数据库读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
2、startup mount dbname安装启动,这种方式启动下可执行:数据库日志归档、数据库介质恢复、使数据文件联机或脱机,重新定位数据文件、重做日志文件。
linux下Oracle自动启动与停止1、修改Oracle系统配置文件/etc/oratab/etc/oratab 格式为:SID:ORACLE_HOME:AUTO把AUTO域设置为Y(大写),只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。
我的为:ora9i:/home/oracle/ora/products/9.2.0:Y2、编写服务脚本:如下#!/bin/bash##################FUNCTION############### AutoStart Oracle and listener# AutoStop Oracle and listener######################################## Created by ZhouYS 2003-11-26#case "$1" instart)echo "Starting Oracle Databases ... "echo "-------------------------------------------------" >> /v ar/log/oracledate +" %T %a %D : Starting Oracle Databasee as part of system up." >> /v ar/log/oracleecho "-------------------------------------------------" >> /v ar/log/oraclesu - oracle -c "dbstart" >> /v ar/log/oracleecho "Done."echo "Starting Oracle Listeners ... "echo "-------------------------------------------------" >> /v ar/log/oracledate +" %T %a %D : Starting Oracle Listeners as part of system up." >> /v ar/log/oracleecho "-------------------------------------------------" >> /v ar/log/oraclesu - oracle -c "lsnrctl start" >> /var/log/oracleecho "Done."echo ""echo "-------------------------------------------------" >> /v ar/log/oracledate +" %T %a %D : Finished." >> /v ar/log/oracleecho "-------------------------------------------------" >> /v ar/log/oracletouch /v ar/lock/subsys/oracle;;stop)echo "Stoping Oracle Listeners ... "echo "-------------------------------------------------" >> /v ar/log/oracledate +" %T %a %D : Stoping Oracle Listener as part of system down." >> /v ar/log/oracleecho "-------------------------------------------------" >> /v ar/log/oraclesu - oracle -c "lsnrctl stop" >> /v ar/log/oracleecho "Done."rm -f /v ar/lock/subsys/oracleecho "Stoping Oracle Databases ... "echo "-------------------------------------------------" >> /v ar/log/oracledate +" %T %a %D : Stoping Oracle Databases as part of system down." >> /v ar/log/oracleecho "-------------------------------------------------" >> /v ar/log/oraclesu - oracle -c "dbshut" >>/v ar/log/oracleecho "Done."echo ""echo "-------------------------------------------------" >> /v ar/log/oracledate +" %T %a %D : Finished." >> /v ar/log/oracleecho "-------------------------------------------------" >> /v ar/log/oracle;;restart)$0 stop$0 start;;*)echo "Usage: oracle {start|stop|restart}"exit 1esac将脚本命名为oracle,保存在/etc/rc.d/init.d下改变文件属性:chm od 755 oracle注意:在windows下编辑此文件时有DOS格式字符导致在linux下不能够正常运行,建议用gedit 或用 v i编辑3、建立服务连接:系统启动时启动数据库,我们需要以下连结∶--------------------------------------------------------------------------------$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle$ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle$ ln -s ../init.d/oracle /etc/rc.d/rc5.d/S99oracle #rc4.d unused--------------------------------------------------------------------------------要在重新启动时停止数据库,我们需要以下连结∶--------------------------------------------------------------------------------$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # 停止$ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # 重新启动********************************************************************************** ************************************Linux中在Oracle安装完毕以后,如果重新启动Linux ,Oracle是不会自动启动的,你可以通过手动调用dbstart命令来进行启动,不过这样似乎也很繁琐。
默认地,如果在Windows下安装Oracle的话,会注册相应的服务,并随着操作系统启动而自动启动。
但是,在Linux(环境是:RHEL5.2)下却需要进行一些配置才能实现这个功能。
具体如下:一、修改Oracle系统配置文件/etc/oratab[root@RHEL ~]#gedit /etc/oratab/etc/oratab 格式为:SID:ORACLE_HOME:AUTO,把AUTO域设置为Y(大写)。
只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。
我的环境为:orcl:/usr/app/oracle/product/10.2.0/db_1:Y二、编写服务脚本[root@RHEL ~]#gedit /etc/rc.d/init.d/oracle内容为:#!/bin/bash##################FUNCTION############### AutoStart Oracle and listener Using dbstart# AutoStop Oracle and listener Using dbstop######################################## Edited by LDY 2009-01-04#ORACLE_HOME=/usr/app/oracle/product/10.2.0/db_1LOG=$ORACLE_HOME/oracle.logcase "$1" instart)echo "Starting Oracle Databases ... "echo "-------------------------------------------------" >> $LOG 2>&1date +" %T %a %D : Starting Oracle Databasee as part of system up." >> $LOG 2>&1su - oracle -c "$ORACLE_HOME/bin/dbstart" >> $LOG 2>&1echo "Done."date +" %T %a %D : Finished." >> $LOG 2>&1echo "-------------------------------------------------" >> $LOG 2>&1touch /var/lock/subsys/oracle;;stop)echo "Stopping Oracle Databases ... "echo "-------------------------------------------------" >> $LOG 2>&1date +" %T %a %D : Stopping Oracle Databases as part of system down." >> $LOG 2>&1su - oracle -c "$ORACLE_HOME/bin/dbshut" >> $LOG 2>&1echo "Done."date +" %T %a %D : Finished." >> $LOG 2>&1echo "-------------------------------------------------" >> $LOG 2>&1rm -f /var/lock/subsys/oracle;;restart)$0 stop$0 start;;*)echo "Usage: oracle {start|stop|restart}"exit 1esac保存后,需要修改一下权限:[root@RHEL ~]#chmod 755 /etc/rc.d/init.d/oracle关于这部分服务的编写,可以参考/etc/rc.d/init.d下其他服务,比如iptables之类的。
三、建立服务连接系统启动时启动数据库,我们需要以下连结∶[root@RHEL ~]#ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc2.d/S99oracle[root@RHEL ~]#ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S99oracle[root@RHEL ~]#ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle #rc4.d unused 要在重新启动时停止数据库,我们需要以下连结∶[root@RHEL ~]#ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc0.d/K01oracle # stop[root@RHEL ~]#ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc6.d/K01oracle # restart四、修改dbstart和dbshut尽管在服务脚本中,用到了dbstart和dbshut,但是还不知道里面有些什么。
其实,还是需要简单地修改一下这两个文件,以便正确启动oracle 监听服务。
[oracle@RHEL ~]$gedit $ORACLE_HOME/bin/dbstart可以在内容中找到:# Set this to bring up Oracle Net ListenerORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracleif [ ! $ORACLE_HOME_LISTNER ] ; thenecho "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"elseLOG=$ORACLE_HOME_LISTNER/listener.log# Start Oracle Net Listenerif [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; thenecho "$0: Starting Oracle Net Listener" >> $LOG 2>&1$ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1 &export VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL for " | cut -d' ' -f5 | cut -d'.' -f1`elseecho "Failed to auto-start Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnslsnr"fifi这部分内容是启动Oracle监听服务,但是它指定的路径却是:/ade/vikrkuma_new/oracle。
需要修改一下,变成我们自己的安装路径:ORACLE_HOME_LISTNER=/usr/app/oracle/product/10.2.0/db_1需要说明的是,如果监听(Listener)的名字不是标准的,那么还需要修改:$ORACLE_HOME_LISTNER/bin/lsnrctl start 为$ORACLE_HOME_LISTNER/bin/lsnrctl start [监听名]。
[oracle@RHEL ~]$gedit $ORACLE_HOME/bin/dbshut找遍内容,却没有发现有关于停止监听服务的内容。
为了于dbstart对应,在文件中添加如下内容(其中着色部分是添加的内容):.......................................................# Save LD_LIBRARY_PATHSA VE_LLP=$LD_LIBRARY_PATH# Added by ldy 2009-01-04# Set this to stop Oracle Net ListenerORACLE_HOME_LISTNER=/usr/app/oracle/product/10.2.0/db_1if [ ! $ORACLE_HOME_LISTNER ] ; thenecho "ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener"elseLOG=$ORACLE_HOME_LISTNER/listener.log# Stop Oracle Net Listenerif [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; thenecho "$0: Stopping Oracle Net Listener" >> $LOG 2>&1$ORACLE_HOME_LISTNER/bin/lsnrctl stop >> $LOG 2>&1 &export VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL for " | cut -d' ' -f5 | cut -d'.' -f1`elseecho "Failed to auto-stop Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnslsnr"fifi# End Added# Set this in accordance with the platformORATAB=/etc/oratab .......................................................五、验证服务最简单的办法,就是重启电脑,查看效果。