- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 Oracle数据库的体系结构 本章要点: 了解Oracle的物理存储结构。 了解Oracle的逻辑存储结构。 了解Oracle进程结构。 了解Oracle内存结构。 熟悉Oracle中的数据字典。 理解数据字典的作用。 2.1 物理存储结构 Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。 一般Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。 2.1.1 数据文件 2.1.1 数据文件 数据文件(Data File)是指存储数据库数据的文件。 数据文件一般有以下几个特点。 (1)一个表空间由一个或多个数据文件组成。 (2) 一个数据文件只对应一个数据库。而一个数据库通常包含多个数据文件。 (3)数据文件可以通过设置其自动扩展参数,实现其自动扩展的功能。 如果想要了解数据文件的信息,可以查询数据字典dba_data_files和v$datafile。其中,dba_data_files主要有如下字段。 file_name:数据文件的名称以及存放路径。 file_id:数据文件在数据库中的ID号。 tablespace_name:数据文件对应的表空间名。 bytes:数据文件的大小。 blocks:数据文件所占用的数据块数。 status:数据文件的状态。 autoextensible:数据文件是否可扩展。 2.1.1 数据文件 另一个数据字典v$datafile则记录了数据文件的动态信息,它主要有如下字段。 file#:存放数据文件的编号。 status:数据文件的状态。 checkpoint_change#:数据文件的同步号,随着系统的运行自动修改,以维持所有数据文件的同步。 bytes:数据文件的大小。 blocks:数据文件所占用的数据块数。 name:数据文件的名称以及存放路径。 2.1.2 控制文件 控制文件(Control File)是一个很小的二进制文件,用于描述和维护数据库的物理结构。在Oracle数据库中,控制文件相当重要,它存放有数据库中数据文件和日志文件的信息。 【例2.3】使用数据字典v$controlfile,查看当前数据库的控制文件的名称与路径,具体如下: SQL COLUMN name FORMAT A50; SQL SELECT name FROM v$controlfile; NAME ------------------------------------------------- E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL 2.1.3 重做日志文件 2.1.3 重做日志文件 重做日志文件(Redo Log File)是记录数据库中所有修改信息的文件,简称日志文件。 日志文件是数据库系统的最重要的文件之一,它可以保证数据库安全,是进行数据库备份与恢复的重要手段。如果日志文件受损,数据库同样可能会无法正常运行。 Oracle中的日志文件组是循环使用的,当所有日志文件组的空间都被填满后,系统将重新切换到第一个日志文件组。发生日志切换时,日志文件组中已有的日志信息是否被覆盖,取决于数据库的运行模式。 在Oracle数据库中,日志文件是成组使用的。日志文件的组织单位叫做日志文件组,日志文件组中的日志文件叫做日志成员。 Oracle数据库要求每个数据库实例都至少有两个重做日志文件组,每一个重做日志文件组中有一个或多个日志成员(即多个日志文件组成)。 在日志工作工程中,多个日志文件组之间是循环使用的。当一个日志文件组被填满后,将会发生日志切换,系统自动转换到另一个日志文件组。 查看日志文件的信息可以使用数据字典V$log 或V$logfile 如:select group#,status from v$log; CURRENT表示当前使用的 ACTIVE的表示非当前但是还是处于活动状态,日志中指向的缓存中的脏数据块还没有完全被刷到磁盘上 INACTIVE表示不活动的,相应数据块都写入磁盘 UNUSED 表示还没使用过 强制切换日志的命令 alter system switch logfile; 根据在事务信息将被覆盖时,是否应该将文
文档评论(0)