《Oracle讲义-3表空间.ppt》由会员分享,可在线阅读,更多相关《Oracle讲义-3表空间.ppt(41页珍藏版)》请在三一办公上搜索。
1、Oracle10g 表空间管理,表空间的基本概念,Oracle数据库中的数据逻辑地存储在表空间并物理地存储在数据文件中。,表空间的基本概念,Data File,Tablespace,Segment,Extent,Extent,Data Blocks,E_mail:,4,表空间的基本概念,每个表空间包含一个或多个操作系统文件表空间置有联机(ONLINE)、或脱机(OFFLINE)属性除SYSTEM、SYSAUX、UNDOTBS1及TEMP表空间外,表空间可以置为脱机(OFFLINE),不影响数据库运行在创建完成数据库结构后,要决定创建的表空间,E_mail:,5,决定表空间,Oracle Dat
2、abase 10g数据库应具有的表空间如下:SYSTEM SYSAUX UNDOTBS1 EXAMPLE TEMP USERS,关于SYSAUX表空间,SYSAUX表空间是第二个存储数据库标识的表空间,其中部分数据库标识原存储在SYSTEM表空间中。在Oracle8i、Oracle9i 中,在系统表空间中需要存储一些必须的数据库信息。例如,RMAN恢复目录信息、Data Mining、OLAP等信息,这些信息增加了系统表空间的存储空间。Oracle10g将这些附加的表空间中的信息存储到表空间SYSAUX中,该表空间成为SYSTEM的辅助表空间。SYSAUX表空间类型必须为:本地化管理及Segm
3、ent Space Management Auto类型。,E_mail:,8,决定表空间,在决定适合你的数据库的表空间结构前,考虑将要存储的数据的特征。主要考虑的因素如下:设置操作系统目录结构将碎片减到最小将磁盘竞争减到最小将段分开数据库物理文件的分散存储,E_mail:,9,在不同的表空间中不同组的实体有不同的碎片特征。段与碎片特征数据字典段:没有产生碎片的倾向,因为没有空闲空间应用数据段:有较低的碎片倾向回 退 段:有适度的碎片倾向临 时 段:有较高的碎片倾向减少磁盘竞争将在不同的表空间中竞争磁盘资源的段分隔开来,可以减少磁盘竞争将字典段和其他段分隔开来将回退段和其他段分隔开来将数据段和它
4、们对应的索引段分隔开来,减少碎片,将具有不同行为特征的实体各段分离到不同的表空间中。通过以下方式分离段把有不同备份需要的段分开分离日常不同功用的段把有不同生命周期的段分开数据库文件存储在两个不同的物理磁盘上保存控制文件的至少两个活动的拷贝。使用多个Redo Log文件组并将每组成员放在不同的磁盘上。把参与磁盘竞争的表空间分布于不同物理磁盘上。,将段分离,Oracle表空间类型,表空间,Oracle表空间类型,数据字典管理表空间(Oracle7,8,8i),本地化管理表空间(Oracle8i,9i,10g),Uniform,AutoAllocate,表空间,数据字典管理表空间(手工创建数据库),
5、本地化管理表空间,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 DIC
6、TIONARY 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,Oracle1
7、0g支持的表空间类型,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必须查询数据字典来确定可用空间,影响系统的性能,尤其
8、是对于OLTP系统。在数据字典表空间中,如果要在表空间中为表分配一个新区,Oracle必须执行SQL语句去查询数据字典以寻找空闲空间,并标记为空的可用空间。数据字典管理表空间允许用户随意修改区的存储参数。同一表空间中的实体可以具有不同的存储参数,一个实体其区的大小可以不相同。,数据字典管理表空间(Dictionary-Managed Tablespaces),本地化管理表空间不使用数据字典去寻找空闲空间,而使用维护位图(Bitmap of Tree)方法,以使用表空间中的数据块,以避免使用SQL语句引起系统性能的下降。自动消除磁盘碎片。在本地化管理表空间中相邻的空闲区被是视为一个大的可用空间,
9、从设计上保证自动合并磁盘碎片。在表空间级强制设置存储参数。DBA不再担心用户使用了不正确的存储参数及磁盘碎片的产生。本地化管理表空间支持临时表空间与临时数据文件。临时表空间不产生日志数据、不需要保证数据完整性。,本地化管理表空间(Locally Managed Tablespaces),Dictionary Tablespaces 创建字典管理表空间,创建数据字典类表空间,CREATE TABLESPACE tablespace,DATAFILE filespec,EXTENT MANAGEMENT DICTIONARY,OFFLINE,ONLINE,DEFAULT STORAGE,Autoe
10、xtend.,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 TABL
11、ESPACE tablespace,DATAFILE filespec,EXTENT MANAGEMENT LOCAL AUTOALLOCATE,SIZE xxx M,特点:1.区的大小在表空间级定义,非实体级2.在实体级不得使用Storage设置参数3.缺省为AUTOALLOCATE,在Oracle Database 10g中,允许定义临时表空间组,临时表空间组是一组多个临时表空间的逻辑组合。可以将临时表空间组作为系统的缺省临时表空间。创建表空间组时,只需将第一个临时表空间指定为某一个组即可,当表空间组中的最后一个临时表空间被删除后,则该临时表空间组被自动删除。可以在创建临时表空间时可以将该
12、表空间指定为某一个临时表空间组的一个成员。可以使用修改表空间命令将表空间作为临时表空间组中的成员。,创建临时表空间组(Temporary Tablespace Group),修改表空间,ALTER TABLESPACE tablespace,DATAFILE filespec,DEFAULT STORAGE,ONLINE,OFFLINE,ADD,RENAME,DATAFILE filespec,TO,目的,表空间类型,SYSTEM 表空间随数据库创建包含数据字典包含 SYSTEM 还原段非 SYSTEM 表空间用于分开存储段易于空间管理控制分配给用户的空间量,创建表空间,CREATE TABL
13、ESPACE userdataDATAFILE/u01/oradata/userdata01.dbf SIZE 100MAUTOEXTEND ON NEXT 5M MAXSIZE 200M;,使用以下命令创建表空间:CREATE TABLESPACE,表空间的空间管理,本地管理的表空间:在表空间内管理空闲区使用位图来记录空闲区每一位与一个块或一组块相对应位的数值指明是空闲还是已占用字典管理的表空间:由数据字典管理空闲区在分配或回收区时更新对应的表,本地管理的表空间,减少了对数据字典表的争用分配或回收空间时不生成还原数据无需合并,CREATE TABLESPACE userdataDATAFIL
14、E/u01/oradata/userdata01.dbf SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;,字典管理的表空间,在数据字典中管理区存储在表空间中的每个段都可以有不同的存储子句需要合并,CREATE TABLESPACE userdataDATAFILE/u01/oradata/userdata01.dbf SIZE 500M EXTENT MANAGEMENT DICTIONARYDEFAULT STORAGE(initial 1M NEXT 1M PCTINCREASE 0);,临时表空间,用于排序操作不能包含任何永久对象
15、建议在本地管理区,CREATE TEMPORARY TABLESPACE tempTEMPFILE/u01/oradata/temp01.dbf SIZE 500MEXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;,缺省临时表空间的限制,不能对缺省临时表空间执行下列操作:将其删除,除非已经有新的缺省临时表空间使其脱机更改为永久表空间,只读表空间,使用以下命令可将表空间置于只读模式导致检查点操作数据仅用于读操作可从表空间删除对象,ALTER TABLESPACE userdata READ ONLY;,使表空间脱机,无法访问数据不能设为脱机的表空间:SYSTEM 表
16、空间具有活动的还原段的表空间缺省临时表空间使用以下命令可使表空间脱机:使用以下命令可使表空间联机:,ALTER TABLESPACE userdata OFFLINE;,调整表空间大小,表空间大小可通过以下方法进行调整:更改数据文件的大小:使用 AUTOEXTEND 自动调整使用 ALTER TABLESPACE 手动调整使用 ALTER TABLESPACE 添加数据文件,启用数据文件自动扩展,可使用以下命令自动调整大小:CREATE DATABASECREATE TABLESPACEALTER TABLESPACE ADD DATAFILE示例:,CREATE TABLESPACE use
17、r_dataDATAFILE/u01/oradata/userdata01.dbf SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;,手动调整数据文件的大小,使用 ALTER DATABASE 可手动增加或减少数据文件的大小调整数据文件大小可在无需添加更多数据文件的情况下添加更多空间手动调整数据文件大小将回收数据库中的未用空间,向表空间添加数据文件,通过添加其它数据文件来增加分配给表空间的空间通过 ADD DATAFILE 子句可添加数据文件示例:,ALTER TABLESPACE user_data ADD DATAFILE/u01/oradata
18、/userdata03.dbf SIZE 200M;,移动数据文件的方法,ALTER TABLESPACE表空间必须脱机目标数据文件必须存在重命名数据文件的步骤:使表空间脱机。使用操作系统命令移动或复制文件。执行 ALTER TABLESPACE RENAME DATAFILE 命令。使表空间联机。,ALTER TABLESPACE userdata RENAMEDATAFILE/u01/oradata/userdata01.dbfTO/u02/oradata/userdata01.dbf;,移动数据文件的方法,ALTER DATABASE数据库必须已装载目标数据文件必须存在,ALTER DATABASE RENAME FILE/u01/oradata/system01.dbfTO/u03/oradata/system01.dbf;,删除表空间,不能删除下列表空间:SYSTEM 表空间具有活动段的表空间INCLUDING CONTENTS 将删除段INCLUDING CONTENTS AND DATAFILES 将删除数据文件CASCADE CONSTRAINTS 将删除所有引用完整性约束,DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES;,