oracle学习篇:一、数据库的启动和关闭

谁说我不能喝 提交于 2019-12-02 14:46:52

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文件也不会看,看了也不懂,更不知道怎么操作。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!