Oracle数据库应用教程第7章物理存储结构Oracle数据库应用教程本章内容7.1项目导入——规划人力资源管理系统数据库物理存储结构7.2Oracle数据库系统结构7.3数据文件及其管理7.4控制文件7.5重做日志文件7.6归档重做日志文件Oracle数据库应用教程本章要求理解Oracle数据库的系统结构掌握数据文件的管理掌握控制文件的作用及其管理掌握重做日志文件的工作方式及其管理掌握数据库归档模式设置及归档管理Oracle数据库应用教程7.1项目导入——规划人力资源管理系统数据库物理存储结构能够分配足够的存储空间存储数据合理创建一些数据文件,设置文件的大小、扩展方式,并分配到不同的磁盘上。合理规划控制文件、重做日志文件的数量、存放位置,既能形成冗余,避免数据丢失,又能提高系统的I/O性能。为了保证人力资源管理系统在出现介质故障时能完全恢复,需要将数据库设置为归档模式,进行归档路径等的设置。Oracle数据库应用教程7.2Oracle数据库系统结构Oracle数据库系统结构由数据库实例和物理存储结构组成。Oracle数据库应用教程在Oracle数据库的存储结构包括物理存储结构和逻辑存储结构。物理存储结构主要用于描述Oracle数据库外部数据的存储,即在操作系统中如何组织和管理数据,与具体的操作系统有关;逻辑存储结构主要描述Oracle数据库内部数据的组织和管理方式,与操作系统没有关系。物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形式。Oracle数据库应用教程表空间段区块OS块数据文件逻辑结构数据库控制文件重做日志文件物理结构Oracle数据库应用教程Oracle数据库物理存储结构Oracle数据库应用教程数据文件:用于存储数据库中的所有数据;控制文件:用于记录和描述数据库的物理存储结构信息;重做日志文件:用于记录外部程序(用户)对数据库的改变操作;归档文件:用于保存已经写满的重做日志文件;初始化参数文件:用于设置数据库启动时的参数初始值;跟踪文件:用于记录用户进程、数据库后台进程等的运行情况;口令文件:用于保存具有SYSDBA,SYSOPER权限的用户名和SYS用户口令;警告文件:用于记录数据库的重要活动以及发生的错误;备份文件:用于存放数据库备份所产生的文件。Oracle数据库应用教程7.3数据文件及其管理数据文件概述数据文件的管理Oracle数据库应用教程7.3.1数据文件概述数据文件的内容用于保存数据库中所有数据的文件。临时数据文件是一种特殊的数据文件,其存储内容是临时性的,在一定条件下自动释放。Oralce数据库中的每个数据文件都具有两个文件号,称为绝对文件号和相对文件号,用于唯一地确定一个数据文件。其中,绝对文件号用于在整个数据库范围内唯一标识一个数据文件;相对文件号用于在表空间范围内唯一标识一个数据文件。数据文件与表空间的关系一个表空间可以包含几个数据文件一个数据文件只能从属于一个表空间Oracle数据库应用教程数据文件的管理策略由于对数据库的操作最终转换为对数据文件的操作,因此在数据库运行过程中对数据文件进行频繁的读写操作。为了提搞I/O效率,应该合理的分配数据文件的存储位置。把不同存储内容的数据文件放置在不同的硬盘上,可以并行访问数据,提高系统读写的效率。初始化参数文件、控制文件、重做日志文件最好不要与数据文件存放在同一个磁盘上,以免数据库发生介质故障时,无法恢复数据库。Oracle数据库应用教程7.3.2数据文件的管理创建数据文件修改数据文件的大小改变数据文件的可用性改变数据文件的名称或位置删除数据文件查询数据文件的信息利用OEM管理数据文件Oracle数据库应用教程(1)创建数据文件数据文件依附于表空间而存在,创建数据文件就是向表空间添加文件在创建数据文件时应该根据文件数据量的大小确定文件的大小以及文件的增长方式。语法ALTERTABLESPACE…ADDDATAFILEALTERTABLESPACE…ADDTEMPFILEOracle数据库应用教程向ORCL数据库的USERS表空间中添加一个大小为10MB的数据文件。ALTERTABLESPACEUSERSADDDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'SIZE10M;向ORCL数据库的TEMP表空间中添加一个大小为5MB的临时数据文件。ALTERTABLESPACETEMPADDTEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF'SIZE5M;Oracle数据库应用教程(2)修改数据文件大小方法设置数据文件为自动增长方式。手工改变数据文件的大小。设置数据文件为自动增长方式创建时设置数据文件为自动增长创建后修改数据文件为自动增长AUTOEXTENDONNEXT…MAXSIZE…|UNLIMITED手工改变数据文件的大小ALTERDATABASEDATAFILE…RESIZE…Oracle数据库应用教程为ORCL数据库的USERS表空间添加一个自动增长的数据文件。ALTERTABLESPACEUSERSADDDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS03.DBF'SIZE10MAUTOEXTENDONNEXT512KMAXSIZE50M;修改ORCL数据库USERS表空间的数据文件USERS02.DBF为自动增长方式。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'AUTOEXTENDONNEXT512KMAXSIZEUNLIMITED;Oracle数据库应用教程取消ORCL数据库USERS表空间的数据文件USERS02.DBF的自动增长方式。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'AUTOEXTENDOFF;将ORCL数据库USERS表空间的数据文件USERS02.DBF大小设置为8MB。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'RESIZE8M;Oracle数据库应用教程(3)改变数据文件的可用性概念可以通过将数据文件联机或脱机来改变数据文件的可用性。在下面几种情况下需要改变数据文件的可用性:要进行数据文件的脱机备份时,需要先将数据文件脱机;需要重命名数据文件或改变数据文件的位置时,需要先将数据文件脱机;如果Oracle在写入某个数据文件时发生错误,会自动将该数据文件设置为脱机状态,并且记录在警告文件中。排除故障后,需要以手动方式重新将该数据文件恢复为联机状态。数据文件丢失或损坏,需要在启动数据库之前将数据文件脱机。Oracle数据库应用教程归档模式下数据文件可用性的改变数据文件可用性的改变ALTERDATABASEDATAFILE…ONLINE|OFFLINE临时数据文件可用性的概念改变ALTERDATABASETEMPFILE…ONLINE|OFFLINEOracle数据库应用教程在数据库处于归档模式下,将ORCL数据库USERS表空间的数据文件USERS02.DBF脱机。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'OFFLINE;将ORCL数据库USERS表空间的数据文件USERS02.DBF联机。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'ONLINE;Oracle数据库应用教程非归档模式下数据文件可用性的改变在非归档模式下,通常不能将数据文件脱机。如果由于数据文件的损坏,需要将数据文件脱机,然后重新启动数据库,需要使用ALTERDATABASEDATAFILE…OFFLINEFORDROP语句。例如:ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'OFFLINEFORDROP;Oracle数据库应用教程改变表空间中所有数据文件的可用性在归档模式下,将表空间脱机或联机ALTERTABLESPACE...DATAFILEONLINE|OFFLINE在归档模式下,将临时表空间联机或脱机ALTERTABLESPACE...TEMPFILEONLINE|OFFLINEOracle数据库应用教程在归档模式下,将USERS表空间中所有的数据文件脱机,但USERS表空间不脱机。然后再将USERS表空间中的所有数据文件联机。ALTERTABLESPACEUSERSDATAFILEOFFLINE;RECOVERTABLESPACEUSERS;ALTERTABLESPACEUSERSDATAFILEONLINE;Oracle数据库应用教程(4)改变数据文件的名称或位置改变同一个表空间中的数据文件的名称或位置ALTERTABLESPACLE…RENAMEDATAFILE…TO改变多个表空间中的数据文件的名称或位置ALTERDATABASERENAMEFILE…TO注意改变数据文件的名称或位置时,Oracle只是改变记录在控制文件和数据字典中的数据文件信息,并没有改变操作系统中数据文件的名称和位置,因此需要DBA手动更改操作系统中数据文件的名称和位置。Oracle数据库应用教程改变同一个表空间中的数据文件的名称或位置更改ORCL数据库USERS表空间的USERS02.DBF和USERS03.DBF文件名为USERS002.DBF和USERS003.DBF。将包含数据文件的表空间置为脱机状态。ALTERTABLESPACEUSERSOFFLINE;在操作系统中重命名数据文件或移动数据文件到新的位置。分别将USERS02.DBF和USERS03.DBF文件重命名为USERS002.DBF和USERS003.DBF。使用ALTERTABLESPACE…RENAMEDATAFILE…TO语句进行操作ALTERTABLESPACEUSERSRENAMEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF','D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS03.DBF'TO'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS002.DBF','D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS003.DBF';将表空间联机。ALTERTABLESPACEUSERSONLINE;Oracle数据库应用教程改变多个表空间中的数据文件的名称或位置更改ORCL数据库USERS表空间中的USERS002.DBF文件位置和修改TOOLS表空间中的TOOLS01.DBF文件名关闭数据库。SHUTDOWN在操作系统中,将USERS表空间中的USERS002.DBF文件复制到一个新的位置,如D:\ORACLE\PRODUCT\10.2.0\ORADATA,修改TOOLS表空间的数据文件TOOLS01.DBF的名为TOOLS001.DBF。启动数据库到MOUNT状态。STARTUPMOUNT执行ALTER