Oracle启动和停止
概述
只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库。
在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库。
虽然数据库正常运行,但如果没有启动监听程序,客户端就不能连接到数据库。
在oracle用户下: 启动监听程序 lsnrctl start 关闭监听程序lsnrctl stop
查询监听程序状态lsnrctl status
startup
支持参数
STARTUP options | upgrade_options
options为:[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname]
| [ OPEN [open_options] [dbname] ] | NOMOUNT ],
NOMOUNT、MOUNT、OPEN为startup的三个阶段,不能在命令中同时存在。其中,open_options为:READ {ONLY
| WRITE [RECOVER]} | RECOVER。
upgrade_options为:[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET]
启动过程
启动数据库的步骤:
1,创建并启动例程,内存和服务进程得到分配,初始化和启动,初始化参数文件。由参数文件中初始化参数决定如何启动例程 startup nomount 2,装载数据库,打开数据库控制文件,并从中获取数据库名称,数据文件的位置和名称等关于数据库物理结构的信息,由参数文件找到控制文件,以便装载数据库startup mount 3,打开数据库,例程将打开所有处于联机状态的数据文件和重作日志文件。如果载控制文件中列出的任何一个数据文件或重作日志文件无法打开,数据库将返回错误信息,这时需要进行数据库恢复。startup open
启动数据库过程中,文件的使用顺序是:参数文件,控制文件,数据文件和重做日志文件。这些文件都正常时,数据库才能正常启动。
启动参数解释
startup nomount
以NOMOUNT方式打开实例
非安装启动,这种方式启动下可执行:重建控制文件、重建数据库、读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
startup mount dbname
以MOUNT方式打开实例,如果未指定dbname,则打开以参数文件中DB_NAME参数指定的数据库。
安装启动,这种方式启动下可执行:
数据库日志归档、
数据库介质恢复、
使数据文件联机或脱机,
重新定位数据文件、重做日志文件。
执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。
startup open dbname
先执行“nomount”,
然后执行“mount”,
再打开包括Redo log文件在内的所有数据库文件,
这种方式下可访问数据库中的数据。
startup
以默认参数文件(SPFILE)开启实例,装载默认的数据库,并打开数据库。
等于以下三个命令
startup nomount
alter database mount
alter database open
STARTUP会分三步开启数据库,分别为:
1、Start and instance(NOMOUNT);
2、Mount the database(MOUNT);
3、Open the database(OPEN)
startup restrict
约束方式启动
以此模式打开的数据库只有拥有RESTRICTED SESSION系统权限的用户才能连接。 非特权用户访问时,会出现以下提示:
ERROR:
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
打开后,可以使用ALTER SYSTEM命令将该状态设为disable,以关闭restricted将数据库正常打开。
startup pfile=参数文件名
带初始化参数文件的启动方式 先读取参数文件,再按参数文件中的设置启动数据库
使用指定的文件中的参数打开实例。在未使用PFILE的情况下,startup以默认参数文件中的参数打开。
startup force
当不能关闭数据库时,可以用startup force来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令。
强制打开数据库,在open之前会先执行shutdown,相当于shutdown abort; startup
open。在当前实例正在运行的情况下,如果不使用FORCE的话,startup时会报错。FORCE可以在调试环境或非生产环境中使用,需慎用。
shutdown
支持参数
shutdown的四个参数:normal、transactional、immediate、abort
缺省不带任何参数时表示是normal方式
关闭过程
关闭数据库步骤:
1,关闭数据库,oracle将重做日志高速缓存中的内容写入重做日志文件,并且将数据库高速缓存中被改动过的数据写入数据文件,然后再关闭所有的数据文件和重做日志文件,这时数据库的控制文件仍然处于打开状态,但是由于数据库处于关闭状态,所以用户无法访问数据库 2,卸载数据库,关闭数据库后,例程才能被卸载,控制文件再这个时候被关闭,但例程仍然存在 3,终止例程,进程终止,分配给例程的内存sga区被回收。
停止参数解释
shutdown normal
正常方式关闭数据库。
不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
shutdown immediate
立即方式关闭数据库。 在SVRMGRL中执行shutdown immediate,数据库并不立即关闭, 而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),
当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动ROLLBACK的。启动时不需要实例恢复。
shutdown abort
直接关闭数据库,正在访问数据库的会话会被突然终止, 如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。
shutdown transactional
不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
使用shutdown的时候 normal和immediate可能都因为连接没有释放而造成数据库无法重启的现象。
SQL>shutdown abort; --这个方法是不等待会话结束就直接关闭掉数据库,一般情况下事不推荐使用的。实在关不掉的话,一般也没有什么问题。跟直接KILL进程差不多。
SQL>startup --shutdown abort以后在启动数据库。
SQL>startup force; --这个方法是直接关闭掉数据库然后再重启数据库,这个方式也可以达到关闭并重启的目的。
Oracle启动和停止的更多相关文章
- 本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。——Oracle监听器服务无法启动!
问题: oracle服务设置为手动启动.但是开机后手动启动监听服务后弹出框,提示“本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止.某些服务在未由其他服务或程 ...
- oracle rac的启动与停止
引言:这写篇文章的出处是因为我的一名学生最近在公司搭建RAC集群,但对其启动与关闭的顺序和原理不是特别清晰,我在教学工作中也发现了很多学员对RAC知识了解甚少,因此我在这里就把RAC里面涉及到的最常用 ...
- 启动和停止Oracle服务bat脚本
总所周知,Oracle随开机启动会占很大内存,而你每次想用的时候还得去计算机服务里去找服务.一个一个的启动,比较麻烦. 这里给出两个bat脚本,来直接双击启动和停止Oracle服务[脚本内容来源于网络 ...
- Linux Oracle服务启动&停止脚本与开机自启动
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...
- Oracle RAC 集群启动与停止
Oracle RAC 启动时,需要使用 root 用户执行,为了方便,写了启动和停止的脚本, 将该脚本放到 /root/bin ,因为bin 目录本身就在环境变量里,所以使用时直接root用户运行脚本 ...
- oracle监听查看、启动和停止
oracle监听查看.启动和停止 查看监听lsnrctl status 停止监听lsnrctl stop 启动监听lsnrctl start
- Bat 批处理启动和停止Oracle 服务
实际情况 * 不想开机自启动oracle服务,因为Windows 没有固态硬盘本身启动就很慢了,然后也不想自己手动的方式去启东oracle 服务 解决方案 *1启动 ``` @echo off ech ...
- 本地计算机 上的 OracleOraDb11g_home1TNSListener 服务启动后停止
今天玩oracle的时候突然遇到一个问题:本地计算机 上的 OracleOraDb11g_home1TNSListener 服务启动后停止.某些服务在未由其他服务或程序使用时将自动停止. 在网上找解决 ...
- (转)解决:本地计算机 上的 OracleOraDb10g_home1TNSListener服务启动后停止
原文地址:http://justsee.iteye.com/blog/1320059 手动启动一个问题:本地计算机 上的 OracleOraDb10g_home1TNSListener服务启动后停止. ...
随机推荐
- 利用jvisualvm使用btrace进行线上调试案例
用途:btrace主要用于线上调试.通过btrace,可在不改动代码的前提下,方便的发现以下问题: 1.定位性能慢的接口服务: 2.实时打印堆栈信息,定位死锁位置: 3.定位占用大量内存空间的代码块: ...
- 一些常见的Java面试题 & 面试感悟
< 前言 > 近期在面试,深感这个行业的浮躁,一些菜不辣基的弱鸡开出的工资待遇要求,超过了我.不知道他们是怎么拿到那么高的工资的,难道是他在公司有亲戚朋友吗?有后台吗?是行业热钱真的过多了 ...
- springboot线程池任务调度类 -- ThreadPoolTaskScheduler介绍
springboot中有一个bean,ThreadPoolTaskScheduler,可以很方便的对重复执行的任务进行调度管理:相比于通过java自带的周期性任务线程池ScheduleThreadPo ...
- (转)Mysql字符串字段判断是否包含某个字符串的3种方法
方法一: SELECT * FROM users WHERE emails like “%b@email.com%”; 方法二: 利用mysql 字符串函数 find_in_set(); SELECT ...
- Logistic Regression(逻辑回归)
分类是机器学习的一个基本问题, 基本原则就是将某个待分类的事情根据其不同特征划分为两类. Email: 垃圾邮件/正常邮件 肿瘤: 良性/恶性 蔬菜: 有机/普通 对于分类问题, 其结果 y∈{0,1 ...
- frist Django app — 一、 创建工程
缘起 既然python都学了,学习python的时候感觉是相见恨晚,一种新的编程语言带给我一种新的思考问题的方式,为了巩固学过的东西并进一步学习python,就想学学Django,看看会不会带给我关于 ...
- TypeError: Fetch argument 0 has invalid type <type 'int'>, must be a string or Tensor. (Can not convert a int into a Tensor or Operation.)
6月5日的時候,修改dilated_seg.py(使用tensorflow)出現了報錯: TypeError: Fetch argument 0 has invalid type <type ' ...
- redis锁机制介绍与实例
转自:https://m.jb51.net/article/154421.htm 今天小编就为大家分享一篇关于redis锁机制介绍与实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要 ...
- 用原生js简单模仿angular的依赖注入
大家都知道angular 依赖注入很神奇,跟我们平常写代码的风格思维差别很大,不过仔细分析确是一个很有意思的东西,依赖注入早期也叫依赖倒置,是java中有的.废话不多少直接上例子 本帖属于原创,转载请 ...
- Delphi中Chrome Chromium、Cef3学习笔记(五)
原文 http://blog.csdn.net/xtfnpgy/article/details/48489489 一.模拟移动鼠标 // SetCursorPos(StrToInt(Edit ...