Oracle数据库基础与应用教程
上QQ阅读APP看书,第一时间看更新

3.2 启动数据库

3.2.1 启动数据库步骤

在一个典型的Oracle使用过程中,通过STARTUP命令手动启动一个实例,然后装载并打开数据库,使其能让用户使用。

图3-17显示了将数据库的进展从关闭(SHUTDOWN)状态到打开(OPEN)状态的步骤。

图3-17 启动数据库步骤

当Oracle数据库从SHUTDOWN状态进入到OPEN状态,需经历以下3个模式。

1. NOMOUNT

实例启动但是不装载数据库,尚未与数据库相关联。

2. MOUNT

实例启动,并通过读取数据库的控制文件装载数据库,与数据库相关联。

3. OPEN

实例启动,并通过读取控制文件装载数据库,读取数据文件和联机重做日志文件打开一个相关联的数据库。授权用户可以访问包含在数据文件中的数据。

3.2.2 启动数据库选项

使用STARTUP命令结合不同选项来启动Oracle数据库,从而进入不同的模式中。要启动数据库,必须要拥有SYSDBA或SYSOPER系统权限。

1. NOMOUNT选项

使用NOMOUNT选项可以启动一个实例,而无需装载和打开数据库,此时将读取参数文件。这将不允许访问数据库,通常只用于创建数据库或重新创建控制文件。

SQL> STARTUP NOMOUNT
ORACLE 例程已经启动。
Total System Global Area    431038464 bytes 
Fixed Size                  1375088 bytes 
Variable Size             318768272 bytes 
Database Buffers          104857600 bytes 
Redo Buffers                6037504 bytes

2. MOUNT选项

使用MOUNT选项可以启动实例并装载数据库,但不打开数据库,允许执行特定的维护操作,但一般不允许对数据库进行访问,此时将读取控制文件。

MOUNT选项启动实例并装载数据库以后,可以执行以下操作。

➢ 启用和禁用重做日志归档选项。

➢ 执行完整的数据库恢复。

SQL> STARTUP MOUNT
ORACLE 例程已经启动。
Total System Global Area    431038464 bytes 
Fixed Size                  1375088 bytes 
Variable Size             318768272 bytes 
Database Buffers          104857600 bytes 
Redo Buffers                6037504 bytes 
数据库装载完毕。

3. OPEN选项

使用OPEN选项可以启动一个实例,并且装载和打开数据库,此时将读取数据文件和联机重做日志文件。此时将允许任何有效用户连接到数据库,然后执行数据访问操作。

SQL> STARTUP OPEN
ORACLE 例程已经启动。
Total System Global Area    431038464 bytes 
Fixed Size                  1375088 bytes 
Variable Size             318768272 bytes 
Database Buffers          104857600 bytes 
Redo Buffers                6037504 bytes 
数据库装载完毕。
数据库已经打开。

4. FORCE选项

使用FORCE选项可以强制启动一个实例,并且装载和打开数据库。在正常启动数据库实例时遇到问题,可以尝试使用FORCE选项。如果一个实例正在运行,使用FORCE选项会在重新启动之前使用ABORT模式关闭它。在这种情况下,警告日志中显示消息“Shutting down instance (abort)”,其次是“Starting ORACLE instance (normal)。”

不应该强制数据库启动,除非出现以下情况。

➢ 不能使用SHUTDOWN NORMAL、SHUTDOWN IMMEDIATE或SHUTDOWN TRANSACTIONAL命令关闭当前实例。

➢ 启动实例时遇到问题。

SQL> STARTUP FORCE
ORACLE 例程已经启动。
Total System Global Area    431038464 bytes 
Fixed Size                  1375088 bytes 
Variable Size             318768272 bytes 
Database Buffers          104857600 bytes 
Redo Buffers                6037504 bytes 
数据库装载完毕。
数据库已经打开。

5. RESTRICT选项

使用RESTRICT选项可以在限制模式下启动一个实例,并选择性地装载并打开一个数据库,此时该实例只提供给管理人员(而不是一般数据库用户)使用。可以结合MOUNT、NOMOUNT和OPEN模式使用RESTRICT选项。

当实例处于限制模式下时,数据库管理员无法通过远程Oracle监听程序访问实例,但只能在本地系统上访问实例。

SQL> STARTUP RESTRICT
ORACLE 例程已经启动。
Total System Global Area    431038464 bytes 
Fixed Size                  1375088 bytes 
Variable Size             318768272 bytes 
Database Buffers          104857600 bytes 
Redo Buffers                6037504 bytes 
数据库装载完毕。
数据库已经打开。

6. PFILE选项

使用PFILE选项在启动数据库时将读取文本初始化参数文件。在不指定PFILE时,读取默认路径下的服务器参数文件。如果没有找到默认路径下的服务器参数文件,将读取默认路径下的文本初始化参数文件。如果还没有找到,数据库启动会失败。

SQL> STARTUP PFILE='c:\initorcl'
ORACLE 例程已经启动。
Total System Global Area    431038464 bytes 
Fixed Size                  1375088 bytes
Variable Size             318768272 bytes 
Database Buffers          104857600 bytes 
Redo Buffers                6037504 bytes 
数据库装载完毕。
数据库已经打开。

注意

需要预先存在文件初始化参数文件c:\initorcl。

3.2.3 转换数据库启动模式

在执行数据库管理和维护工作时,需要转换数据库启动模式。ALTER DATABASE语句用于转换数据库启动模式,在数据库的不同启动模式之间进行切换,如从NOMOUNT模式切换到MOUNT模式,从MOUNT模式切换到OPEN模式。要转换数据库启动模式,必须要拥有ALTER DATABASE系统权限。

以下情况必须指定RESETLOGS。

➢ 使用备份控制文件进行不完全介质恢复或介质恢复以后。

➢ 执行OPEN RESETLOGS操作之后没有完成。

➢ FLASHBACK DATABASE操作以后。

语法:

ALTER DATABASE
  { MOUNT | OPEN { [ READ WRITE ] [ RESETLOGS | NORESETLOGS ] | READ ONLY } };

表3-2列出了ALTER DATABASE语句各参数的描述信息。

表3-2 ALTER DATABASE语句参数

例3-4:转换Oracle启动模式。

SQL> STARTUP NOMOUNT
ORACLE 例程已经启动。
Total System Global Area    431038464 bytes 
Fixed Size                  1375088 bytes 
Variable Size             327156880 bytes 
Database Buffers           96468992 bytes 
Redo Buffers                6037504 bytes 
SQL> ALTER DATABASE MOUNT; 
 
数据库已更改。
//装载Oracle数据库 
SQL> ALTER DATABASE OPEN; 
 
数据库已更改。
//以默认方式打开数据库

例3-5:以只读模式打开数据库。

SQL> ALTER DATABASE OPEN READ ONLY;

例3-6:以读写模式打开数据库。

SQL> ALTER DATABASE OPEN READ WRITE;