《第5章--Oracle-数据库体系结构-大型数据库技术-oracle-10g教学课件.ppt》由会员分享,可在线阅读,更多相关《第5章--Oracle-数据库体系结构-大型数据库技术-oracle-10g教学课件.ppt(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章章 Oracle 数据库体系结构数据库体系结构 vOracle数据库的物理存储结构数据库的物理存储结构vOracle数据库的逻辑存储结构数据库的逻辑存储结构本章参考文献本章参考文献 实验实验 作业作业Oracle体系结构图体系结构图5.1 物理存储结构物理存储结构vOracle 数据库的物理存储结构指与数据库的物理存储结构指与Oracle数据库相数据库相关的各个物理文件。其中包括:关的各个物理文件。其中包括:l数据文件数据文件l控制文件控制文件l联机重做日志文件联机重做日志文件(前三个被称作数据库文件)(前三个被称作数据库文件)l归档日志文件归档日志文件l参数文件参数文件l警告文件警告
2、文件l跟踪文件跟踪文件l备份文件等备份文件等5.1.1 数据文件数据文件v数据文件是存储数据库内所有逻辑结构数据数据文件是存储数据库内所有逻辑结构数据的操作系统文件。数据文件所存储的信息包的操作系统文件。数据文件所存储的信息包括:括:l表数据表数据l索引数据索引数据l数据字典定义数据字典定义l存储过程、函数、包代码存储过程、函数、包代码l回滚事务所需的信息回滚事务所需的信息l用于排序的临时数据等用于排序的临时数据等2.数据文件号数据文件号vOracle为每个数据文件指定下面两个文件号,为每个数据文件指定下面两个文件号,用于惟一地标识该文件:用于惟一地标识该文件:l绝对文件号;在数据库内惟一地标
3、识数据文件;绝对文件号;在数据库内惟一地标识数据文件;l相对文件号:在表空间内惟一地标识数据文件。相对文件号:在表空间内惟一地标识数据文件。3.检索数据文件信息检索数据文件信息vOracle数据库的数据文件信息存储在数据库的数据文件信息存储在V$DATAFILE视图内,视图内,临时文件信息则存储在临时文件信息则存储在v$TEMPFILE视图内。这两个文件的视图内。这两个文件的主要列包括:主要列包括:lName:文件名称;:文件名称;lFile#:绝对文件号;:绝对文件号;lRFile#:相对文件号:相对文件号:lBytes:文件当前大小;:文件当前大小;lStatus:文件类型及状态;:文件类
4、型及状态;lTS#:所属表空间号;:所属表空间号;l 信息内容请查阅参考文献信息内容请查阅参考文献4。4.创建和添加数据文件创建和添加数据文件v用以下语句创建数据文件,并把它们添加到表空间。用以下语句创建数据文件,并把它们添加到表空间。CREATE TABLESPACE创建表空间时,自动创建创建表空间时,自动创建构成它的数据文件构成它的数据文件CREATE TEMPORARY TABLESPACE创建本地管理的临时表空创建本地管理的临时表空间以及构成它的数据文件间以及构成它的数据文件ALTER TABLESPACE.ADD DATAFILE创建数据文件,并把它们创建数据文件,并把它们添加到表空
5、间添加到表空间ALTER TABLESPACE.ADD TEMPFILE创建临时文件,并把它们创建临时文件,并把它们添加到表空间添加到表空间CREATE DATABASE创建数据库时自动创建相创建数据库时自动创建相关的数据文件关的数据文件ALTER DATABASE.CREATE DATAFILE在丢失的旧数据文件处重在丢失的旧数据文件处重新创建新的空数据文件新创建新的空数据文件6.改变数据文件的使用状态改变数据文件的使用状态v数据文件有数据文件有ONLINE和和OFFLINE两种状态,通常数据文件处两种状态,通常数据文件处于于ONLINE状态,但当需要进行脱机备份、重命名或移动数状态,但当需
6、要进行脱机备份、重命名或移动数据文件时则需要把它们处于据文件时则需要把它们处于OFFLINE状态。此外,当数据文状态。此外,当数据文件无法写入时,件无法写入时,Oracle也会自动将数据文件处于脱机状态。也会自动将数据文件处于脱机状态。下面语句改变数据文件的使用状态:下面语句改变数据文件的使用状态:ALTER DATABASE DATAFILE c:oracleorcluser01.dbf OFFLINE;ALTER DATABASE DATAFILE c:oracleorcluser01.dbf ONLINE;7.重命名和移动数据文件重命名和移动数据文件v当需要重命名或移动某个数据文件时,其
7、执行步骤是:当需要重命名或移动某个数据文件时,其执行步骤是:1.使包含该数据文件的表空间脱机:使包含该数据文件的表空间脱机:ALTER TABLESPACE users OFFLINE NORMAL;2.用用操作系统命令重命名或移动数据文件;操作系统命令重命名或移动数据文件;3.调用调用ALTER TABLESPACE语句,用语句,用RENAME DATAFILE子句改变数据子句改变数据库内的数据文件。如:库内的数据文件。如:ALTER TABLESPACE users RENAME DATAFILE/u02/oracle/rbdb1/user1.dbf,/u02/oracle/rbdb1/u
8、ser2.dbf TO /u02/oracle/rbdb1/users01.dbf,/u02/oracle/rbdb1/users02.dbf;4.备份数据库后,使脱机的表空间联机备份数据库后,使脱机的表空间联机:ALTER TABLESPACE users online;1.重做日志文件的状态重做日志文件的状态v联机重做日志文件有以下四种使用状态:联机重做日志文件有以下四种使用状态:lcurrent:LGWR当前写入的日志文件;当前写入的日志文件;lactive:数据库实例恢复时仍需要的重做日志文件。在归档:数据库实例恢复时仍需要的重做日志文件。在归档模式下,联机重做日志文件在归档期间的状态
9、也是活动的;模式下,联机重做日志文件在归档期间的状态也是活动的;linactive:数据库实例恢复不再需要的重做日志文件。不活:数据库实例恢复不再需要的重做日志文件。不活动的重做日志可再次被动的重做日志可再次被LGWR循环使用,写入重做项;循环使用,写入重做项;lInvalid、unused:当重做日志文件组中的所有成员或任一:当重做日志文件组中的所有成员或任一个成员还没有被写入过时,它们的状态处于无效状态。例如,个成员还没有被写入过时,它们的状态处于无效状态。例如,当向日志组内添加新的重做日志文件后,新添加的文件还没当向日志组内添加新的重做日志文件后,新添加的文件还没有被写入过,该组的状态就
10、变为无效的。在日志文件切换时,有被写入过,该组的状态就变为无效的。在日志文件切换时,无效组可变为当前组,供无效组可变为当前组,供LGWR写入。写入。3.日志序列号日志序列号v每当日志切换发生时,每当日志切换发生时,Oracle数据库为重做日志文数据库为重做日志文件分配一个日志序列号,然后件分配一个日志序列号,然后LGWR开始写入它。开始写入它。当再次使用到这个重做日志文件时,又为它重新分当再次使用到这个重做日志文件时,又为它重新分配一个日志序列号;配一个日志序列号;v归档重做日志文件时,归档日志保留其日志序列号归档重做日志文件时,归档日志保留其日志序列号.所以,每个联机重做日志文件和归档重做日
11、志文件都所以,每个联机重做日志文件和归档重做日志文件都由其日志序列号惟一地标识。由其日志序列号惟一地标识。4.重做日志文件多路操作重做日志文件多路操作v鉴于重做日志文件的重要性,鉴于重做日志文件的重要性,Oracle对重做日志文对重做日志文件支持多路存储。对于多路重做日志文件,在写入件支持多路存储。对于多路重做日志文件,在写入时,时,LGWR把相同的重做日志信息写入到多个完全把相同的重做日志信息写入到多个完全相同的重做日志文件中,这些重做日志文件组成一相同的重做日志文件中,这些重做日志文件组成一组,其中的各个文件称作成员。例如:组,其中的各个文件称作成员。例如:ALTER DATABASE A
12、DD LOGFILE MEMBER D:ORACLEPRODUCT10.2.0ORADATAORCLredo32.log TO GROUP 36.检索日志相关信息检索日志相关信息vv$logfile:从中可以检索数据库的重做日志文件组:从中可以检索数据库的重做日志文件组和成员信息;和成员信息;vV$LOG:从中可以检索重做日志文件信息;:从中可以检索重做日志文件信息;vV$LOG_HISTORY:可以检索日志历史信息。:可以检索日志历史信息。5.1.3 归档日志文件归档日志文件v归档日志文件是联机重做日志文件的拷贝。如果数归档日志文件是联机重做日志文件的拷贝。如果数据库运行在归档(据库运行在归
13、档(ARCHIVELOG)模式,当发生)模式,当发生日志切换后,如果联机重做日志文件没有归档,日志切换后,如果联机重做日志文件没有归档,LGWR就不能再重新使用该文件。就不能再重新使用该文件。v在在ARCHIVELOG模式下,日志文件归档有自动和模式下,日志文件归档有自动和手动两种方式,这由手动两种方式,这由log_archive_start参数值决定参数值决定(TRUE:自动;:自动;FALSE:手工)。:手工)。v手工归档下,要运行以下命令及时归档已经填满的手工归档下,要运行以下命令及时归档已经填满的重做日志文件,否则可能导致重做日志文件,否则可能导致LGWR没有文件可写,没有文件可写,从
14、而使数据库挂起:从而使数据库挂起:ALTER SYSTEM ARCHIVE LOG ALL;1.改变数据库的归档模式改变数据库的归档模式v用用archive log list命令可查看数据库的归档模式。下面操作将数据库修命令可查看数据库的归档模式。下面操作将数据库修改为归档模式:改为归档模式:1.设置自动归档参数:设置自动归档参数:ALTER SYSTEM SET log_archive_start=TRUE scope=spfile;2.指出归档日志文件的存储路径和命名方式:指出归档日志文件的存储路径和命名方式:ALTER SYSTEM SET log_archive_dest=C:orac
15、learchive scope=spfile;ALTER SYSTEM SET log_archive_format=ARC%S_%R.%T scope=spfile;3.关闭数据库关闭数据库Shutdown immediate4.数据库启动到数据库启动到mount状态:状态:Startup mount5.修改为归档模式:修改为归档模式:ALTER DATABASE ARCHIVELOG;6.打开数据库打开数据库ALTER DATABASE OPEN;5.1.4 控制文件控制文件v控制文件是一个二进制文件,它记录数据库的物理控制文件是一个二进制文件,它记录数据库的物理结构信息。创建数据库时,由
16、初始化参数结构信息。创建数据库时,由初始化参数CONTROL_FILES指出创建的控制文件数量,及其指出创建的控制文件数量,及其存放路径和名称。控制文件是存放路径和名称。控制文件是Oracle启动和运行所启动和运行所必需的文件。必需的文件。控制文件所记录的信息包括:控制文件所记录的信息包括:l数据库名称;数据库名称;l相关的数据文件和重做日志文件的名称和位置;相关的数据文件和重做日志文件的名称和位置;l数据库创建时间;数据库创建时间;l当前日志序列号;当前日志序列号;l检查点信息等。检查点信息等。1.多路保存控制文件多路保存控制文件v鉴于控制文件的重要性,鉴于控制文件的重要性,Oracle对控
17、制文件支持多路存储。对控制文件支持多路存储。对于多路控制文件:对于多路控制文件:l在写入控制文件时,在写入控制文件时,Oracle把内容写入数据库初始化参把内容写入数据库初始化参数文件内数文件内CONTROL_FILES参数所列出的所有控制文件参数所列出的所有控制文件中;中;l在读取控制文件信息时,数据库只读取在读取控制文件信息时,数据库只读取CONTROL_FILES参数列出的第一个控制文件;参数列出的第一个控制文件;l在打开数据库过程中,如果数据库的任一个控制文件损坏,在打开数据库过程中,如果数据库的任一个控制文件损坏,Oracle就无法装载(就无法装载(mount)数据库,导致数据库无法
18、)数据库,导致数据库无法打开,用户无法访问;打开,用户无法访问;l如果在运行期间任一个控制文件变为不可用,实例就异常如果在运行期间任一个控制文件变为不可用,实例就异常终止,不可再用。终止,不可再用。2.创建控制文件创建控制文件v当控制文件全部损坏,或者需要修改数据库名称时,当控制文件全部损坏,或者需要修改数据库名称时,用用CREATE CONTROLFILE语句创建新的控制文件:语句创建新的控制文件:CREATE CONTROLFILE SET DATABASE orcl LOG 1(c:redo01_01.log,c:redo01_02.log),RESETLOGS DATAFILE c:.
19、system01.dbf,MAXLOGFILES 50 MAXLOGMEMBERS 3 MAXDATAFILES 200 MAXINSTANCES 6 ARCHIVELOG;3.备份控制文件备份控制文件何时需要备份控制文件:何时需要备份控制文件:v添加、删除或重命名数据文件后;添加、删除或重命名数据文件后;v添加或删除表空间,或者修改表空间的读添加或删除表空间,或者修改表空间的读/写写之后;之后;v添加或删除重做日志文件或组之后。添加或删除重做日志文件或组之后。3.备份控制文件备份控制文件备份方法:备份方法:v将现有控制文件备份到一个二进制文件:将现有控制文件备份到一个二进制文件:ALTER
20、DATABASE BACKUP CONTROL c:oraclebackupcontrol.bkp;v将现有控制文件备份为将现有控制文件备份为SQL脚本文件:脚本文件:ALTER DATABASE BACKUP CONTROL TRACE;所产生的所产生的SQL脚本文件位于数据库的用户跟踪文件目脚本文件位于数据库的用户跟踪文件目录内。录内。5.1.5 其他文件其他文件v参数文件:保存数据库和实例的配置信息。参数文件可以为二进制的服务器参数文件,也可以是文本格式的初始化参数文件。v警告和跟踪文件:用于存储数据库实例遇到的错误信息,和用户执行的重要操作。5.2 逻辑存储结构逻辑存储结构vOracl
21、e 数据库的逻辑存储结构控制数据库存储空间数据库的逻辑存储结构控制数据库存储空间的分配和使用,它包括:的分配和使用,它包括:l表空间(表空间(Tablespace)l段(段(Segment)l区(区(Extent)l数据块(数据块(Data block)1.安装程序默认创建的表空间安装程序默认创建的表空间vSYSTEM:每个数据库都有一个系统表空间,用于存储整个数据库的数据字典以及PL/SQL程序单元。vSYSAUX:SYSTEM的辅助表空间,也是每个Oracle 10g数据库必须建立的一个表空间。很多数据库组件(如Oracle Text等)用它存储数据。在正常数据库操作期间,不允许删除和重命
22、名SYSAUX 表空间。vUNDOTBS1:撤销表空间,用于存储数据库的还原信息。每个数据库包含零个或多个撤销表空间。vTEMP:存储SQL处理过程中所产生的临时数据。每个数据库至少应该创建一个临时表空间,并把它分配给用户,作为他们的临时表空间,以免Oracle把用户的一些临时数据存储到其他表空间内。vUSERS:用户表空间,用于存储用户的永久对象和数据。如SCOTT用户的数据库对象就存储在这个表空间内。vEXAMPLE:这个表空间用于存储Oracle提供的例子,如HR用户下的数据库对象就存储在这个表空间内。2.表空间的分类v永久表空间:存储永久表空间:存储SQL语句所产生的需要保语句所产生的
23、需要保存的最终结果;存的最终结果;v临时表空间:存储临时表空间:存储SQL操作过程中所产生的操作过程中所产生的临时数据;临时数据;v撤销表空间:存储还原信息。撤销表空间:存储还原信息。创建表空间的创建表空间的CREATE TABLESPACE 命令语法如下:命令语法如下:CREATE UNDO|TEMPORARY TABLESPACE 表空间名表空间名 DATAFILE 数据文件定义数据文件定义,数据文件定义数据文件定义.BLOCKSIZE 整数整数 K|LOGGING|NOLOGGING|FORCE LOGGING|ONLINE|OFFLINE|区存储管理子句区存储管理子句|段存储管理子句段
24、存储管理子句 ;3.创建表空间3.创建表空间例如:CREATE TABLESPACE user02 DATAFILE C:ORACLEUSERDATA02.DBF SIZE 5M;CREATE TABLESPACE USER03 DATAFILE C:ORACLEUSERDATA03.DBF SIZE 5M REUSE;4.创建临时表空间CREATE TEMPORARY TABLESPACE USERTEMP TEMPFILE C:ORACLEUSERTEMP01.DBF SIZE 50M REUSE;v在一个数据库实例中,只能有一个默认临时在一个数据库实例中,只能有一个默认临时表空间。如果需
25、要将新建的临时表空间设置表空间。如果需要将新建的临时表空间设置为默认临时表空间,还必须执行下列语句:为默认临时表空间,还必须执行下列语句:ALTER DATABASE DEFAULT TEMPORARY TABLESPACE USERTEMP;5.创建还原表空间CREATE UNDO TABLESPACE UNDOTBS02 DATAFILE C:ORACLEUNDO02.DBF SIZE 2M REUSE AUTOEXTEND ON;v一个数据库可以创建多个还原表空间,一个数据库可以创建多个还原表空间,DBA可以用初始化参数可以用初始化参数UNDO_TABLESPACE指出实例使用哪个还原表
26、空间:实例使用哪个还原表空间:ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS02 SCOPE=MEMORY;6.表空间的可用性可用性 Oracle允许以表空间为单位控制数据库的可允许以表空间为单位控制数据库的可用性。表空间可以处于以下两种状态:用性。表空间可以处于以下两种状态:v 联机(可处于只读和读写两种状态);联机(可处于只读和读写两种状态);v 脱机。脱机。数据库打开时,数据库打开时,SYSTEM表空间必需总是处表空间必需总是处于联机状态。于联机状态。v基于下列原因,有可能要将一个表空间设为基于下列原因,有可能要将一个表空间设为脱机状态:脱机状态:l禁用
27、数据库的某一部分数据,但允许访问数禁用数据库的某一部分数据,但允许访问数据库中的其他部分;据库中的其他部分;l执行脱机表空间的备份;执行脱机表空间的备份;l在数据库打开状态下恢复表空间或数据文件。在数据库打开状态下恢复表空间或数据文件。6.表空间的可用性可用性7.改变表空间的可用性改变表空间的可用性v改变表空间可用性命令为:改变表空间可用性命令为:ALTER TABLESPACE 表空间名表空间名 ONLINE|OFFLINE NORMAL|TEMPORARY|IMMEDIATE;8.设置表空间的读写模式设置表空间的读写模式v 任何表空间在初始创建时都是可读写的,但任何表空间在初始创建时都是可
28、读写的,但是可以根据需要改变表空间的读写属性。只是可以根据需要改变表空间的读写属性。只读状态下的表空间,用户不能对表空间的数读状态下的表空间,用户不能对表空间的数据文件进行写操作。设置只读表空间可以消据文件进行写操作。设置只读表空间可以消除数据库操作过程中对大量静态数据的备份除数据库操作过程中对大量静态数据的备份操作,提高数据库的执行速度,同时这也是操作,提高数据库的执行速度,同时这也是一种很好的保护数据的方法,可以防止对不一种很好的保护数据的方法,可以防止对不能修改的表空间中的数据进行写操作。能修改的表空间中的数据进行写操作。9.设置表空间的读写模式设置表空间的读写模式v修改表空间读写属性的
29、语句仍是修改表空间读写属性的语句仍是ALTER TABLESPACE,其语法格式为:,其语法格式为:ALTER TABLESPACE 表空间名表空间名 READ ONLY|READ WRITE;v只读状态的表空间不能创建和修改对象,但只读状态的表空间不能创建和修改对象,但能够从其中删除对象,比如表或索引等,因能够从其中删除对象,比如表或索引等,因为这些删除操作只影响数据字典,而不会更为这些删除操作只影响数据字典,而不会更改表空间中的数据文件。改表空间中的数据文件。9.设置表空间的读写模式设置表空间的读写模式要将表空间设置为只读,需要满足下列条件:要将表空间设置为只读,需要满足下列条件:l表空间
30、的所有数据文件必须处于联机状态;表空间的所有数据文件必须处于联机状态;l系统表空间和还原表空间不能设置为只读状态;系统表空间和还原表空间不能设置为只读状态;l表空间不能正在进行联机备份操作。因为联机表空间不能正在进行联机备份操作。因为联机备份结束后,备份结束后,Oracle将对数据文件的头信息将对数据文件的头信息进行更新。进行更新。例如,下面语句将例如,下面语句将ts1设置为只读表空间:设置为只读表空间:ALTER TABLESPACE ts1 READ ONLY;9.设置表空间的读写模式设置表空间的读写模式v 要将表空间恢复成读写状态,必须保证表空间的要将表空间恢复成读写状态,必须保证表空间
31、的所有数据文件都处于联机状态,同时表空间本身所有数据文件都处于联机状态,同时表空间本身也处于联机状态。也处于联机状态。v下面语句将表空间恢复成读写状态:下面语句将表空间恢复成读写状态:ALTER TABLESPACE ts1 READ WRITE;10.删除表空间删除表空间删除表空间命令的语法如下:删除表空间命令的语法如下:DROP TABLESPACE 表空间名表空间名 INCLUDING CONTENTS AND|KEEP DATAFILES CASCADE CONSTRAINTS ;10.删除表空间删除表空间各参数的含义如下:各参数的含义如下:lINCLUDING CONTENTS:删除
32、表空间中的所有的:删除表空间中的所有的数据库对象。如果表空间中没有任何对象,则可以数据库对象。如果表空间中没有任何对象,则可以不选此项。如果表空间中有对象,而不使用此选项,不选此项。如果表空间中有对象,而不使用此选项,则会导致删除失败;则会导致删除失败;lAND|KEEP DATAFILES:删除表空间时,删除或:删除表空间时,删除或保留与表空间相关的数据文件;保留与表空间相关的数据文件;lCASCADE CONSTRAINTS:如果其它表空间引用:如果其它表空间引用了该表空间中表的主键或者唯一键,选择此项可以了该表空间中表的主键或者唯一键,选择此项可以删除其他表空间的所有参照完整性约束。删除
33、其他表空间的所有参照完整性约束。10.删除表空间删除表空间删除表空间需要注意以下几点:删除表空间需要注意以下几点:l在表空间删除之前,必须确认其中的数据不再需要使用。在表空间删除之前,必须确认其中的数据不再需要使用。l不选用不选用INCLUDING CONTENTS参数,则无法删除包含有数参数,则无法删除包含有数据的表空间。据的表空间。l不能删除不能删除SYSTEM表空间。表空间。l不选择不选择AND DATAFILES参数,只能删除控制文件和数据字参数,只能删除控制文件和数据字典中的数据文件信息,操作系统的数据文件仍然存在,需要典中的数据文件信息,操作系统的数据文件仍然存在,需要手工删除。手
34、工删除。l可以删除只读状态的表空间。可以删除只读状态的表空间。l删除表空间之前,最好将表空间设置为脱机状态,这样可以删除表空间之前,最好将表空间设置为脱机状态,这样可以确保该表空间中没有活动的事务。确保该表空间中没有活动的事务。11.查询表空间信息查询表空间信息视视 图图 名名 称称说说 明明V$TABLESPACE从控制文件中获得所有表空间的名称和数量。DBA_TABLESPACESUSER_TABLESPACES描述所有(当前用户)表空间信息。DBA_SEGMENTSUSER_SEGMENTS描述所有(当前用户)表空间中各个段的信息。DBA_EXTENTSUSER_EXTENTS描述所有(
35、当前用户)表空间中各个区的信息。DBA_FREE_SPACEUSER_FREE_SPACE描述所有(当前用户)表空间中可用区的信息。V$DATAFILE描述表空间中所有数据文件的信息。V$TEMPFILE描述临时表空间中数据文件的信息。与表空间有关的数据字典视图和动态性能视图与表空间有关的数据字典视图和动态性能视图 5.2.2 段段 段是区的集合,它用于存储指定的数据库对象,段是区的集合,它用于存储指定的数据库对象,一一个段只能存储一种对象,个段只能存储一种对象,Oracle为不同类型为不同类型的对象分配不同的段的对象分配不同的段。段分为以下几种:。段分为以下几种:v数据段:存储表或簇数据数据
36、段:存储表或簇数据。Oracle为每个表、表的分区或为每个表、表的分区或簇分配单个段;簇分配单个段;v索引段:存储索引数据。索引段:存储索引数据。Oracle为每个非分区索引或分区索为每个非分区索引或分区索引的每个分区分配一个段;引的每个分区分配一个段;v回滚段:用于存储数据库的还原信息,这些信息用于支持读回滚段:用于存储数据库的还原信息,这些信息用于支持读一致性、回滚事务等操作一致性、回滚事务等操作;v临时段:用于存储临时段:用于存储Oracle在解释和执行在解释和执行SQL语句期间所产生语句期间所产生的中间状态数据的中间状态数据。5.2.2 段段 CREATE TABLESPACE语句中的
37、段管理子句为:语句中的段管理子句为:SEGMENT SPACE MANAGEMENT AUTO|MANUAL 。vAUTO:自动段空间管理方式,这时数据库用位图自动段空间管理方式,这时数据库用位图记录表空间内段的空闲空间,它将忽略表空间内在记录表空间内段的空闲空间,它将忽略表空间内在对象存储定义中指定的对象存储定义中指定的PCTUSED、FREELIST、FREELIST GROUPS等存储参数。等存储参数。vMANUAL:手工段空间管理方式,这时用空闲列表:手工段空间管理方式,这时用空闲列表管理段内的空闲空间。管理段内的空闲空间。5.2.3 区区 区(区(extent)是表空间内存储空间的分
38、配单位,它)是表空间内存储空间的分配单位,它由一些由一些连续的数据块连续的数据块组成组成。区的分配方式分为以区的分配方式分为以下两种:下两种:v本地管理:区的分配信息存储在各个表空间内,每本地管理:区的分配信息存储在各个表空间内,每次分配的区大小可以是统一的(次分配的区大小可以是统一的(UNIFORM),也),也可以是系统自动分配(可以是系统自动分配(AUTOALLOCATE););v字典管理:区的分配信息统一存储在数据字典中。字典管理:区的分配信息统一存储在数据字典中。SYSTEM表空间采用本地管理方式时,其他表空间只表空间采用本地管理方式时,其他表空间只能采用本地管理方式。能采用本地管理方
39、式。5.2.3 区区 CREATE TABLESPACE语句中的区管理子句为:语句中的区管理子句为:EXTENT MANAGEMENT DICTIONARY|LOCAL AUTOALLOCATE|UNIFORM SIZE size_clause 5.2.4 数据块数据块 数据块(数据块(Data Block)又被称作逻辑块、)又被称作逻辑块、Oracle块块或页面,它是或页面,它是Oracle使用和分配存储空间的最小单使用和分配存储空间的最小单位。位。Oracle每次读写数据文件的数据量必须是数据每次读写数据文件的数据量必须是数据块大小的整数倍块大小的整数倍,而数据块大小又必须是操作系统,而数
40、据块大小又必须是操作系统I/O块的整数倍。块的整数倍。数据库默认数据块的大小存储在数据库默认数据块的大小存储在DB_BLOCK_SIZE参数内,它在数据库创建时指定,数据库创建后不参数内,它在数据库创建时指定,数据库创建后不能修改。能修改。Oracle支持的数据块大小为支持的数据块大小为2048到到32768之间,之间,默认取值为默认取值为8192。1.数据块的结构数据块的结构 无论数据块包含表、索引还是簇数据,它们的格式总是类似无论数据块包含表、索引还是簇数据,它们的格式总是类似的,由以下部分组成:的,由以下部分组成:v块头:包含一般块信息,如块的地址及其所属段的类型(如块头:包含一般块信息
41、,如块的地址及其所属段的类型(如数据段或索引段)等;数据段或索引段)等;v表目录:说明块中数据所属的表信息;表目录:说明块中数据所属的表信息;v行目录:说明块中所包含的行信息,如行数据区每行的地址;行目录:说明块中所包含的行信息,如行数据区每行的地址;以上三项被总称为数据块的管理开销(以上三项被总称为数据块的管理开销(overhead)。)。v空闲空间:数据块内还没有被分配使用的空闲空间;空闲空间:数据块内还没有被分配使用的空闲空间;v行数据:包含表或索引数据,行可以跨越多个数据块。行数据:包含表或索引数据,行可以跨越多个数据块。数据块结构图数据块结构图2.行链接和行迁移行链接和行迁移v行链接
42、行链接(Row Chaining):插入数据时,如果行数据的长度超:插入数据时,如果行数据的长度超过数据块的大小,过数据块的大小,Oracle使用多个数据块组成的链来存储该使用多个数据块组成的链来存储该行数据,这就是行链接。行数据,这就是行链接。v行迁移行迁移(Row Migrating):如果数据修改时导致行数据长度增:如果数据修改时导致行数据长度增加,而数据块内的空闲空间已经被全部填满,这时如果修改加,而数据块内的空闲空间已经被全部填满,这时如果修改后的行数据能够保存在一个新的数据块内,后的行数据能够保存在一个新的数据块内,Oracle则将把该则将把该行迁移到一个新的数据块内,这被称作行迁
43、移。行迁移到一个新的数据块内,这被称作行迁移。行迁移后,行迁移后,Oracle仍保留被迁移行原来的行片段,使它指向仍保留被迁移行原来的行片段,使它指向包含被迁移行的新数据块,从而保持被迁移行的包含被迁移行的新数据块,从而保持被迁移行的ROWID保保持不变。持不变。出现行链接和行迁移时,出现行链接和行迁移时,Oracle检索该行信息时都需要扫描检索该行信息时都需要扫描多个数据块,所以与该行相关的多个数据块,所以与该行相关的I/O性能会下降。性能会下降。本章参考文献本章参考文献1.Oracle.Oracle Database Administrators Guide,第四、五、六、七、九章,第四、
44、五、六、七、九章2.Oracle.Oracle Database Concepts,第一、二、,第一、二、三章三章 3.Oracle.Oracle Database 2 Day DBA,第五、六,第五、六章章4.Oracle.Oracle Database Reference 实验五:实验五:Oracle数据库存储结构数据库存储结构v实验目的实验目的:掌握Oracle数据库存储结构的管理方法。v实验要求:实验要求:v1.查看并列出当前数据库的物理存储结构情况,包括数据文件、控制文件和重做日志文件。v2.查看数据库当前使用的控制文件,然后为其再添加一个控制文件,实现控制文件的多路存储,并写出具体的实现步骤。v3.查看并列出数据库当前的重做日志组和成员信息,之后为数据库再添加一组重做日志,其中至少包含两个成员。v4.进行日志切换,查看各组日志的状态。v5.检索数据库当前表空间信息,以及每个表空间下的数据文件信息,之后再创建一个表空间ts,其初始大小为10M,允许自动扩展,每次扩展5M,最大只允许扩展到1024M。v6.检索为scott用户分配的段信息,以及为其emp表分配的区信息。v查询数据库的默认数据块大小,以及各个表空间的数据块大小。