一、11g读取参数文件的顺序
- 9i之前,只有静态参数文件pfile文件;
- 9i开始,引入了动态参数文件spfile文件。
- 默认的查找参数文件的路径:Windows下是%ORACLE_HOME%\database;
Linux下是$ORACLE_HOME\dbs。 - 11g中,启动数据库,Oracle按照spfileSID.ora、spfile.ora、initSID.ora、Init.ora的顺序查找,其中SID是服务名,也叫Oracle系统标识符。 如果这四个文件都找不到,数据库不能启动!!!
二、数据库的四种状态及打开数据库
a. SHUTDOWN 实例、数据库都关闭
可以执行 startup nomount;
b. NOMOUNT 实例启动(内存+后台进程),包括读初始参数文件(注意初始参数文件的读取顺序)、分配物理内存、启动后台进程。
可以执行:
show sga - -查看物理内存
select * from v$bgprocess; - -查看后台进程
select * from v$instance;
alter database mount;
c. MOUNT 数据库装载完成,打开控制文件(control file),也就是数据库的基本构造信息,结构信息。可以找到database结构信息,但是用户的表的内容不可读。
可以执行
select * from v$database;
select * from v$tablespace;
select * from v$datafile;
select * from v$controlfiles;
alter database open;
d. OPEN 数据库打开并成功加载,可以访问用户表。alter database open;
读写状态即就是open
① 数据库的启动命令:
数据库的启动命令的完整格式
startup [ nomount | mount | open | force ] [ restrict ] [ pfile=filename ];
pfile静态参数文件,可以指明oracle按照该参数文件的内容启动。参数文件内的信息:内存的分配状况,控制文件的位置等。
- 在shutdown状态下执行 startup 直接走完三个状态(nomount mount open) 到达open状态。
- startup nomount 对应到达nomount状态,仅实例启动
- startup mount 对应到达mount状态,实例启动 控制文件启动。
- startup open 对应到达open状态,数据库启动完毕。
- startup force:强制启动,可用于各种模式。不管数据库目前处于什么状态。
- startup restrict:restrict模式会将数据库置于open模式,此时只有 restricted session权限的用户才能访问数据库。用于维护动作。维护完成后,禁用restricted session权限,以便普通用户的连接。
- startup pfile=‘路径\名称’ 前提要有一个pfile文件例如:create pfile=‘路径\名称’ from spfile:
grant restricted session to username; (revoke……from)
② 数据库的关闭命令:
数据库的关闭的四种方式
SHUTDOWN NORMAL|TRANSACTIONAL|IMMEDIATE|ABORT
其中:
NORMAL 不允许新用户连接,等待已连接用户自己断开连接 disconnect / quit
TRANSACTIONAL 不允许新用户连接,等待已连接用户做完所有的事务,然后系统自动断开和他们的连接
IMMEDIATE 不允许新用户连接,不等待已连接用户做完所有的事务,回滚掉用户所做的事务,然后系统自动断开和他们的连接
ABORT 强制断开和所有用户的连接 (不安全,只是服务器端的内存收回,后台进程清除,不建议使用)