Which three of these must be accessible to keep a database open?

A)Control file.

B)All members of a redo log group.

C)SYSTEM tablespace.

D)SYSAUX tablespace.

E)spfile

Answer: ABC

赵:

1 nomount:实例已经启动,进程和内存已经分配。即 SGA 和后台进程已经启动。

创建数据库实例,首先从 spfile 或者 pfile 中读取数据库参数文件,然后分配 SGA 和创建后台进程。

相当于生产线和工人都到位了,但是没有开始生产,生产线上没有产品。

read the spfileSID.ora initSID.ora

Allocating the SGA

Starting the background processes

Opening the alertSID.log file and the trace files

2 mount:已经开启控制文件,但是还没有开启数据文件。即通过参数读取了控制文件 ,拥有 sysdba权限的可以进行一些数据的备份和恢复操作,其他用户还不能访问。

建立数据库和实例的关系,首先根据初始化参数文件中的 CONTROL_FILE 参数找到相应的控制文件然后打开它们,在控制文件中包含了数据库的数据文件和 redo log 文件信息。

这个时候数据库还没有打开,仍然处于关闭状态,这个时候普通的用户还不能连接到数据库,只有数据库管理员可以进行一些备份恢复等工作。

Associating a database with a previously started instance

Locating and opening the control files specified in the parameter file

Reading the control files to obtain the names and status of the data files and online redo log files.However,no checks are performed to verify the existence of the data files and online redo log files at this time.

3 open:数据库已经打开,加载数据文件和重做日志文件。其他用户正常访问。

打开数据库,通过控制文件信息找到联机数据文件和 redo log 文件,如果没有以上两个文件,数据库就会报错。如果这两个文件坏了,数据库无法打开,这个时候可以通过 sysdba 权限进入 mount 挂载状态后,对这两个数据文件进行恢复操作后再打开数据库。

opening the online datafiles

opening the online redologs