oracle数据库的启动和关闭

数据库的启动和关闭

Oracle数据库提供了几种不同的数据库启动和关闭方式。
一、启动和关闭Oracle数据库
要启动和关闭数据库,必须要以具备Oracle 管理员SYSDBA权限的用户登陆。

二、数据库的启动(STARTUP)
启动一个数据库需要三个步骤:
1、 创建一个Oracle实例(非安装阶段)
2、 由实例安装数据库(安装阶段)
3、 打开数据库(打开阶段)

在Startup命令中,能够通过不同的选项来控制数据库的不同启动步骤。
1、STARTUP 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

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方式启动数据库,只需要运行下面一条命令即能够打开数据库:

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

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

(2) STARTUP FORCE
该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库碰到问题不能关闭数据库时采用。
(
3) ALTER DATABASE OPEN READ ONLY;
该命令在创建实例连同安装数据库后,以只读方式打开数据库。适用那些仅仅提供查询功能的产品数据库

三、数据库的关闭(SHUTDOWN)
1、SHUTDOWN NORMAL
发出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语句将立即中止,任何未提交的事务将不回滚,不等待现在连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,
因此,下一次启动可能要更多的时间。


上述四种不同关闭数据库的区别和联系:
关闭方式 Abort Immediate  Normal
允许新的连接 × ×  ×       ---都不允许新的链接
等待直到当前会话中止 × ×  √     --normal等待当前会话终止
等待直到当前事务中止 × ×  √    ---normal等待当前事务终止
强制CheckPoint,关闭任何文档 × √ √ -- abort啥都不管,直接关闭

你可能感兴趣的:(oracle)