您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > OA系统产品报价及功能
第七讲表空间和数据文件二零一零年六月目标学习此章,需要掌握以下知识:了解表空间及数据文件的基本概念了解表空间的逻辑结构掌握表空间的管理方式掌握表空间的创建和删除知道如何获取表空间信息知道数据文件的管理操作掌握数据文件的查看方法逻辑结构和物理结构概述表空间和数据文件Oracle将数据逻辑上存放在表空间中,物理上存放在数据文件中.表空间:在同一时间只属于一个数据库由一个或多个数据文件组成被更进一步划分更小的逻辑存储单元数据文件:只能属于一个表空间和一个数据库是schema对象数据的最终存储地DatabaseTablespaceDatafiles表空间概述oracle数据库逻辑上划分为一个或多个表空间。包含物理数据文件的逻辑实体。表空间存储数据库所有可用的数据。表空间中的空间管理本地管理表空间:在表空间中管理空闲区。用位图来记录空闲区。每一个bit对应一个数据块或一级数据块。Bit位的值表示空闲或使用.在10g中,创建表空间时默认为本地管理字典管理表空间:由数据字典来管理空闲区。当区被分配或回收时,相关的数据字典表被更改。本地管理表空间中的段空间管理手动段空间管理使用空闲列表(freelists)来管理段中的剩余空间自动段空间管理使用位图(bitmaps)管理剩余空间是更为有效的方法是创建本地管理永久表空间的默认值本地管理表空间中区空间的分配区大小自动分配区的大小由Oracle数据库自动管理区大小固定分配每次分配区的大小是固定的表空间的分类系统表空间;非系统表空间;小文件表空间大文件表空间回滚(undo)表空间;临时(temporary)表空间;系统和非系统表空间系统表空间在创建数据库实例的时候就一起创建数据库正常运行所必需的保存数据字典包含系统回滚段(systemundosegment)最好不要把用户数据放到系统表空间中非系统表空间由一些独立的段构成方便用户对数据进行管理控制着分配给用户对象的总空间的大小小文件表空间(smallfiletablespace)Oracle数据文件的大小存在一个内部限制——每个数据文件最多只能包含2^22-1个数据块。这个限制是由于Oracle的Rowid中使用22位来代表Block号,这22位最多只能代表2^22-1个数据块。在8KBlock_size下,数据文件最大只能达到约4*8G小文件表空间是传统的表空间,在Oracle10g中为默认表空间Oracle以小文件表空间的方式创建System和Sysaux表空间。大文件表空间(bigfiletablespace)为了扩展数据文件的大小,Oracle10g中引入了大文件表空间,在大文件表空间下,Oracle使用32位来代表Block号,也就是说,在新的技术下,大文件表空间下每个文件最多可以容纳4G个Block。那么也就是说当Block_size为8k时,数据文件可以达到32T。表空间可以由一个单一的大文件构成,而不是若干个小数据文件。查看数据库默认的表空间类型设置数据库默认表空间ALTERDATABASESETDEFAULTbigfileTABLESPACE;ALTERDATABASESETDEFAULTsmallfileTABLESPACE;设置默认的创建默认的表空间为大文件表空间设置默认的创建默认的表空间为小文件表空间创建大文件表空间条件数据库默认创建的是小文件表空间,即Oracle中传统的表空间类型。只有本地管理的,且段空间自动管理(ASSM)的表空间才能使用大文件表空间。本地管理的回滚表空间和临时表空间,即使其段为手工管理,也可以使用大文件表空间。创建大文件表空间需要在CREATETABLESPACE语句前面添加BIGFILE关键字(CREATEBIGFILETABLESPACE…)。Oracle数据库自动创建自动段空间管理的本地表空间。无需在语句中设置EXTENTMANAGEMENTLOCAL和SEGMENTSPACEMANAGEMENTAUTO参数。不能指定EXTENTMANAGEMENTDICTIONARY或者SEGMENTSPACEMANAGEMENTMANUAL,否则会报错。只能创建一个数据文件。CREATEBIGFILETABLESPACEbigfiletestDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\bigfiletest01.dbf'SIZE100M;管理大文件表空间RESIZE:可以使用RESIZE语句直接重新定义大文件表空间的数据文件的大小,而不需要指定数据文件(大文件表空间只有一个数据文件)。例如:ALTERTABLESPACEbigfiletestRESIZE200M;(用来实现ADDDATAFILE语句功能)由于大文件表空间不能添加数据文件,因此可以使用AUTOEXTENTD参数来实现对数据量增加的需求。例如:ALTERTABLESPACEbigfiletestAUTOEXTENDONNEXT10M;回滚表空间用于保存和管理回滚段的数据不能包含其他对象必须使用本地管理的模式临时表空间用于排序操作Sql语句中有orderby,distinct,max等操作时被数据库中各种排序操作所共用如果排序的对象比较大,则使用临时表空间能获得比较好的性能只能包含排序过程中的临时数据,不能包含任何永久对象推荐使用本地管理模式临时表空间文件一般是设置为不归档的默认临时表空间可以为数据库设定一个默认的临时表空间设定默认临时表空间,能防止使用system表空间来进行排序可以使用alterdatabase…语句来设置默认临时表空间如果没有设置新的默认临时表空间,就不能删除旧的默认临时表空间是不能脱机的临时表空间组由多个临时表空间构成表空间组中表空间个数的上限没有限制,至少包含一个表空间。表空间组不能和其他任何表空间同名。可以在为数据库设置默认临时表空间时使用表空间组或者在为用户设置临时表空间时使用表空间组。创建临时表空间组可以在CREATETEMPORARYTABLESPACE或者ALTERTABLESPACE语句中使用TABLESPACEGROUP隐式的创建表空间组并假设当前不存在表空间组。以下例子指定当group1和group2不存在时创建表空间组group1和group2。每个组中包含的成员都只包含指定的唯一的一个成员。CREATETEMPORARYTABLESPACElmtemp2TEMPFILE'/oracle/data/lmtemp201.dbf'SIZE50MTABLESPACEGROUPgroup1;ALTERTABLESPACElmtempTABLESPACEGROUPgroup2;管理临时表空间组CREATETEMPORARYTABLESPACElmtemp3TEMPFILE'/oracle/data/lmtemp301.dbf‘SIZE25MTABLESPACEGROUPgroup1;ALTERTABLESPACElmtemp2TABLESPACEGROUPgroup2;添加成员:删除成员:ALTERTABLESPACElmtemp3TABLESPACEGROUP'';声明表空间组为默认的临时表空间可以使用ALTERDATABASE…DEFAULTTEMPORARYTABLESPACE命令把表空间设置为数据库的默认临时表空间。例如ALTERDATABASEsampleDEFAULTTEMPORARYTABLESPACEgroup2;只读表空间设置表空间为只读,则不能使用DML操作对表空间中的数据进行修改可以使用DDL操作对只读表空间中的对象进行删除操作使用命令altertablespacetbs_namereadonly;可以将一个表空间由读写状态更改至只读状态如果想要把一个只读表空间更改至读写状态,则需要保证全部数据文件都是online的表空间的创建(1)字典管理的表空间本地管理表空间CREATETABLESPACEuserdataDATAFILE'/u01/oradata/userdata01.dbf'SIZE500MEXTENTMANAGEMENTLOCALUNIFORMSIZE256K;CREATETABLESPACEuserdataDATAFILE'/u01/oradata/userdata01.dbf'SIZE500MEXTENTMANAGEMENTDICTIONARYDEFAULTSTORAGE(initial1MNEXT1M);表空间的创建(2)本地管理的表空间——区大小固定分配本地管理表空间——区大小自动分配CREATETABLESPACEuserdataDATAFILE'/u01/oradata/userdata01.dbf'SIZE500MEXTENTMANAGEMENTLOCALUNIFORMSIZE256K;CREATETABLESPACEtestDATAFILE'/oradata/data/test01.dbf'SIZE50MEXTENTMANAGEMENTLOCALautoallocate;表空间的创建(3)本地管理的表空间——手动段空间管理本地管理表空间——自动段空间管理CREATETABLESPACEtestDATAFILE'/oradata/data/test01.dbf'SIZE50MEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTMANUAL;CREATETABLESPACEtestDATAFILE'/oradata/data/test01.dbf'SIZE50MEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;表空间的创建(续)使用dbconsole创建在预置数据库中的表空间SYSTEMSYSAUXTEMPUNDOTBS1USERSEXAMPLE更改表空间(1)更改表空间的状态读写:表空间已联机,可以进行读、写操作只读:不允许对表空间中的对象进行DML操作。注意:不能使system或sysaux表空间处于只读脱机:不能对脱机的表空间进行读或写操作选项:正常脱机、临时脱机、立即脱机和进行恢复system表空间、拥有活动的回滚段的表空间、及默认临时表空间不能脱机altertablespacetbs_nameoffline/online;更改表空间(2)对表空间进行重命名表空间和所有的数据文件都要联机altertablespacetbs1renametotbs2更改表空间的大小向表空间中添加数据文件更改现有数据文件的大小设置数据文件为自动扩展手动更改数据文件的大小改变存储选项更改表空间(3)对表空间可以进行的操作删除表空间(1)需要有droptablespace的系统权限不能删除包含任何活动段的表空间表空间中的某个表当前正在使用中表空间包含回退位提交事务处理需要的还原数据删除之前最好先使表空间处于脱机状态可以选择连带删除相应的数据文件Droptablespaceuser_tabincludingcontentsanddatafiles;删除表空间(2)查看表空间的信息可以通过查询表dba_tablespaces和动态性能视图v$tablespace来获得表空间的相关信息查看表空间的信息(续)数据文件的大小自动扩展alterdatabasedatafile‘file_name’autoextendon/off;手动扩展alterdatabasedatafile‘file_name’resize200M;数据文件的状态联机数据库可以对文件进行读写操作脱机如果某个表空间是脱机状态,则它所拥有的全部数据文件都会脱机查看数据文件的相关信息可以通过查询表dba_data
本文标题:OA系统产品报价及功能
链接地址:https://www.777doc.com/doc-11574 .html