收藏 分销(赏)

第3章 ORACLE数据库结构(逻辑)2v1.ppt

上传人:xrp****65 文档编号:14026566 上传时间:2026-06-09 格式:PPT 页数:111 大小:628.50KB 下载积分:10 金币
下载 相关
第3章 ORACLE数据库结构(逻辑)2v1.ppt_第1页
第1页 / 共111页
第3章 ORACLE数据库结构(逻辑)2v1.ppt_第2页
第2页 / 共111页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,Body Text,Second level,Third level,Fourth level,Fifth level,第3章 ORACLE数据库结构(逻辑),福建工程学院软件学院,卢民荣,luminrong,QQ,:,137955086(,周一,五下午在线,),第,7,章,Oracle 10g逻辑结构及其管理,7.1,数据块、范围和段及其管理,7.2,表空间及其管理,7.3,回滚段及其管理,Oracle,数据库逻辑存储结构,Oracle,数据库是一个数据集合,它的主要功能是存储和检索数据。为了更加有效地对数据库中的数据进行存储和管理,,Oracle,数据库采用了两种存储结构:逻辑存储结构和物理存储结构,这两种结构相互独立,互不影响。逻辑存储结构主要是指在,Oracle,内部使用的组织和管理数据的数据结构;物理存储结构是,Oracle,在操作系统中存储和管理数据的方式,即保存数据的,Oracle,文件在操作系统中的存储结构。,Oracle,数据库逻辑存储结构,Oracle,存储结构,1.,逻辑存储结构,块(,Block,)块是,Oracle,存储结构中最小的逻辑存储单元,是读写数据文件的最小单位。,区(,Extent,)区是由一定数量连续的块组成的逻辑存储结构,是,Oracle,进行存储分配的单位。,段(,Segment,)段是由一个或多个区组成的逻辑存储结构,可以用来保存特定的模式对象(表、索引等)。段可以分为数据段、索引段、临时段和回退段四类。,表空间(,Tablespace,)表空间是最高一级的逻辑存储单元,是连接逻辑存储结构和物理。,Oracle,数据库逻辑存储结构,Oracle,存储结构,2.,物理存储结构,在操作系统级,,Oracle,以文件的形式组织和管理数据,而这些文件是存储在物理存盘上的,是具体的物理存在,因此把这种结构叫物理存储结构。,Oracle,物理存储结构组成包括:,数据文件 数据文件用来存储所有的数据库数据。,控制文件 控制文件用来存储数据库的物理结构等信息。,重做日志文件 重做日志文件用来记录对数据库的所有修改信息。,Oracle,数据库逻辑存储结构,Oracle,存储结构,3.,模式对象,模式是一个数据库对象的集合。,表,Oracle,数据库中基本的数据单元。,视图 从表或视图中抽取出来的数据的表现形式。,序列,Oracle,自动生成的一个代码唯一的连续数值列。,索引 一种与表相关的数据结构。利用索引,,Oracle,能够提高数据检索的性能。,程序单元 包括存储过程、函数、程序包、触发器等。,同义词 表、索引、视图或其它模式对象的一个别名。,簇 一组由于共享公共列而在物理上存放在一起的一个或多个表。,Oracle,数据库逻辑存储结构,块,1.,标准块,是,Oracle,存储结构的最小单位,是,Oracle,进行存储管理的最小单元。,初始化参数,DB_BLOCK_SIZE,指定的数据块被称为标准块。标准数据块是在创建数据库时设定的,数据库创建完成后,该参数就不能改变。,标准块的大小可以通过以下方式获得,:,SHOW PARAMETER DB_BLOCK_SIZE,或者,SELECT NAME,,,TYPE,,,VALUE FROM V$PARAMETER,WHERE NAME=,db_block_size,;,Oracle,数据库逻辑存储结构,块,2.,非标准块,在,Oracle 9i,中,还允许另外使用,5,种非标准大小的块。这些非标准块必须在创建表空间时设置的,它表示该表空间的数据块将采用非标准数据块。,DB_2K_CACHE_SIZE 2KB,非标准数据块,DB_4K_CACHE_SIZE 4KB,非标准数据块,DB_8K_CACHE_SIZE 8KB,非标准数据块,DB_16K_CACHE_SIZE 16KB,非标准数据块,DB_32K_CACHE_SIZE 32KB,非标准数据块,Oracle,数据库逻辑存储结构,块,3.,块的结构,块的内部划分成块头,表目录,行目录,可存取空间等。,Oracle,数据库逻辑存储结构,块,4.,块的管理方式,数据块对,Oracle,性能最主要的影响在于行迁移现象。因此,对块的管理主要是针对块中可用存储区的管理,减少行迁移现象的发生。,自动管理方式,手工管理方式,Oracle,数据库逻辑存储结构,块,5.,存储参数,PCTFREE,该参数是一个百分数,是空闲存储区与整个数据块大小的比值。,PCTUSED,该参数是一个百分数,是已用存储空间与整个数据块大小的比值,是块重新处于可用状态的标志。,Oracle,数据库逻辑存储结构,块,5.,存储参数,查询,SCOTT,用户的所有表的,PCTFREE,和,PCTUSED,参数。,SELECT TABLE_NAME,,,PCT_FREE,,,PCT_USED,FROM DBA_TABLES,WHERE OWNER=SCOTT,;,输出结果为:,TABLE_NAME PCT_FREE PCT_USED,-,BONUS 10 40,DEPT 10 40,EMP 10 40,SALGRADE 10 40,Oracle,数据库逻辑存储结构,块,5.,存储参数,通过,ALTER,直接对每一个表修改它的,PCTFREE,和,PCTUSED,参数。,如修改用户,SCOTT,的,DEPT,表的这两个参数。,ALTER TABLE SCOTT.DEPT,PCTFREE 20,PCTUSED 30,;,输出结果为:,表已更改。,Oracle,数据库逻辑存储结构,块,5.,存储参数,INITTRANS,数据块中事务处理条目的初始数量,可以为,1,到,255,之间的值,缺省值为,1,。,MAXTRANS,数据块中事务处理条目的最大数量,可以为,1,到,255,之间的值,缺省值为,255,。,Oracle,数据库逻辑存储结构,块,5.,存储参数,查询,SCOTT,用户的所有表的,INITTRANS,和,MAXTRANS,参数。,SELECT TABLE_NAME,,,INI_TRANS,,,MAX_TRANS,FROM DBA_TABLES WHERE OWNER=SCOTT,;,输出结果为:,TABLE_NAME INI_TRANS MAX_TRANS,-,BONUS 1 255,DEPT 1 255,EMP 1 255,SALGRADE 1 255,Oracle,数据库逻辑存储结构,块,5.,存储参数,通过,ALTER,直接对每一个表修改它的,MAXTRANS,参数,,INITTRANS,不允许修改。,如修改用户,SCOTT,的,DEPT,表的这两个参数。,ALTER TABLE SCOTT.DEPT,MAXTRANS 200,;,输出结果为:,表已更改。,Oracle,数据库逻辑存储结构,块,6.,行迁移和记录链接,当,UPDATE,语句更新一条记录时,由于块中没有足够的存储空间,,Oracle,无法把这条记录完全存储在原有的块中。这时,,Oracle,将这条记录全部移到另一个新的块中,但在原来的块中留下一个指针指向新的块,这种处理方式叫行迁移。,Oracle,数据库逻辑存储结构,块,6.,行迁移和记录链接,如果一条记录太大(如字段的类型为,LONG,或,LONG RAW,),一个完整的数据块都无法保存一条记录,,Oracle,将把这条记录分成较小的片段(行片段),每一个行片段放在一个块中,然后通过指针连接所有的块,这种存储方式叫记录链接。,Oracle,数据库逻辑存储结构,区,区,(Extent),是,Oracle,进行存储空间分配的最小单位,是由一系列物理上连续的块组成的逻辑存储结构。区存在于段中,是段的组成单位。一个或多个数据块组成区,一个或多个区组成一个段。,1.,区的类型,从区的功能上看,所有区都是都是一样的,都是用来存储数据的,都是由连续的块组成。但是从区的位置上分,区可以分为初始区(,Initial Extent,)和后续区(,Incremental Extent,)两种。,Oracle,数据库逻辑存储结构,区,2.,区的分配方法,本地管理方式,自动分配 区大小由系统自动确定。由于,Oracle,可确定各区的最佳大小,所以区大小是可变的。,统一分配 区的大小由,Oracle,参数统一大小,可以指定区大小,也可使用默认值,(1 MB),。,字典管理方式,Oracle,数据库逻辑存储结构,区,3.,区的大小和数量,如果采用字典管理方式,必须对初始区和后续区的大小都要手工管理。设置区大小的参数有三个:,INITIAL,用来指定初始区的大小。,NEXT,用以指定第,1,个后续区的大小。,PCTINCREASE,用以指定第,2,个后续区及其它后续区的增长比例。,Oracle,数据库逻辑存储结构,区,3.,区的大小和数量,对于区的数量控制有两个参数:,MINEXTENTS,段中分配的最小区数,默认值为为,1,。,MAXEXTENTS,段中分配的最大区数,可以设置为无限制。在,Windows 2000,中,其默认值为,2147483645,。,Oracle,数据库逻辑存储结构,区,3.,区的大小和数量,查询,SCOTT,用户所有表的区存储参数。,SQLSELECT TABLE_NAME TABLENAME,,,INITIAL_EXTENT INI,,,2 NEXT_EXTENT NEXT,,,MIN_EXTENTS MIN,,,3 MAX_EXTENTS MAX,,,PCT_INCREASE PCT,4 FROM DBA_TABLES,5 WHERE OWNER=SCOTT,;,显示结果为:,TABLENAME INI NEXT MIN MAX PCT,-,BONUS 65536 1 2147483645,DEPT 65536 1 2147483645,EMP 65536 1 2147483645,Oracle,数据库逻辑存储结构,区,3.,区的大小和数量,通过查询,DBA_EXTENTS,,获得,SCOTT,用户所有表的区信息。,SQLSELECT SEGMENT_NAME,,,EXTENT_ID,,,BLOCK_ID,,,BYTES,,,BLOCKS,2 FROM DBA_EXTENTS,3 WHERE OWNER=SCOTT,4 ORDER BY BLOCK_ID,;,显示结果为:,SEGMENT_NAME EXTENT_ID BLOCK_ID BYTES BLOCKS,-,DEPT 0 50449 65536 8,PK_DEPT 0 50457 65536 8,EMP 0 50465 65536 8,PK_EMP 0 50473 65536 8,BONUS 0 50481 65536 8,SALGRADE 0 50489 65536 8,Oracle,数据库逻辑存储结构,区,4.,区的回收,通过以下方式可以回收一些空闲的区:,删除不用的模式对象,如表、索引等。删除模式对象时,,Oracle,会将该对象所在段的所有区回收。因此,对一些不用的模式对象要及时删除。,DBA,执行,ALTER TABLE DEALLOCATE UNUSED,命令,,Oracle,可以收回表中未使用的区。,表的所有者或对表具有,DELETE ANY,权限的用户,执行,TRUNCATE TABLE,table,DROP STORAGE,语句,,Oracle,可以回收表中未使用的区。,在创建回退段时使用,OPTIMAL,关键字,,Oracle,自动回收该回退段中空闲的区。,Oracle,数据库逻辑存储结构,段,1.,段的类型,在,Oracle,中,不同类型的模式对象拥有不同类型的段,主要段的类型包括:,数据段,(Data Segment),数据段用来存储表和簇的数据。主要包括表、分区的表和簇。,索引段,(Index Segment),索引段保存索引的索引条目。,临时段,(Temporary Segment),在临时表空间中保存临时操作的段。,回退段,(Rollback Segment),回退段主要用来保存数据被事务修改之前的原始数据。,Oracle,数据库逻辑存储结构,段,2.,段的管理方式,段管理是指如何管理段中的空闲空间和已用空间。段管理主要有两种方式:,自动管理方式,Oracle,采用位图管理段的存储空间。位图是一个映射,表示某段中可以插入数据的各个数据块的空间状态。数据块中的空闲空间增加或减少后,其新状态都会在位图中反映出来。,手工管理方式,Oracle,采用空闲列表管理段的存储空间。空闲列表保存有可以插入数据的可用空间的数据块的列表。,Oracle,建议采用自动管理方式,保存手工管理方式只是为了向后兼容。,Oracle,数据库逻辑存储结构,段,3.,段的大小和数量,查询,SCOTT,用户所有段的使用情况。,SQL SELECT SEGMENT_NAME,,,SEGMENT_TYPE,,,2 TABLESPACE_NAME,,,EXTENTS,,,BLOCKS,3 FROM DBA_SEGMENTS WHERE OWNER=SCOTT,;,显示结果为:,SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME EXTENTS BLOCKS,-,DEPT TABLE SYSTEM 1 8,EMP TABLE SYSTEM 1 8,BONUS TABLE SYSTEM 1 8,Oracle,数据库逻辑存储结构,段,3.,段的大小和数量,查询所有所有回退段的信息。,SQLSELECT TABLESPACE_NAME,,,INITIAL_EXTENT,,,2 MIN_EXTENTS,,,STATUS FROM DBA_ROLLBACK_SEGS,;,显示结果为:,TABLESPACE_NAME INITIAL_EXTENT MIN_EXTENTS STATUS,-,SYSTEM 114688 1 ONLINE,UNDOTBS1 131072 2 ONLINE,UNDOTBS1 131072 2 ONLINE,Oracle,数据库逻辑存储结构,表空间,表空间,(,Tablespace,),是,Oracle,数据库最高层次的逻辑存储结构,是由一系列数据文件组成的集合,其中保存着由段、区和块等逻辑存储结构描述的各种模式对象。表空间是数据文件的集合,也是段的集合。因此,可以将表空间看作是逻辑存储结构和物理存储结构之间的桥梁,表空间建立起了两者之间的对应关系。,Oracle,数据库逻辑存储结构,表空间,一个表空间必须包含一个或多个数据文件,但是一个数据文件只能属于一个表空间。一个数据库对象可以在一个数据文件中,也可以在多个数据文件中。,Oracle,数据库逻辑存储结构,表空间,1.,表空间管理方式,字典管理表空间,在数据字典中管理表空间的空间分配,本地管理的表空间,在每个数据文件中使用位图来管理空间的分配。,本地管理的表空间有速度快,无碎片等优点,建议用户表空间都采用本地管理方式。,2.,表空间的类型,系统表空间,(System,Tablespace,),临时表空间,(Temp,Tablespace,),撤销表空间,(UNDO,Tablespace,),用户表空间,(USER,Tablespace,),Oracle,数据库逻辑存储结构,表空间,3.,表空间的状态,表空间有两种状态:,联机状态,脱机状态。,当表空间处于联机状态时,用户可以访问该表空间中的数据。当表空间处于脱机状态时,用户不能访问该表空间中的数据。联机状态变为脱机状态在,DBA,或,Oracle,的管理下可以相互切换。,Oracle,数据库逻辑存储结构,表空间,3.,表空间的查询,SQLSELECT TABLESPACE_NAME,,,STATUS,2 FROM DBA_TABLESPACES,3 WHERE CONTENTS=UNDO,;,TABLESPACE_NAME STATUS,-,SYSTEM ONLINE,UNDOTBS1 ONLINE,TEMP ONLINE,Oracle,数据库逻辑存储结构,表空间,3.,表空间的查询,通过数据字典,DBA_FREE_SPACE,查询表空间的可用空间状态。,SQLSELECT TABLESPACE_NAME,,,SUM(BYTES),2 FROM DBA_FREE_SPACE,3 GROUP BY TABLESPACE_NAME,;,结果显示为:,TABLESPACE_NAME SUM(BYTES),-,CWMLITE 11141120,DRSYS 10813440,EXAMPLE 524288,其中,,SUM(BYTES),为总的可用空间。,表空间概述,表空间的类型,系统表空间,临时表空间,撤销表空间,用户表空间,表空间概述,表空间管理原则,创建多个表空间,设置表空间的默认存储参数,为用户设置表空间限额,创建表空间,创建表空间命令,创建表空间的,CREATE TABLESPACE,命令语法如下:,CREATE UNDO TABLESPACE,tablespace,DATAFILE,datafile_file_spec,datafile_file_spec,.,MINIMUM EXTENT integer K|M,|BLOCKSIZE integer K,|LOGGING|NOLOGGING,|DEFAULT,storage_clause,|ONLINE|OFFLINE,|PERMANENT|TEMPORARY,|,extent_management_clause,|,segment_management_clause,;,创建表空间,创建表空间命令,命令中各关键字和参数说明如下:,UNDO,创建的表空间为撤销表空间。,tablespace,定义要创建的表空间名字。表空间的名称不能超过,30,个字符,必须以字母开头,可以包括字母、数字以及一些特殊字符(如,#,、,_,和,$,)。,datafile_file_spec,表空间中数据文件的定义子句。可以在创建表空间命令中设置多个,datafile_file_spec,参数,这样能够在表空间中同时建立多个数据文件。,MINIMUM EXTENT,指定表空间中区的最小值。如果指定该参数,表中所有区的大小均是其整数倍。,创建表空间,创建表空间命令,命令中各关键字和参数说明如下:,BLOCKSIZE,该表中数据块的大小。在创建非标准数据块的表空间中需要定义,并且需要在初始化参数文件中通过,DB_nK_CACHE_SIZE,设置。缺省为标准数据块大小。,DEFAULT,storage_clause,表空间缺省存储子句,其参数决定表空间中缺省的区分配方式。存储子句的语法和参数已在上一节中介绍过。,LOGGING|NOLOGGING,指定日志属性,设置将来的表、索引等是否需要进行日志处理。缺省为要记录日志。,ONLINE|OFFLINE,设置表空间创建后为联机状态还是脱机状态,缺省值为联机。,创建表空间,创建表空间命令,命令中各关键字和参数说明如下:,PERMANENT,TEMPORARY,是说明表空间是用户表空间或是临时表空间。缺省值为用户表空间。,extent_management_clause,区存储管理子句,定义该表空间中区的存储管理方式。,segment_management_clause,段存储管理子句,定义该表空间中段的存储管理方式。,创建表空间,创建用户表空间,.,创建本地管理方式的表空间,提高了存储分配的速度。,改善了存储管理的性能。,支持只读数据库。,简化了表空间的存储管理操作。,降低了表空间对数据字典的依赖性。,创建表空间,创建用户表空间,.,创建本地管理方式的表空间,SQLCREATE TABLESPACE USER01,2 DATAFILE,3 D:ORACLEORADATAORADB01USERDATA01.DBF,4 SIZE 5M,5 EXTENT MANAGEMENT LOCAL;,结果显示为:,表空间已创建。,其中,EXTENT MANAGEMENT LOCAL,子句可以省略。,Oracle 9i,默认使用本地管理方式创建表空间。,创建表空间,创建用户表空间,.,创建本地管理方式的表空间,(,1,)本地管理表空间中指定区的分配管理方式,在用,CREATE TABLESPACE,语句创建本地管理的表空间时,可以通过区存储管理子句(,EXTENT MANAGEMENT,)来为表空间设置区的分配管理方式。区的分配管理方式有两种:,AUTOALLOCATE,和,UNIFORM,。,创建表空间,创建用户表空间,.,创建本地管理方式的表空间,(,1,)本地管理表空间中指定区的分配管理方式,创建一个,AUTOALLOCATE,方式的本地管理表空间:,SQL CREATE TABLESPACE USER02,2 DATAFILE,3 D:ORACLEORADATAORADB01USERDATA02.DBF,4 SIZE 5M,5 EXTENT MANAGEMENT LOCAL AUTOALLOCATE,;,创建表空间,创建用户表空间,.,创建本地管理方式的表空间,(,1,)本地管理表空间中指定区的分配管理方式,创建一个,UNIFORM,方式的本地管理表空间,表空间所有区的大小都是,128KB,:,SQL CREATE TABLESPACE USER03,2 DATAFILE,3 D:ORACLEORADATAORADB01USERDATA03.DBF SIZE 5M,4 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K,;,创建表空间,创建用户表空间,.,创建本地管理方式的表空间,(,2,)本地管理表空间中指定段的存储管理方式,在创建表空间的命令中,段存储管理子句(,SEGMENT SPACE MANAGEMENT,)设置段管理方式。段的存储管理方式分为,MANUAL,和,AUTO,两种。,创建表空间,创建用户表空间,.,创建本地管理方式的表空间,(,2,)本地管理表空间中指定段的存储管理方式,下面的语句创建一个,MANUAL,方式段存储管理的本地管理表空间:,SQL CREATE TABLESPACE USER04,2 DATAFILE,3 D:ORACLEORADATAORADB01USERDATA04.DBF SIZE 5M,4 EXTENT MANAGEMENT LOCAL,5 SEGMENT SPACE MANAGEMENT MANUAL,;,创建表空间,创建用户表空间,.,创建本地管理方式的表空间,(,2,)本地管理表空间中指定段的存储管理方式,下面的语句创建了一个,AUTO,方式进行段存储管理的本地管理表空间:,SQL CREATE TABLESPACE USER05,2 DATAFILE,3 D:ORACLEORADATAORADB01USERDATA05.DBF SIZE 5M,4 EXTENT MANAGEMENT LOCAL,5 SEGMENT SPACE MANAGEMENT AUTO,;,创建表空间,创建用户表空间,2.,创建字典管理的表空间,下面的语句创建一个字典管理的表空间:,SQLCREATE TABLESPACE USER06,2 DATAFILE,3 D:ORACLEORADATAORADB01USERDATA06.DBF SIZE 5M,4 EXTENT MANAGEMENT DICTIONARY,5 DEFAULT STORAGE(,6 INITIAL 50K,7 NEXT 50K,8 MINEXTENTS 2,9 PCTINCREASE 0,10 MAXEXTENTS 50),;,创建表空间,创建临时表空间,1.,创建本地管理方式的临时表空间,SQLCREATE TEMPORARY TABLESPACE USERTEMP,2 TEMPFILE,3 D:ORACLEORADATAORADB01USERTEMP01.DBF,4 SIZE 50M REUSE,5 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M,;,创建表空间,创建临时表空间,1.,创建本地管理方式的临时表空间,在一个数据库实例中,只能有一个默认临时表空间。如果需要将新建的临时表空间设置为默认临时表空间,还必须执行下列语句:,SQLALTER DATABASE DEFAULT,2 TEMPORARY TABLESPACE,3 USERTEMP,;,创建表空间,创建临时表空间,2.,创建字典管理方式的临时表空间,SQL CREATE TABLESPACE USERTEMP02,2 DATAFILE D:ORACLEORADATAORADB01USERTEMP02,3 SIZE 50M,4 EXTENT MANAGEMENT DICTIONARY,5 DEFAULT STORAGE(,6 INITIAL 2M,7 NEXT 2M,8 MINEXTENTS 1,9 PCTINCREASE 0),10 TEMPORARY,;,创建表空间,创建非标准块的表空间,2.,创建字典管理方式的临时表空间,SQLCREATE TABLESPACE USERDATA07,2 DATAFILE,3 D:ORACLEORADATAORADB01USERDATA07.DBF SIZE 5M,4 EXTENT MANAGEMENT DICTIONARY,5 BLOCKSIZE 16K,6 DEFAULT STORAGE(,7 INITIAL 128K NEXT 256K,MINEXTENTS 2 PCTINCREASE 20,MAXEXTENTS 50),;,修改表空间默认存储参数,如果表空间是本地管理方式的,在创建时不能指定默认存储参数,只能设置为,AUTOALLOCATE,或,UNIFORM,方式,并且在表空间创建之后不能更改;如果表空间是字典管理方式的,则不仅可以在创建时设置默认存储参数,而且还可以在创建后通过修改存储参数对表空间的存储管理方式进行更改。,修改表空间默认存储参数,对于字典管理方式的表空间,影响表空间中段的存储分配的参数,即存储参数,包含在,CREATE TABLESPACE,的存储子句中。这些参数有:,INITIAL,定义分配给段的第一个区大小。表空间一旦创建后,不能修改,INITIAL,的大小,NEXT,定义分配给段的第二个区大小,PCTINCREASE,定义第二个区以后分配的区增长比例,MINEXTENTS,段在创建时初始分配的区数目,MAXEXTENTS,段可以分配的最大区数目,修改表空间默认存储参数,修改默认表空间的命令为,ALTER TABLESPACE,命令,该命令的格式为:,ALTER TABLESPACE,tablespace,datafile_tempfile_clauses,|DEFAULT,storage_clause,|MINIMUM EXTENT integer K|M,;,例,:,执行下面的命令修改表空间默认的存储参数:,SQLALTER TABLESPACE USERDATA07,2 DEFAULT STORAGE(,3 NEXT 512K,4 MAXEXTENTS UNLIMITED),;,改变表空间的可用性,基于下列原因,有可能要将一个表空间设为脱机状态:,禁用数据库的某一部分数据,但允许访问数据库中的其他部分,进行脱机表空间的备份(尽管表空间可以在联机状态和使用中备份),在数据库打开状态下恢复表空间或数据文件,改变表空间可用性的命令为:,ALTER TABLESPACE,tablespace,|ONLINE,|OFFLINE NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER,;,改变表空间的可用性,该语句中个参数的含义如下:,ONLINE,切换表空间为联机状态。,OFFLINE,切换表空间为脱机状态。它包括四个可选参数:,NORMAL,正常方式脱机,IMMEDIATE,立即方式脱机,TEMPORARY,临时方式脱机,FOR RECOVER,恢复脱机方式,改变表空间的可用性,使用下面的语句将表空间设为脱机状态:,SQLALTER TABLESPACE,2 USERDATA01 OFFLINE NORMAL,;,使用下面的语句将表空间设为联机状态:,SQLALTER TABLESPACE,2 USERDATA01 ONLINE,;,设置表空间的读写模式,任何表空间在初始创建时都是可读写的,但是可以根据需要改变表空间的读写属性。只读状态下的表空间,用户不能对表空间的数据文件进行写操作。设置只读表空间可以消除数据库操作过程中对大量静态数据的备份操作,提高了数据库的执行速度,同时这也是一种很好的保护数据的方法,可以防止对不能修改的表空间中的数据进行写操作。,只读状态的表空间不能创建和修改对象,但能够从其中删除对象,比如表或索引等,因为这些删除操作只影响数据字典,而不会更改表空间对应的数据文件。,设置表空间只读语句为:,ALTER TABLESPACE,tablespace,READ ONLY|WRITE,设置表空间的读写模式,1.,设置表空间只读,要将表空间设置为只读,需要满足下列条件:,表空间的所有数据文件必须处于联机状态。,表空间不包含任何活动的回滚段。基于这个原因,,SYSTEM,表空间不能设置为只读表空间,因为其中包含一个回滚段。,表空间不能正在进行联机备份操作。因为联机备份结束后,,Oracle,将对数据文件的头部信息进行更新。,设置只读表空间的语句如下:,SQLALTER TABLESPACE USERS READ ONLY,;,设置表空间的读写模式,2.,设置表空间为读写状态,要将表空间恢复成读写状态,必须保证表空间的所有数据文件都处于联机状态,同时表空间本身也处于联机状态。,下面的语句将表空间恢复成读写状态:,SQLALTER TABLESPACE USERS,2 READ WRITE,;,设置表空间的读写模式,3.,在,WORM,设备上创建只读表空间,WORM(Write,Once-Read Many),设备是指类似,CD-R,的写一次读多次设备。,WORM,设备是存储只读表空间的理想设备。在,WORM,设备上创建只读表空间的步骤如下:,(,1,)在硬盘中创建读写表空间,然后将静态数据写入其中。,(,2,)将表空间设置为只读状态。,(,3,)将表空间的数据文件复制到,WORM,设备中。,(,4,)将表空间设置为脱机状态。,(,5,)使用带有,RENAME DATAFILE,子句的,ALTER TABLESPACE,语句重命名组成表空间的数据文件,使其指向,WORM,设备中的数据文件。,(,6,)重新使表空间联机。,删除表空间,删除无用的表空间。,删除表空间命令的语法如下:,DROP TABLESPACE,tablespace,INCLUDING CONTENTS AND DATAFILES,CASCADE CONSTRAINTS,;,各参数的含义如下:,tablespace,要删除的表空间名。,INCLUDING CONTENTS,删除表空间中的所有的数据库对象。如果表空间中没有任何对象,则可以不选此项。,AND DATAFILES,删除表空间所包含的数据文件,但这些文件必须具有,OMF,特征。如果不选此项,,Oracle,不会自动删除该表空间的数据文件,需要,DBA,手工删除。,CASCADE CONSTRAINTS,如果其它表空间引用了该表空间中表的主键或者唯一键,选择此项可以删除其他表空间所有指示完整性的约束条件。,删除表空间,如果一个表空间中包含了数据库对象,使用下面的语句来进行删除:,SQLDROP TABLESPACE USERDATA01,2 INCLUDING CONTENTS,;,如果表空间是空的,没有包含任何表、视图或其他对象,那么无需使用,INCLUDING CONTENTS,子句。,删除表空间,如果其他表空间引用了要删除的表空间中表的主键或者唯一键,那么需要使用,CASCADE CONSTRAINTS,子句来删除其他表空间所有指示完整性的约束条件,比如使用下面的语句:,SQLDROP TABLESPACE USERDATA01,2 INCLUDING CONTENTS,3 CASCADE CONSTRAINTS,;,删除表空间,默认情况下,删除表空间时,,Oracle,只是在控制文件和数据字典中删除与表空间和数据文件间相关的信息,但不会在操作系统中删除相应的数据文件。因此,成功执行删除表空间的操作后,需要手工删除操作系统中的数据文件。如果要在删除表空间的同时删除对应的数据文件,需要显式指定,INCLUDEING CONTENTS AND DATAFILES,子句:,SQLDROP TABLESPACE USERDATA01,2 INCLUDING CONTENTS AND DATAFILES,;,删除表空间,删除表空间需要注意以下几点:,在表空间删除之前,必须确认其中的数据不需要再使用。,不选用,INCLUDING CONTENTS,参数,则无法删除包含有数据的表空间。,不能删除,SYSTEM,表空间。,不选择,AND DATAFILES,参数,只能删除控制文件和数据字典中的数据文件信息,操作系统的数据文件仍然存在,需要手工删除。选择此项参数,也只能自动删除具有,OMF,特征的数据文件。,可以删除只读状态的表空间。,删除表空间之前,最好将表空间设置为脱机状态,这样可以确保该表空间中没有活动的事务。,查询表空间信息,视 图 名 称,说 明,V$TABLESPACE,从控制文件中获得所有表空间的名称和数量。,DBA_TABLESPACES,USER_TABLESPACES,描述所有(当前用户)表空间的信息。,DBA_SEGMENTS,USER_SEGMENTS,描述所有(当前用户)表空间中各个段的信息。,DBA_EXTENTS,USER_EXTENTS,描述所有(当前用户)表空间中各个区的信息。,DBA_FREE_SPACE,USER_FREE_SPACE,描述所有(当前用户)表空间中可用区的信息。,V$DATAFILE,描述表空间中所有数据文件的信息,V$TEMPFILE,描述临时表空间中数据文件的信息,与表空间有关的数据字典用户视图和动态性能视图,查询表空间信息,通过查询,V$TABLESPACE,视图可以获得数据库中所有的表空间。,SQLSELECT NAME FROM V$TABLESPACE,;,显示结果为:,NAME,-,SYSTEM,UNDOTBS1,TEMP,查询表空间信息,查询,DBA_TABLESPACES,视图可以获得数据库中所有表空间的基本信息,SQLSELECT TABLESPACE_NAME TABLESPACE,2 EXTENT_MANAGEMENT EXTENT,3 ALLOCATION_TYPE ALLOCATION,4 CONTENTS,5 SEGMENT_SPACE_MANAGEMENT SEGMENT,6 FROM DBA_TABLESPACES,;,显示结果为:,TABLESPACE EXTENT ALLOCATION CONTENTS SEGMENT,-,SYSTEM LOCAL SYSTEM PERMANENT MANUAL,UNDOTBS1 LOCAL SYSTEM UNDO MANUAL,TEMP LOCAL UNIFORM TEMPORARY MANUAL,查询表空间信息,查询该视图还可以获得各表空间的存储参数,如:,SQL SELECT TABLESPACE_NAME NAME,2 INITIAL_EXTENT INIT,3 NEXT_EXTENT NEXT,4 MIN_EXTENTS MIN,5 MAX_EXTENTS MAX,6 PCT_I
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服