oracle的启动与关闭
自定义:Oracle=instance(实例) +database(数据库)
instance 操作数据库的工具
database 存放数据的地方
一、启动
STARTUP NOMOUNT----实例已经创建,但是数据库没有安装和打开
STARTUP MOUNT----实例已经创建并且数据库已经安装,但是数据库没有打开
STARTUP OPEN----实例已经创建,数据库已经安装并打开
从低状态到高状态的切换:alter database 状态名,,如
NoMountàMount: ALTER DATABASE MOUNT;
其他打开方式
(1) STARTUP RESTRICT
这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具有DBA角色的用户)才可以使用数
据库。这种方式常用来对数据库进行维护,如数据的导入/导出操作时不希望有其他用户连接到数据库操
作数据。
(2) STARTUP FORCE
该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。
该命令仅在关闭数据库遇到问题不能关闭数据库时采用。
(3) ALTER DATABASE OPEN READ ONLY;
该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能的产品数据库
可以采用这种方式打开。
补充:
查看数据库的状态:select status from v$instance;
二、关闭
1、SHUTDOWN [NORMAL]
发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,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 Shutdown数据库不同方式对比表
关闭方式 A I T N
允许新的连接 × × × ×
等待直到当前会话中止 × × × √
等待直到当前事务中止 × × √ √
强制CheckPoint,关闭所有文件 × √ √ √