Oracle10g表空间管理.ppt
Oracle10g 表空间管理,表空间的基本概念,Oracle数据库中的数据逻辑地存储在表空间并物理地存储在数据文件中。,表空间的基本概念,Data File,Tablespace,Segment,Extent,Extent,Data Blocks,E_mail:,4,表空间的基本概念,每个表空间包含一个或多个操作系统文件表空间置有联机(ONLINE)、或脱机(OFFLINE)属性除SYSTEM、SYSAUX、UNDOTBS1及TEMP表空间外,表空间可以置为脱机(OFFLINE),不影响数据库运行在创建完成数据库结构后,要决定创建的表空间,E_mail:,5,决定表空间,Oracle Database 10g数据库应具有的表空间如下:SYSTEM SYSAUX UNDOTBS1 EXAMPLE TEMP USERS,关于SYSAUX表空间,SYSAUX表空间是第二个存储数据库标识的表空间,其中部分数据库标识原存储在SYSTEM表空间中。在Oracle8i、Oracle9i 中,在系统表空间中需要存储一些必须的数据库信息。例如,RMAN恢复目录信息、Data Mining、OLAP等信息,这些信息增加了系统表空间的存储空间。Oracle10g将这些附加的表空间中的信息存储到表空间SYSAUX中,该表空间成为SYSTEM的辅助表空间。SYSAUX表空间类型必须为:本地化管理及Segment Space Management Auto类型。,E_mail:,8,决定表空间,在决定适合你的数据库的表空间结构前,考虑将要存储的数据的特征。主要考虑的因素如下:设置操作系统目录结构将碎片减到最小将磁盘竞争减到最小将段分开数据库物理文件的分散存储,E_mail:,9,在不同的表空间中不同组的实体有不同的碎片特征。段与碎片特征数据字典段:没有产生碎片的倾向,因为没有空闲空间应用数据段:有较低的碎片倾向回 退 段:有适度的碎片倾向临 时 段:有较高的碎片倾向减少磁盘竞争将在不同的表空间中竞争磁盘资源的段分隔开来,可以减少磁盘竞争将字典段和其他段分隔开来将回退段和其他段分隔开来将数据段和它们对应的索引段分隔开来,减少碎片,将具有不同行为特征的实体各段分离到不同的表空间中。通过以下方式分离段把有不同备份需要的段分开分离日常不同功用的段把有不同生命周期的段分开数据库文件存储在两个不同的物理磁盘上保存控制文件的至少两个活动的拷贝。使用多个Redo Log文件组并将每组成员放在不同的磁盘上。把参与磁盘竞争的表空间分布于不同物理磁盘上。,将段分离,Oracle表空间类型,表空间,Oracle表空间类型,数据字典管理表空间(Oracle7,8,8i),本地化管理表空间(Oracle8i,9i,10g),Uniform,AutoAllocate,表空间,数据字典管理表空间(手工创建数据库),本地化管理表空间,Uniform,AutoAllocate,(定制安装数据库),Oracle10g支持的表空间类型,数据字典管理的表空间类型,SQLselect tablespace_name,extent_management,allocation_type from dba_tablespaces;TABLESPACE_NAME EXTENT_MAN ALLOCATIO-SYSTEM DICTIONARY USERRBS DICTIONARY USERTEMP DICTIONARY USERUSERS DICTIONARY USERTOOLS DICTIONARY USERINDX DICTIONARY USER,Oracle10g支持的表空间类型,SQLselect tablespace_name,extent_management,allocation_type from dba_tablespaces;TABLESPACE_NAME EXTENT_MAN ALLOCATIO-SYSTEM DICTIONARY USERUNDOTBS1 LOCAL SYSTEMSYSAUX LOCAL SYSTEMTEMP LOCAL UNIFORMUSERS LOCAL SYSTEMEXAMPLE LOCAL SYSTEMDATA_2004 DICTIONARY USER,Oracle10g支持的表空间类型,SQLselect tablespace_name,extent_management,allocation_type from dba_tablespaces;TABLESPACE_NAME EXTENT_MAN ALLOCATIO-SYSTEM LOCAL SYSTEMUNDOTBS1 LOCAL SYSTEMSYSAUX LOCAL SYSTEMTEMP LOCAL UNIFORMUSERS LOCAL SYSTEMEXAMPLE LOCAL SYSTEM,在数据字典管理的表空间中,如果实体要分配空间,Oracle必须查询数据字典来确定可用空间,影响系统的性能,尤其是对于OLTP系统。在数据字典表空间中,如果要在表空间中为表分配一个新区,Oracle必须执行SQL语句去查询数据字典以寻找空闲空间,并标记为空的可用空间。数据字典管理表空间允许用户随意修改区的存储参数。同一表空间中的实体可以具有不同的存储参数,一个实体其区的大小可以不相同。,数据字典管理表空间(Dictionary-Managed Tablespaces),本地化管理表空间不使用数据字典去寻找空闲空间,而使用维护位图(Bitmap of Tree)方法,以使用表空间中的数据块,以避免使用SQL语句引起系统性能的下降。自动消除磁盘碎片。在本地化管理表空间中相邻的空闲区被是视为一个大的可用空间,从设计上保证自动合并磁盘碎片。在表空间级强制设置存储参数。DBA不再担心用户使用了不正确的存储参数及磁盘碎片的产生。本地化管理表空间支持临时表空间与临时数据文件。临时表空间不产生日志数据、不需要保证数据完整性。,本地化管理表空间(Locally Managed Tablespaces),Dictionary Tablespaces 创建字典管理表空间,创建数据字典类表空间,CREATE TABLESPACE tablespace,DATAFILE filespec,EXTENT MANAGEMENT DICTIONARY,OFFLINE,ONLINE,DEFAULT STORAGE,Autoextend.,Locally Managed Tablespaces创建本地化管理表空间,创建本地化管理表空间区大小相同(Uniform Extent Allocation),CREATE TABLESPACE tablespace,DATAFILE filespec,EXTENT MANAGEMENT LOCAL UNIFORM,SIZE xxx M,特点:1.区的大小相同,任何独立的空闲区,被作为一个大区使 用,不产生磁盘碎片。2.实体使用统一的存储参数。,SIZE xxx K,创建本地化管理表空间区自动分配(Automatic Extent Allocation),CREATE TABLESPACE tablespace,DATAFILE filespec,EXTENT MANAGEMENT LOCAL AUTOALLOCATE,SIZE xxx M,特点:1.区的大小在表空间级定义,非实体级2.在实体级不得使用Storage设置参数3.缺省为AUTOALLOCATE,在Oracle Database 10g中,允许定义临时表空间组,临时表空间组是一组多个临时表空间的逻辑组合。可以将临时表空间组作为系统的缺省临时表空间。创建表空间组时,只需将第一个临时表空间指定为某一个组即可,当表空间组中的最后一个临时表空间被删除后,则该临时表空间组被自动删除。可以在创建临时表空间时可以将该表空间指定为某一个临时表空间组的一个成员。可以使用修改表空间命令将表空间作为临时表空间组中的成员。,创建临时表空间组(Temporary Tablespace Group),修改表空间,ALTER TABLESPACE tablespace,DATAFILE filespec,DEFAULT STORAGE,ONLINE,OFFLINE,ADD,RENAME,DATAFILE filespec,TO,目的,