oracle数据库由instance和database组成,instance是指一组后台进程/线程和一块共享内存区域,而database是指存储在磁盘上的一组物理文件。
1.1 数据库的启动
数据库的启动分为三个步骤:nomount,mount,open;启动过程均记录在警报日志文件中。
1.1.1 启动到nomount状态
SQL>startup nomount
需要用到参数文件pfile/spfile,根据参数文件创建实例,分配内存,启动后台进程。
参数文件路径:$ORACLE_HOME/dbs
oracle自动备份参数文件路径:$ORACLE_BASE/admin/orcl/pfile
参数文件优先级:spfileorcl.ora>spfile.ora>initorcl.ora>init.ora
pfile和spfile的区别:
pfile:文本文件,可编辑修改,重启数据库生效;
spfile:二进制文件,只支持在线修改。
pfile和spfile的相互创建:
create pfile='/directory/init.ora' from spfile='/directory/spfile.ora';
create spfile='/directory/spfile.ora' from pfile='/directory/init.ora';
1.1.2 启动到mount状态
SQL>alter database mount;
oracle加在控制文件,在nomount状态,通过查询v$parameter视图获取控制文件信息;在mount状态,通过查询v$controlfile视图获取控制文件信息。
控制文件的转储:
alter session set event 'immediate trace name CONTROLF level 10';
启动到mount状态,数据库必须具备口令文件,位于$ORACLE_HOME/dbs目录下,缺省名orapworcl。在该目录下,通常还存在lkorcl文件,lk指lock,该文件在数据库启动时创建,用于对数据库的锁定。当数据库启动时获得锁定,数据库关闭时释放。
1.1.3 启动到open状态
SQL>alter database open;
控制文件中记录着数据库中数据文件、日志文件的位置信息、检查点信息等重要信息,oracle根据这些信息找到这些文件,然后进行检查点及完整性检查。
oracle进行的检查包括两项:
第一次检查数据文件头中的检查点计数checkpoint cnt是否和控制文件中的检查点计数一致。此步骤确认数据文件是来自同一版本,而不是从备份中恢复而来(checkpoint cnt不会被冻结,会一直被修改,如热备时scn不再变化,而checkpoint cnt仍会增大)。
如果检查点计数检查通过,则数据库进行第二次检查。第二次检查数据文件头的开始scn和控制文件中记录的该文件的结束scn是否一致,如果控制文件中记录的结束scn等于数据文件头的开始scn则不需要对那个文件进行恢复。
补充:
scn:系统改变号system change number,用以标识数据库在某个确切时刻提交的版本,可被看作逻辑时间。
scn的获取方式:select dbms_flashback.get_system_change_number from dual;
检查点:checkpoint,减少崩溃恢复时间。
第一章完
有点被打击了,别人06年写的东西我到现在都看不懂,每次看到灾难恢复时都是一脸懵逼,alert文件、trace文件也不会看,看了也不懂,更不知道怎么操作。