`

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

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

  一、启动和关闭Oracle数据库

  对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager。从Oracle 8i以后,系统将Server Manager的所有功能都集中到了SQL*Plus中,也就是说从8i以后对于数据库的启动和关闭可以直接通过SQL*Plus来完成,而不再另外需要Server Manager,但系统为了保持向下兼容,依旧保留了Server Manager工具。另外也可通过图形用户工具(GUI)的Oracle Enterprise Manager来完成系统的启动和关闭,图形用户界面Instance Manager非常简单,这里不再详述。

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

  二、数据库的启动(STARTUP)

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

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

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

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

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

  1、STARTUP NOMOUNT

  NONOUNT选项仅仅创建一个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 

  2、STARTUP MOUNT

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

  3、STARTUP

  该命令完成创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面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;

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


  三、数据库的关闭(SHUTDOWN)

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

  1、SHUTDOWN NORMAL

  这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是SHUTDOWN NORNAL的意思。

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

  2、SHUTDOWN IMMEDIATE

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

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

  3、SHUTDOWN TRANSACTIONAL

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

  4、SHUTDOWN 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 楼 lnjz_jxj 2010-07-23  
谢谢你的分享~

相关推荐

    深刻理解oracle的关闭和开启

    Oracle数据库的管理和操作是DBA日常工作中至关重要的一环,其中数据库的开启和关闭是基础但关键的任务。Oracle提供了多种启动和关闭数据库的方法,以满足不同场景的需求和安全性考虑。 首先,Oracle数据库的启动...

    Oracle数据库管理员教程

    Oracle数据库管理员作为数据管理系统的核心守护者,负责确保数据库的稳定、安全和高效运行。在这个角色中,DBA需要具备对数据库体系结构深刻的理解,熟悉安装、升级以及日常的维护工作。此外,管理数据库的用户和...

    linux下oracle 10g的启动与关闭

    在Linux环境下管理Oracle 10g的启动和关闭过程,不仅涉及到对Oracle产品本身的熟悉,还需要对Linux操作系统有深刻的理解。正确地执行这些步骤,可以确保数据库服务的稳定运行,避免因不当操作引起的潜在风险。

    Oracle学习资料doc

    本"Oracle学习资料doc"压缩包包含了丰富的Oracle学习文档,旨在帮助初学者和经验丰富的DBA深入理解Oracle数据库的各个方面。以下将对这个压缩包中的知识点进行详细解析。 1. **Oracle基础概念**: - 数据库系统:...

    Oracle数据库物理文件备份/恢复

    总之,Oracle数据库物理文件的备份和恢复是数据库管理员必须掌握的核心技能,它涉及到对数据库结构的深刻理解以及正确操作数据库文件的能力。通过遵循上述步骤,并结合适当的备份策略,可以有效保障数据库的安全性和...

    Oracle 数据库操作技巧集

    深刻理解数据库的启动和关闭过程,有助于处理系统级问题。字符集乱码问题及其解决办法是多语言环境下的常见挑战。 **高级篇** 数据库管理员需要精通空间管理,包括如何有效地规划和利用数据库空间,以及处理回滚段...

    Oracle学习笔记.doc

    Oracle数据库是世界上最流行的数据库管理系统之一,广泛应用于企业级的数据存储和管理。...理解并熟练掌握这些基础知识,将有助于你在面试中表现出色,同时在实际工作中更高效地管理和维护Oracle数据库。

    Oracle基本参数配置

    这一过程不仅要求对Oracle数据库体系结构有深刻理解,还需要结合具体的应用场景和硬件环境进行细致调整。合理的内存配置能够极大地提升数据库的性能和稳定性,为企业提供更加高效的数据处理能力。然而,参数调整需...

    Oracle老师教学笔记,很详细.

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。这份"Oracle老师教学笔记"提供了一条从零基础到进阶...通过仔细阅读和实践,相信你可以对Oracle数据库有更深刻的理解和运用。

    Oracle9.0入门教程

    Oracle 9i 入门教程是一份针对初学者设计的指南,旨在帮助用户熟悉和掌握Oracle数据库管理系统的基础操作。...通过系统学习,你不仅可以掌握数据库的基本操作,还能建立起对数据库管理和性能优化的深刻理解。

    oracle的入门心得

    - **技能需求**:深刻理解Oracle数据库的工作原理,具备全局视野和严谨的思维方式。 - **特点**:责任重大,要求高,但稳定性好,随着经验积累价值更高。 - **职业路径**:通常需要一定的开发背景作为基础,从DBA...

    Oracle的初学者入门心得

    为了更好地理解Oracle数据库的运作机制,需要对其体系结构有一定的认识。 1. **物理结构**: - **控制文件**:包含数据库的重要信息,如数据文件和重做日志文件的位置等。 - **数据文件**:存储实际的数据。 - *...

    3 Oracle10g题库

    OCP(Oracle Certified Professional)是Oracle认证的专业级数据库管理员证书,它代表了对Oracle数据库技术的深入理解和专业技能。这个题库是针对OCP认证考试的训练材料,包含了丰富的实践题目和理论知识,旨在帮助...

    银行信息安全管理培训总结.pdf

    参与者深刻理解了Oracle数据库系统和红旗Linux,意识到持续学习的必要性。这些知识对于信息管理系统的高效运作和数据安全至关重要。培训激发了对问题解决和系统安全维护的信心,虽然不能保证完美处理所有问题,但...

Global site tag (gtag.js) - Google Analytics