Oracle数据库服务包括数据库和实例,而实例又包括系统全局区SGA和相应的后台进程。
1、数据库nomount阶段:startup nomount
加载读取参数文件--->初始化内存空间--->SGA(各个内存区域的大小)+ PGA
参数文件分为两种:
(1)、pfile(可编辑的文本文件)
特点:必须通过文本编辑器修改参数,便于一次修改多个参数;
缺省的路径及命名方式:$ORACLE_HOME/dbs/initSID.ora
(2)、spfile(二进制参数文件)(优先级较高)
特点:二进制文件,不可以通过编辑器修改。通过Linux命令strings可以查看内容;
路径及命名方式:$ORACLE_HOME/dbs/spfileSID.ora;
修改spfile文件的方法:alter system set 参数=值 [scope=memory|spfile|both] scope;
注:scope=memory 参数修改立刻生效,但不修改spfile文件;
scope=spfile 修改了spfile文件,重启后生效;
scope=both 前两种都要满足。要求spfile参数文件存在;
如果不写scope限定词,缺省both,但不如both严格,即spfile如果不存在,仅仅修改内存中参数。
2、数据库mount 阶段:alter database mount; // startup mount
控制文件功能和特点:
(1)、记录数据库当前物理状态(物理文件路径,数据文件,重做日志文件)
(2)、维护数据库的一致性(一致性验证)
(3)、是一个二进制小文件
(4)、在mount 阶段被读取
(5)、记录RMAN备份的元数据
(6)、记录redo的当前日志序列和arch信息
默认情况下:数据库dbca建库创建两个控制文件
1.$ORACLE_BASE/oradata/$ORACLE_SID/control01.ctl
2.快速恢复区内 $ORACLE_BASE/fast_recovery_area/$ORACLE_SID/control02.ctl
查看控制文件路径:select name from v$controlfile;
control01.ctl和control02.ctl的内容一模一样,多一个作为冗余备份,同时写入两个ctl
3、数据库open 阶段:alter database open; // startup
open 阶段会读取3大类数据文件(数据文件+控制文件+redo日志文件)
(1)、检查所有的datafile、redo log、 group 、password file正常
(2)、检查数据库的一致性(controlfile、datafile、redo file的检查点是否一致)
redo日志文件的作用:主要用于数据recovery(恢复);记录DML,DDL操作生成日志
redo日志文件的特征:二进制,每组大小相同,至少要保持两组redo,每组可以有多个member成员,但数据内容都是相同的