5.4 数据库服务器的启动和关闭

Oracle服务器的启动分为三个步骤:启动实例,装载数据库,打开数据库。

在启动实例时,实例将读取参数文件的内容,根据参数的设置分配系统全局区(SGA),建立后台进程,并打开其他一些文件。在默认情况下将读取服务器端的参数文件。如果希望读取另一个参数文件,需要通过PFILE关键字指定参数文件的路径和名称。

装载数据库时,实例将打开控制文件,取得数据库的数据文件和重做日志文件的名称和状态,并在实例和数据库之间建立关联关系。

打开数据库的结果是实例打开所有的数据文件和重做日志文件,为用户访问数据做好准备。如果控制文件、数据文件和重做日志文件的状态不一致,还要进行实例恢复。至此,Oracle服务器启动完毕。

在对数据库进行管理时,常常需要根据某个目的,将数据库服务器启动到某个指定状态,这时可以分步启动。在SQL*Plus中执行STARTUP命令,可以启动数据库服务器,这条命令有若干个选项,用于控制Oracle服务器的启动过程。STARTUP命令的格式如下:


STARTUP 选项


可以使用的选项有:

·nomount:读参数文件,启动实例。

·mount:打开控制文件,并装载数据库。

·open:打开数据库中的数据文件和重做日志文件。

·force:重新启动数据库服务器。

·pfile=文件名:指定文本参数文件。

如果不带任何选项,执行STARTUP命令的结果是启动实例,并打开数据库。数据库管理员可以使用上述选项,控制数据库服务器的启动过程。例如:


SQL>STARTUP NOMOUNT PFILE='/home/oracle/init.ora';


然后可以将数据库服务器的状态转入更高级别,例如:


SQL>ALTER DATABASE MOUNT;

SQL>ALTER DATABASE OPEN;


数据库管理员可以从动态性能视图v$instance中查看实例目前的状态,例如:


SQL>SELECT instance_name, status FROM v$instance;


关闭数据库服务器的命令是SHUTDOWN。关闭数据库服务器的过程跟启动过程正好相反,首先关闭数据文件和重做日志文件,然后关闭控制文件,最后关闭实例。可以通过几个参数控制关闭的方式。SHUTDOWN命令的格式如下:


SHUTDOWN选项


可以使用的选项有:

·NORMAL:默认方式,正常关闭数据库服务器。

·TRANSACTIONAL:正常关闭数据库服务器,如果有未提交的事务,则等待。

·IMMEDIATE:关闭数据库服务器,如果有未提交的事务,则回滚。

·ABORT:关闭数据库服务器,如果有未提交的事务,则回滚。

表5.5对四种关闭数据库服务器的方式进行了比较。

figure_0215_0066

在Oracle 11g中,还可以把实例从较高级别的状态转到较低级别的状态。例如,下面的命令用于关闭数据库,把实例从open状态转到mount状态:


SQL>ALTER DATABASE CLOSE;


在UNIX/Linux系统中,还可以使用Oracle的命令dbstart和dbshut来启动和关闭数据库服务器。如果数据库是利用DBCA工具创建的,那么在/etc目录下将产生一个文件oratab,在文件中包含以下内容:


orcl:/u01/app/oracle:N


其中每行代表一个数据库实例,在每行中,第一个字段代表实例名称,第二个字段为Oracle软件的安装目录,第三项为YES或者NO。如果把第三项改为Y(即YES),那么在操作系统中执行dbstart时将启动这个数据库实例,执行dbshut时将关闭它。

如果数据库是通过命令行创建的,那么文件/etc/oratab需要手工创建,文件内容也需要手工添加。