您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > oracle中的管理表空间和数据文件
回顾控制文件与日志文件数据文件:用来存储数据的物理文件控制文件和重做日志文件:用于维护Oracle数据库的正常运行OPENMOUNTNOMOUNTSHUTDOWN根据控制文件打开数据文件和重做日志打开控制文件根据参数文件启动实例控制文件了解控制文件的用途装载和打开数据库;运行过程中记载日志序列号、检查点理解控制文件的内容(教材p262)管理控制文件查看、镜像、建立、备份、恢复、删除RedoLog文件工作原理Group1MemberAGroup2MemberAGroup3MemberAGroup1MemberBGroup2MemberBGroup3MemberBGroup1MemberCGroup2MemberCGroup3MemberCLogFile1LogFile2LogFile3日志文件了解日志文件的用途(恢复数据库)掌握对日志文件的基本管理增加重做日志删除重做日志改变重做日志的位置或名称理解归档的概念切换数据库到归档模式nomount日志文件(RedoLogFiles)每个Oracle数据库至少有两个RedoLog日志文件组,每组有一个或多个日志文件建议对RedoLog文件进行镜像,以保证数据库安全运行建议使用四个RedoLog文件组,每组2或3个日志文件组内RedoLog文件位于不同磁盘RedoLog文件是循环使用的第12章管理表空间和数据文件Oracle数据库中的数据逻辑地存储在表空间并物理地存储在数据文件中。表空间的基本概念DataFileTablespaceSegmentExtentExtentDataBlocks数据库表空间数据文件段区Oracle块OS块逻辑存储结构物理存储结构决定表空间在决定适合你的数据库的表空间结构前,考虑将要存储的数据的特征。考虑:设置操作系统目录结构将碎片减到最小将磁盘竞争减到最小将段分开存储数据库文件本章知识要点:掌握各种表空间的建立方法掌握改变表空间状态的方法掌握扩展表空间的方法掌握管理数据文件的方法了解UNDO表空间的作用12.1建立表空间在Oracle10g中,当数据库管理员(DBA)创建数据库时,SYSTEMUNDOTBSSYSAUXTEMPEXAMPLEUSERS12.1.1建立普通表空间根据表空间对盘区的管理方式,表空间分为:表空间数据字典管理表空间(Oracle7,8,8i)本地化管理表空间UniformAutoAllocate示例Createtablespaceuser02datafile'f:\oracle\oradata\user02.dbf'size50mextentmanagementlocalautoallocate;Createtablespaceuser03datafile'f:\oracle\oradata\user03.dbf'size50mextentmanagementlocaluniformsize512k;回顾--第八章内容createtableDEPT(DEPTNONUMBER(2)notnull,DNAMEVARCHAR2(14),LOCVARCHAR2(13))tablespaceUSERSpctfree10initrans1maxtrans255storage(initial64minextents1maxextentsunlimited);存储参数Storage子句设置如果指定盘区的管理方式为AutoAllocate(自动化管理)Initial、next和minextentsUniform盘区大小统一段的存储管理方式(在本地化管理下)segment_space_management手动MANUAL(默认)自动AUTO(不需要指定PCTFREE和PCTUSED)Createtablespaceuser04datafile'f:\oracle\oradata\user04.dbf'size50mextentmanagementlocaluniformsize512ksegmentspacemanagementmanual;查看表空间信息selecttablespace_name,extent_management,allocation_type,segment_space_management,status,contents,block_sizefromdba_tablespaces;12.1.2建立大文件表空间一个大文件表空间对应一个单一的数据文件或临时文件文件可以达到4G个数据块大小当数据块大小为8K时,大文件表空间的数据文件最大可以达到32T字节;当数据块尺寸为32K时,那么大文件表空间的数据文件最大尺寸可以达到128T。在实际环境中,这还受到操作系统的文件系统的限制。Createbigfiletablespace12.1.3建立临时表空间临时数据的集中化管理临时表空间提高其他表空间的使用效率并发排序操作建立多个临时表空间建立本地临时表空间createtemporarytablespacetemp01tempfile'f:\oracle\oradata\temp01.dbf'size10mextentmanagementlocaluniformsize256k;不能指定autoallocate建立大文件临时表空间12.1.4建立非标准块表空间自学数据块的大小由参数DB_BLOCK_SIZE决定,并且在创建数据库后不能再进行修改。为了优化I/O性能,Oracle系统允许不同的表空间使用不同大小的数据块,这样可以实现将大规模的表存储在由大数据块构成的表空间,而小规模的表则存储在由小数据块构成的表空间中。在创建非标准数据块的表空间时,用户需要显式使用BLOCKSIZE选项。12.2维护表空间对于数据库管理员而言,在创建各种表空间后,还需要经常维护护表空间改变表空间可用性改变读写状态改变表空间名称备份和恢复表空间删除不需要的表空间等。12.2.1改变表空间可用性表空间有Online(可访问)和Offline(不可访问)两种状态使表空间脱机altertablespaceuser01offline;使表空间联机altertablespaceuser01online;2712.2.2改变表空间读写状态表空间可以是读写方式,也可以是只读方式。altertablespaceuser01readonly;altertablespaceuser01readwrite;12.2.3改变表空间名称System和Sysaux表空间不能修改表空间或数据文件处于offline时不能修改SQLaltertablespacebig_tbsrenametobig_file_tbs;表空间已更改。12.2.4设置默认表空间设置数据库默认表空间的示例29SQLalterdatabasedefaulttablespaceusers;数据库已更改。SQLalterdatabasedefaulttemporarytablespacetemp;数据库已更改。12.2.5删除表空间在删除表空间时,Oracle仅仅是在控制文件和数据字典中删除与表空间和数据文件相关的信息,默认情况下,Oracle并不会在操作系统中删除相应的数据文件。因此,在成功执行删除表空间的操作后,需要手动删除操作系统中的数据文件。如果在删除表空间的同时要删除对应的数据文件,则必须显式地指定INCLUDINGCONTENTSANDDATAFILES子句。SQLdroptablespaceuser02includingcontentsanddatafiles;303112.3管理数据文件数据文件在创建数据库或表空间时建立。当表空间创建后,可以根据需要为表空间添加新的数据文件,或者更改已有数据文件的大小、名称和位置。3212.3.1数据文件的管理策略数据文件是物理上存储表空间数据的操作系统文件,在创建表空间的同时将为它建立数据文件。在创建表空间前,DBA不仅要考虑表空间的管理方式,还需要决定与表空间对应的数据文件的数量大小位置(性能与可靠性方面考虑)。12.3.2添加表空间数据文件在创建表空间时,通常会预先估计表空间所需的存储空间大小,然后为它建立若干适当大小的数据文件。如果在使用过程中发现表空间存储空间不足,可以再为它添加新的数据文件,以增加表空间的总存储空间。SQLaltertablespaceuser03adddatafile'f:\oracel\oradata\user03_02.dbf'size10mreuse;3312.3.3改变数据文件大小除了为表空间增加新的数据文件外,另一种增加表空间的存储空间的方法是改变已经数据文件的大小。改变数据文件大小的方式一共两种:设置数据文件为自动增长;createtablespaceuser03datafile'f:\oracel\oradata\user03_02.dbf‘size10mreuseautoextendonnext2mmaxsize500mextentmanagementlocal;手动改变数据文件的大小Alterdatabasedatafile'f:\oracel\oradata\user03_02.dbf'resize500m;343512.3.4改变数据文件的可用性与表空间类似,联机的数据文件或临时数据文件也可以被设置为脱机状态。将数据文件设置为脱机状态时,不会影响到表空间的状态。但是反过来,将表空间设置为脱机状态时,属于该表空间的数据文件将全部同时进入脱机状态。alterdatabasedatafile'f:\oracel\oradata\user03_02.dbf'offline;3612.3.5改变数据文件名称和位置(自学)改变数据文件的操作分为两种情况:要改变的数据文件属于同一个表空间;要改变的数据文件分别属于多个表空间。在这两种情况下,分别需要使用不同的语句进行操作。12.4UNDO表空间当执行DML操作时,事务操作前的数据将被称为UNDO记录。UNDO数据也称为回退数据,它用于确保数据的一致性37自动Undo空间管理在Oracle8i以前的数据库中,对于回退段的设置与管理已一直是一个十分复杂的工作,其正确的设置既困难又费时。对于大的事务往往产生回退段不足的错误,或在RBS表空间回退段中消耗过大。Oracle9i引如了一个新的概念,即AutomaticUndoManagement,Undo空间自动管理。在Oracle9i中,可以使用传统的回退段,也可以使用Undo表空间,Oracle9i对Undo空间自动管理,使回退段的管理变的十分容易。因为管理回退段比较复杂,所以Oracle11g已经完全弃用回退段,并且使有UNDO表空间来管理UNDOW数据。39小结各种表空间的建立方法改变表空间状态的方法扩展表空间的方法管理数据文件的方法UNDO表空间的作用实验五评讲问题1C_ora表选修网络数据库的学生列表C_Ora_group表分组情况Selectcount(*)fromc_ora结果是126Selectcount(*)fromc_ora_group结果是122selecta.stdno,a.stdname,b.stdno,b.stdnamefromc_oraaleftjoinc_ora_groupbona.stdno=b.stdno检索出134条记录,????检索出分组表中学号重复的同学selectstdno,count(stdno)fromc_ora_groupgroupbystdnohavingcount(stdno)1如何删除重复记录?Deletec_ora_groupAwhererowid(selectmin(rowid)fromc_ora_groupBwhereA.stdno=B.stdno)检索出分组表中学号重复的同学
本文标题:oracle中的管理表空间和数据文件
链接地址:https://www.777doc.com/doc-4190136 .html