文档章节

深刻理解Oracle数据库的启动和关闭

狂奔啦蜗牛
 狂奔啦蜗牛
发布于 2012/08/25 10:05
字数 1922
阅读 135
收藏 2

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。

 一、启动和关闭Oracle数据库

 要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接的同义词)。Oracle数据库的新版本将逐步淘汰INTERNAL这个内部用户,所以我们最好还是设置DBA用户具有SYSDBA权限。

二、数据库的启动(STARTUP

 启动一个数据库需要三个步骤:

 1 创建一个Oracle实例(非安装阶段)

  2 由实例安装数据库(安装阶段)

  3 打开数据库(打开阶段)

 Startup命令中,可以通过不同的选项来控制数据库的不同启动步骤。

 1STARTUP NOMOUNT

 NOMOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示:

 SQL> startup nomount

  ORACLE 例程已经启动。

  Total System Global Area 35431692 bytes

  Fixed Size 70924 bytes

  Variable Size 18505728 bytes

  Database Buffers 16777216 bytes

  Redo Buffers 77824 bytes

 2STARTUP MOUNT

 该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件的内容,但并不打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件的更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"的提示。

 3STARTUP

 该命令完成创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面Startup Mount方式下的所有提示外,还会给出一个"数据库已经打开"的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。

 如果采用STARTUP NOMOUNT或者是STARTUP MOUNT的数据库打开命令方式,必须采用ALTER DATABASE命令来执行打开数据库的操作。例如,如果你以STARTUP NOMOUNT方式打开数据库,也就是说实例已经创建,但是数据库没有安装和打开。这是必须运行下面的两条命令,数据库才能正确启动。

 ALTER DATABASE MOUNT;

 ALTER DATABASE OPEN;

而如果以STARTUP MOUNT方式启动数据库,只需要运行下面一条命令即可以打开数据库: ALTER DATABASE OPEN.

 4、其他打开方式

 除了前面介绍的三种数据库打开方式选项外,还有另外其他的一些选项。

 (1) STARTUP RESTRICT

 这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具有DBA角色的用户)才可以使用数据库。这种方式常用来对数据库进行维护,如数据的导入/导出操作时不希望有其他用户连接到数据库操作数据。

 (2) STARTUP FORCE

 该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库遇到问题不能关闭数据库时采用。

 (3) ALTER DATABASE OPEN READ ONLY;

 该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能的产品数据库可以采用这种方式打开。

 数据库打开分为三个阶段

1-      nomount :  作用维护数据库系统文件,

2-      mount:作用维护用户文件,

3-      open:作用:进行数据访问,对数据做增、删、改、查

三、数据库的关闭(SHUTDOWN

 对于数据库的关闭,有四种不同的关闭选项,下面对其进行一一介绍。

 1SHUTDOWN NORMAL

 这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是SHUTDOWN NORNAL的意思。发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。

 2SHUTDOWN IMMEDIATE

 这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。

 当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。

 3SHUTDOWN TRANSACTIONAL

 该选项仅在Oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。

 4SHUTDOWN ABORT

 这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。

 1 数据库处于一种非正常工作状态,不能用shutdown normal或者shutdown immediate这样的命令关闭数据库;

 2 需要立即关闭数据库;

 3 在启动数据库实例时遇到问题;

所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。

 1可以清楚地看到上述四种不同关闭数据库的区别和联系。

1 Shutdown数据库不同方式对比表

关闭方式                      A  I   T  N 

允许新的连接                  × ×  × ×

等待直到当前会话中止          × × ×

等待直到当前事务中止          × × 

强制CheckPoint,关闭所有文件  ×  

其中:A-Abort I-Immediate T-Transaction N-Nornal

如果你的数据库出现问题:

1-      shutdown abort;

2-      startup;

3-      shutdown immediate;

staru

© 著作权归作者所有

狂奔啦蜗牛
粉丝 8
博文 17
码字总数 15025
作品 0
西安
程序员
私信 提问
Oracle中SCN的理解

系统检查点scn(v$database(checkpoint_change#)) 数据文件检查点(v$datafile(checkpoint_change#)) 数据文件终止scn(v$datafile(last_change#)) 数据文件中存放的检查点 启动scn (v$datafi...

晨曦之光
2012/04/12
412
0
Oracle基础知识-Oracle不同的启动关闭方式

Oracle中不同启动和关闭方式的区别 Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将周详介绍这些启动和关闭方式之间的区别连同他们各自不同的功能。 一、启动和关闭Oracle数据库 ...

青夜之衫
2017/12/04
0
0
Linux下建立Oracle服务及其开机自启动

说明:以下操作环境在CentOS 6.4 + Oracle 11gR2(Oracle安装在ORACLEBASE=/opt/oracle中,其ORACLEHOME=/opt/oracle/11g) 用OUI安装并配置Oracle数据库后,Oracle就开启了(包括:数据库实例...

yzbty23
2016/05/25
37
0
Debian配置Oracle 10g自启动

linux平台下默认安装的oracle 10g数据库是没有启动而且不会随系统自动启动的。 配置oracle 10g数据库自启动的步骤如下: 1、配置/etc/oratab 文件 oratab文件中项的格式为 $ORACLESID:$ORAC...

神勇小白鼠
2012/05/18
133
0
oracle数据库的启动关闭以及三种状态

每个用户使用数据库,必须先启动数据库。每个启动的数据库就是对应一个实例,实例可以理解为数据库运行时在内存里部分。 数据库启动分三步走: 1 启动实例: (此时启动的数据库实例还没有跟任...

Zero零_度
2014/12/16
128
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里云视频云正式支持AV1编码格式 为视频编码服务降本提效

今天我们要说的 AV1 可不是我们平时说的 .AVI 文件格式,它是由AOM(Alliance for Open Media,开放媒体联盟)制定的一个开源、免版权费的视频编码格式,可以解决H.265昂贵的专利费用和复杂的...

一肥仔
14分钟前
8
0
软件缺陷静态分析 CodeSonar 5.2 新版发布

对于使用C和C++构建安全关键软件的开发团队而言,CodeSonar一直是首选的静态分析解决方案。在近期发行的版本中,CodeSonar通过使用开放标准来扩展其语言覆盖范围,并增加了对Java、C#、Obj...

旋极科技
15分钟前
5
0
数据迁移

1. insert into values 或 insert into select批量插入时,都满足事务的原子性与一致性,但要注意insert into select的加锁问题。 2. replace into与insert into on duplicate key update都可...

qiang123
21分钟前
6
0
Linux装Windows系统后还不会激活?3招教你搞定

     相信大家已经发现荣耀MagicBook科技尝鲜版有多“香”了,不但可以轻松的将Linux系统装回Windows系统,还足足省下了300大洋!但是装回系统就万事大吉了吗?NoNoNo,我们还需要去激活...

梅丽莎好
24分钟前
6
0
Tomcat8源码分析-请求处理过程

上一篇:Tomcat8源码分析-启动流程-start方法 此篇主要讲Tomcat8从接收请求到处理请求的时序图画出来,并用文字描述一下主要流程 时序图 说明 文字描述流程之前先提示如下两点: 1.Acceptor...

特拉仔
26分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部