/* 实例的概念 */
实例是ORACLE用来管理数据库的一个实体,它由位于服务器中的内存结构和一系列服务进程组成.
一个实例只能访问一个数据库,而一个数据库可以由多个实例同时访问.
实例在用户和数据库之间充当一个中间件的角色.
数据库跟实例是两回事情,数据库主要是指ORACLE保存数据的一系列物理存储结构.
/* 数据库启动 */
ORACLE数据库的完整启动过程分为如下3步:
1.SQL>STARTUP NOMOUNT
创建并启动与数据库对应的实例,
在实例启动时,将为实例创建一系列后台进程和服务进程,并且在内存中创建SGA区等内存结构。在实例启动的过程中只会使用到初始化参数文件.如初始化参数文件有错误,实例将无法启动.
(一般只有在创建数据库,重建控制文件等操作时采用该模式)
指定初始化参数文件:
如果在执行STARTUP语句时没有指定PFILE参数,ORACLE首先读取默认位置的服务器端初始化参数(SPFILE<SID>.ora),
如果没有找到默认的服务器端初始化参数,ORACLE将继续读取默认位置的文本初始化参数文件(init<SID>.ora).
默认的初始化参数文件位于<ORACLE_HOME>/DATABASE/目录中
使用非默认的文本初始化参数文件启动实例
SQL>STARTUP PFILE=I:/ORACLE/ORA91/DATABASE/TEMP/init01.ora
2.SQL>STARTUP MOUNT
为实例加载数据库.
加载数据库时实例将打开数据库的控制文件,从控制文件中获取数据库名称,数据文件的位置和名称等物理结构信息.
如控制文件损坏,实例将无法加载数据库.在加载阶段,实例并步会打开数据文件和重做日志文件
(可以进行以下维护操作:
* 重命名数据文件
* 添加,删除或重命名重做日志文件
* 执行数据库完全恢复操作
* 改变数据库的归档模式)
3.SQL>STARTUP
打开数据库
数据库将打开所有的数据文件和重做日志文件,如果有任何一个数据文件或重做日志文件无法正常打开,数据库将返回错误
信息.正常启动分为受限状态(只有DBA才能访问数据库)和非受限状态两种.
/* 切换启动模式 */
SQL>Alter database mount;
SQL>Alter database open;
进入受限状态
SQL>startup restrict;
进行如下数据库维护操作时,必须将数据库置于受限状态:
* 执行数据导入和导出操作
* 使用SQL*LOADER提取外部数据
* 暂时拒绝普通用户访问数据库
* 进行数据库移植和升级操作
在受限状态和非受限状态切换
SQL>alter system disable restricted session;
SQL>alter system enable restricted session;
在只读和读写状态切换
SQL>alter database open read only;
SQL>alter database open read write;
强行启动数据库
SQL>STARTUP FORCE;
/* 数据库关闭 */
1.关闭数据库
关闭数据库时,ORACLE将重做日志高速缓存中的内容写入重做日志文件,将数据库高速缓存中的数据写入数据文件,然后
关闭所有的数据文件和重做日志文件.
2.卸载数据库
关闭数据库的控制文件
3.中止实例
实例所拥有的后台进程和服务进程被中止,内存中的SGA区被回收.
正常关闭方式,下次启动数据库时不需要进行任何恢复操作
SQL>SHUTDOWN NORMAL;
立即关闭方式,下次启动数据库时不需要进行任何恢复操作
SQL>SHUTDOWN IMMEDIATE;
事务关闭方式,下次启动数据库时不需要进行任何恢复操作
SQL>SHUTDOWN TRANSACTONAL;
终止关闭方式,下次启动数据库时需要进行数据库恢复
SQL>SHUTDOWN ABORT;