shutdown immediate


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

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。


startup nomount


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



SQL> startup nomount
ORACLE 例程已经启动。

Total System Global Area  591396864 bytes
Fixed Size                  1250308 bytes
Variable Size             234884092 bytes
Database Buffers          348127232 bytes
Redo Buffers                7135232 bytes



然后必须:

SQL> alter database mount;

数据库已更改。

SQL> alter database open;

数据库已更改。



这样才算装载完成。


startup mount


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


SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  591396864 bytes
Fixed Size                  1250308 bytes
Variable Size             230689788 bytes
Database Buffers          352321536 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。


然后open:

SQL> alter database open;

数据库已更改。



这样就装载完成了。


此时非SYS用户也可以连接。


startup


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


SQL> startup
ORACLE 例程已经启动。

Total System Global Area  591396864 bytes
Fixed Size                  1250308 bytes
Variable Size             234884092 bytes
Database Buffers          348127232 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL>



一次性完成。


startup restrict


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


SQL> startup restrict
ORACLE 例程已经启动。

Total System Global Area  591396864 bytes
Fixed Size                  1250308 bytes
Variable Size             234884092 bytes
Database Buffers          348127232 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。


只有dba才能连接



SQL> conn hibernate/hibernate
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege


警告: 您不再连接到 ORACLE。
SQL> conn system/manager
已连接。
SQL>



startup force


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

SQL> startup force
ORACLE 例程已经启动。

Total System Global Area  591396864 bytes
Fixed Size                  1250308 bytes
Variable Size             239078396 bytes
Database Buffers          343932928 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL>




SHUTDOWN TRANSACTIONAL




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



SHUTDOWN ABORT



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


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


2、 需要立即关闭数据库;


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


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


ALTER DATABASE OPEN READ ONLY




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