1、2023-12-211第三章第三章 表空间和数据文件管理表空间和数据文件管理3.1 表空间和数据文件概述3.2 创建表空间3.3 维护表空间和数据文件3.4 查看表空间和数据文件信息Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2123.1 表空间和数据文件概述表空间和数据文件概述l表空间是Oracle数据库中最大的逻辑存储结构,它与操作系统中的数据文件相对应,用于存储数据库中用户创建的所有内容。可以将表空间看作是数据库对象的容器,表空间的逻辑存储单位是段,数据库的所有对象、方案对象都被逻辑地保存在表空间中。表空间提供了一套有效组织数据的方法,它不仅对数据库的性能
2、有重要的影响,而且对简化管理有明显的作用。一个表空间由一个或多个数据文件组成,数据文件是存储数据库所有逻辑结构数据的操作系统文件。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-213表空间的作用表空间的作用lOracle数据库把方案对象逻辑地存储在表空间中,同时把它们物理地存储在数据文件中,而数据文件又物理地分布在各个磁盘中。表空间具有以下作用:l1)控制数据库所占用的磁盘空间。l2)控制用户所占用的空间配额。l3)通过将不同类型数据部署到不同的位置,可以提高数据库的I/O性能,并且有利于备份和恢复等管理操作。l4)可以将表空间设置成只读状态而保持大量的静态数据。
3、Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-214默认表空间默认表空间l对于Oracle中新建的数据库,系统自动添加了6个默认的表空间,分别是:l1)EXAMPLE表空间:用于安装Oracle数据库使用示例数据库。l2)SYSTEM表空间:系统表空间,用于存放数据字典对象,包括表、视图、存储过程的定义等,默认的数据文件为“system01.dbf”。l3)SYSAUX表空间:SYSAUX表空间是在Oracle 10g中引入的作为SYSTEM表空间的一个辅助表空间,其主要作用是为了减少SYSTEM表空间的负荷,默认的数据文件是“sysaux01.dbf”;这个表空
4、间和SYSTEM表空间一样不能被删除、更名、传递或设置为只读。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-215默认表空间默认表空间l4)TEMP表空间:临时表空间,用于存储数据库运行过程中由排序和汇总等操作产生的临时数据信息,默认的数据文件是“temp01.dbf”。l5)UNDOTBS1表空间:撤销表空间,用于存储撤销信息,默认的数据文件为“undotbs01.dbf”。l6)USERS表空间:用户表空间,存储数据库用户创建的数据库对象,默认的数据文件为“user01.dbf”。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-21
5、6表空间的状态属性表空间的状态属性l通过设置表空间的状态属性,可以对表空间的使用进行管理。表空间的状态属性主要有联机、读写、只读和脱机等四种状态,其中只读状态与读写状态属于联机状态的特殊情况。l1)联机状态(ONLINE)l表空间通常处于联机状态,以便数据库用户访问其中的数据。l2)读写状态(READ-WRITE)l读写状态是表空间的默认状态,当表空间处于读写状态时,用户可以对表空间进行正常的数据查询、更新和删除等各种操作。读写状态实际上为联机状态的一种特殊情况,只有当表空间处于只读状态下才能转换到读写状态。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-217表空
6、间的状态属性表空间的状态属性l3)只读状态(READ-ONLY)l当表空间处于只读状态时,任何用户都无法向表空间中写入数据,也无法修改表空间中已有的数据,用户只能以SELECT方式查询只读表空间中的数据。将表空间设置成只读状态可以避免数据库中的静态数据被修改。如果需要更新一个只读表空间,需要将该表空间转换到可读写状态,完成数据更新后再将表空间恢复到只读状态。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-218表空间的状态属性表空间的状态属性l4)脱机状态(OFFLINE)l当一个表空间处于脱机状态时,Oracle不允许任何访问该表空间中数据的操作。当数据库管理员需
7、要对表空间备份或恢复等维护操作时,可以将表空间设置为脱机状态;如果某个表空间暂时不允许用户访问,DBA也可以将这个表空间设置为脱机状态。l【例题例题3-1】通过数据字典dba_tablespaces,查看当前数据库中表空间的状态。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-219数据文件数据文件l数据文件是Oracle数据库中用来存储各种数据的地方,在创建表空间的同时将为表空间创建相应的数据文件。一个数据文件只能属于一个表空间,一个表空间可以有多个数据文件。在对数据文件进行管理时,数据库管理员可以修改数据文件的大小、名称、增长方式和存放位置,并能够删除数据文件。
8、Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-21103.2 创建表空间创建表空间l在创建Oracle数据库时会自动创建SYSTEM、SYSAUX和USERS等表空间,用户可以使用这些表空间进行各种数据操作。但在实际应用中,如果使用系统创建的这些表空间会加重它们的负担,严重影响系统的I/O性能,因此Oracle建议根据实际需求来创建不同的非系统表空间,用来存储所有的用户对象和数据。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-21113.2 创建表空间创建表空间l创建表空间需要有CREATE TABLESPACE系统权限。在创建表空间
9、时应该事先创建一个文件夹,用来放置新创建表空间的各个数据文件。当通过添加数据文件来创建一个新的表空间或修改一个表空间时,应该给出文件大小和带完整存取路径的文件名。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-21123.2 创建表空间创建表空间l在表空间的创建过程中,Oracle会完成以下工作:l1)在数据字典和控制文件中记录下新创建的表空间。l2)在操作系统中按指定的位置和文件名创建指定大小的操作系统文件,作为该表空间对应的数据文件。l3)在预警文件中记录下创建表空间的信息。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2113创建
10、表空间的一般命令创建表空间的一般命令l1.创建表空间命令的语法结构创建表空间命令的语法结构lCREATE TEMPORARY|UNDO TABLESPACE tablespace_namelDATAFILE|TEMPFILE file_spec1,file_spec2.SIZE size K|M REUSElMININUM EXTENT integer K|MlBLOCKSIZE integer klLOGGING|NOLOGGINGlFORCE LOGGINGlDEFAULT data_segment_compression storage_clauselONLINE|OFFLINElPER
11、MANENT|TEMPORARYlEXTENT MANAGEMENT DICTIONARY|LOCALlAUTOALLOCATE|UNIFORM SIZE numberlSEGMENT MANAGEMENT AUTO|MANUALOracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2114创建表空间的一般命令创建表空间的一般命令l2.语法说明语法说明l1)TEMPORARY|UNDOl说明系统创建表空间的类型。TEMPORARY表示创建一个临时表空间。UNDO表示创建一个撤销表空间。创建表空间时,如果没有使用关键字TEMPORARY或UNDO,表示创建永久性表空间。l2
12、)tablespace_namel指定表空间的名称。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2115创建表空间的一般命令创建表空间的一般命令l3)datafile file_spec1l指定与表空间关联的数据文件。file_spec1需要指定数据文件路径和文件名。如果要创建临时表空间,需要使用子句TEMPFILE file_spec1。l4)SIZE size k|M REUSEl指定数据文件的大小。如果要创建的表空间的数据文件在指定的路径中已经存在,可以使用REUSE关键字将其删除并重新创建该数据文件。l5)MININUM EXTENT integer K
13、|Ml指出在表空间中盘区的最小值。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2116创建表空间的一般命令创建表空间的一般命令l6)BLOCKSIZE integer kl如果在创建永久性表空间时不采用参数db_block_size所指定的数据块的大小,可以使用此子句设定一个数据块的大小。l7)LOGGING|NOLOGGINGl这个子句声明这个表空间上所有的用户对象的日志属性(缺省是LOGGING)。l8)FORCE LOGGINGl使用这个子句指出表空间进入强制日志模式,这时表空间上对象的任何改变都将产生日志,并忽略LOGGING|NOLOGGING选项。在
14、临时表空间和撤销表空间中不能使用这个选项。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2117创建表空间的一般命令创建表空间的一般命令l9)DEFAULT storage_clausel声明缺省的存储子句。l10)ONLINE|OFFLINEl将表空间的状态设置为联机状态(ONLINE)或脱机状态(OFFLINE)。ONLINE是缺省值,表示表空间创建后立即可以使用;OFFLINE表空间不可以使用。l11)PERMANENT|TEMPORARYl指定表空间中数据对象的保存形式,PERMANENT永久存放,TEMPORARY表示临时存放。Oracle数据库应用与开
15、发案例教程数据库应用与开发案例教程2023-12-2118创建表空间的一般命令创建表空间的一般命令l12)EXTENT MANAGEMENT DICTIONARY|LOCALl指定表空间的管理方式。如果希望本地管理表空间,声明LOCAL选项,这是默认选项,本地管理表空间是通过位图进行管理的;如果希望以数据字典的形式管理表空间,声明DICTIONARY选项。l13)AUTOALLOCATE|UNIFORM SIZE numberl指定表空间的盘区大小。AUTOALLOCATE表示盘区大小由Oracle自动分配;UNIFORM SIZE number表示表空间中所有盘区大小统一为number。l1
16、4)SEGMENT MANAGEMENT AUTO|MANUALl指定段空间的管理方式,自动或者手动,默认为AUTO。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2119创建(永久)表空间创建(永久)表空间l如果在使用CREATE TABLESPACE语句创建表空间时,没有使用关键字TEMPORARY或UNDO,或者使用了关键字PERMANENT,则表示创建的表空间是永久保存数据库对象数据的永久表空间。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2120创建(永久)表空间创建(永久)表空间l1.创建本地管理方式的永久表空间创建本地
17、管理方式的永久表空间l根据表空间对盘区的管理方式,表空间可以分为数据字典管理的表空间和本地管理的表空间。本地管理表空间使用位图的方法来管理表空间中的数据块,从而避免了使用SQL语句引起的系统性能下降,Oracle建议在建立表空间时选择本地管理方式。l从Oracle 9i R2后,系统创建的表空间在默认情况下都是本地管理表空间。在使用CREATE TABLESPACE语句创建表空间时,如果省略了EXTENT MANAGEMENT子句,或者显式地使用了EXTENT MANAGEMENT LOCAL子句,表示所创建的是本地管理方式的表空间。l【例题【例题3-2】创建永久表空间ZCGL_TBS1,采用
18、本地管理方式。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2121创建(永久)表空间创建(永久)表空间l2.创建创建UNIFORM盘区分配方式的永久表空间盘区分配方式的永久表空间l如果在EXTENT MANAGEMENT子句中指定了UNIFORM关键字,则说明表空间中所有的盘区都具有统一的大小。l【例题【例题3-3】创建永久表空间ZCGL_TBS2,采用本地管理方式,表空间中所有分区大小都是128KB。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2122创建(永久)表空间创建(永久)表空间l3.创建创建ALLOCATE盘区分配方式
19、的表空间盘区分配方式的表空间l如果在EXTENT MANAGEMENT子句中指定了AUTOALLOCATE关键字,则说明盘区大小由Oracle进行自动分配,不需要指定大小,盘区大小的指定方式默认是AUTOALLOCATE。l【例题【例题3-4】创建一个AUTOALLOCATE方式的本地管理表空间。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2123创建临时表空间创建临时表空间l临时表空间主要用来存储用户在执行ORDER BY等语句进行排序或汇总时产生的临时数据信息。通过使用临时表空间,Oracle能够使带有排序等操作的SQL语句获得更高的执行效率。在数据库中创建
20、用户时必须为用户指定一个临时表空间来存储该用户生成的所有临时表数据。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2124创建临时表空间创建临时表空间l创建临时表空间时需要使用CREATE TEMPORARY TABLESPACE命令。如果在数据库运行过程中经常发生大量的并发排序,那么应该创建多个临时表空间来提高排序性能。l【例题例题3-5】创建一个名ZCGL_TEMP1的临时表空间,大小为20M,并使用UNIFORM选项指定盘区大小统一为128K。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2125创建撤销表空间创建撤销表空间lO
21、racle使用撤销表空间来管理撤销数据。当用户对数据库中的数据进行DML操作时,Oracle会将修改前的旧数据写入到撤销表空间中;当需要进行数据库恢复操作时,用户会根据撤销表空间中存储的这些撤销数据来对数据进行恢复,所以说撤销表空间用于确保数据的一致性。撤销表空间只能使用本地管理方式,在临时表空间、撤销表空间上都不能创建永久方案对象(表、索引、簇)。l可以通过执行CREATE UNDO TABLESPACE选项来创建UNDO表空间。l【例题例题3-6】创建名称为ZCGL_UNDO1的撤销表空间,该表空间的空间管理方式为本地管理,大小为20M,盘区的大小由系统自动分配。Oracle数据库应用与开
22、发案例教程数据库应用与开发案例教程2023-12-2126创建非标准块表空间创建非标准块表空间lOracle数据块是Oracle在数据文件上执行I/O操作的最小单位,其大小应该设置为操作系统物理块的整数倍。初始化参数DB_BLOCK_SIZE定义了标准数据块的大小,在创建数据库后就不能再修改该参数的值。当创建表空间时,如果不指定BLOCKSIZE选项,那么该表空间将采用由参数DB_BLOCK_SIZE决定的标准数据块大小。Oracle允许用户创建非标准块表空间,在CREATE TABLESPACE命令中使用BLOCKSIZE选项来指定表空间数据块的大小。创建的非标准块表空间的数据块大小也应该是
23、操作系统物理块的倍数。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2127创建非标准块表空间创建非标准块表空间l在建立非标准块表空间之前,必须为非标准块分配非标准数据高速缓冲区参数db_nk_cache_size,并且数据高速缓存的尺寸可以动态修改。l【例题【例题3-7】为4KB数据块设置10MB的高速缓冲区,然后创建数据块大小为4KB的非标准数据块表空间。查看db_block_size参数的信息。为 4 K B 数 据 块 设 置 1 0 M B 的 高 速 缓 冲 区 参 数db_4k_cache_size。为非标准块分配了非标准数据高速缓存后,就可以创建非
24、标准块表空间了。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2128创建大文件表空间创建大文件表空间l从Oracle 10g开始,引入了大文件表空间,用于解决存储文件大小不够的问题。这种表空间只能包括一个数据文件或临时文件,其对应的文件可以包含4G个数据块。如果数据块大小为8KB,大文件表空间的数据文件最大可以达到32TB;如果块的大小是32KB,那么大文件表空间的数据文件最大可以达到128TB。因此能够显著提高Oracle数据库的存储能力。l【例题【例题3-8】创建名称为ZCGL_BIGTBS的大文件表空间,其大小为20MB。Oracle数据库应用与开发案例教
25、程数据库应用与开发案例教程2023-12-21293.3 维护表空间和数据文件维护表空间和数据文件l对数据库管理员而言,需要经常维护表空间。各种维护表空间的操作包括重命名表空间和数据文件,改变表空间和数据文件的状态,设置默认表空间,扩展表空间,删除表空间及数据文件,以及查看表空间和数据文件的信息等。用户可以使用ALTER TABLESPACE命令完成维护表空间和数据文件的各种操作,但该用户必须拥有ALTER TABLESPACE或ALTER DATABASE系统权限。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2130重命名表空间和数据文件重命名表空间和数据文件
26、l1.重命名表空间重命名表空间l通过使用ALTER TABLESPACE的RENAME选项,就可以修改表空间的名称。需要注意的是,SYSTEM表空间和SYSAUX表空间的名称不能被修改,如果表空间或其中的任何数据文件处于OFFLINE状态,该表空间的名称也不能被改变。重命名表空间的一般语法格式为:lALTER TABLESPACE tablespace_name RENAME TO tablespace_new_name;l说明:tablespace_name为重命名前表空间名称,tablespace_new_name为新的表空间名称。l【例题例题3-9】将表空间ZCGL_TBS3改名为ZCG
27、L_TBS3NEW。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2131重命名表空间和数据文件重命名表空间和数据文件l2.重命名数据文件重命名数据文件l当创建数据文件后,可以改变数据文件的名称。改变数据文件的名称的具体步骤如下:l 使表空间处于OFFLINE状态。l 用操作系统命令重命名数据文件l 使用带RENAME DATAFILE子句的ALTER TABLESPACE语句改变数据文件名称。l 将表空间重新设置为联机状态。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2132改变表空间和数据文件状态改变表空间和数据文件状态l表空间
28、主要有联机、读写、只读和脱机状态等四种状态,因此修改表空间的状态包括使表空间只读,使表空间可读写,使表空间脱机或联机。l1.设置表空间为只读状态设置表空间为只读状态l如果表空间只用于存放静态数据,或者该表空间需要被迁移到其他数据库时,应该将表空间的状态修改为只读,可以通过在ALTER TABLESPACE语句中使用READ ONLY子句来完成这一操作。将表空间设置为只读状态时,该表空间必须为ONLINE,并且该表空间不能包含任何撤销段。系统表空间SYSTEM和SYSAUX不能设置为只读状态。l【例题例题3-10】将表空间ZCGL_TBS1设置为只读状态。Oracle数据库应用与开发案例教程数据
29、库应用与开发案例教程2023-12-2133改变表空间和数据文件状态改变表空间和数据文件状态l2.设置表空间为可读写设置表空间为可读写l若想将表空间恢复为读写状态时,需要在ALTER TABLESPACE语句中使用READ WRITE子句。l【例题例题3-11】将表空间ZCGL_TBS1转变为READ WRITE状态,使表空间可读写。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2134改变表空间和数据文件状态改变表空间和数据文件状态l3.改变表空间可用性改变表空间可用性l当创建表空间时,表空间及其所有数据文件都处于ONLINE状态,此时表空间是可以被访问的。当表
30、空间或数据文件处于OFFLINE状态时,表空间和其数据文件就不可以被访问了。l1)将表空间设置为脱机OFFLINE状态l下列情况需要将表空间设置为脱机状态:需要对表空间备份或恢复等维护操作;某个表空间暂时不允许用户访问;需要移动特定表空间的数据文件,防止其中的数据文件被修改以确保数据文件的一致性。需要注意的是,SYSTEM和SYSAUX表空间不能被脱机。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2135改变表空间和数据文件状态改变表空间和数据文件状态l【例题例题3-12】将表空间ZCGL_TBS1转变为OFFLINE状态,使其脱机。l2)使表空间联机l完成了表
31、空间的维护操作后,应该将表空间设置为ONLINE状态,这样该表空间就可以被访问了。l【例题例题3-13】将表空间ZCGL_TBS1转变为ONLINE状态。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2136改变表空间和数据文件状态改变表空间和数据文件状态l4.改变数据文件可用性改变数据文件可用性l修改数据文件可用性的一般语法格式如下:lALTER DATABASE DATAFILE file_name ONLINE|OFFLINE|OFFLINE DROPl说明:数据文件的状态有三种,ONLINE表示数据文件可以使用;OFFLINE表示当数据库运行在归档模式下时
32、,数据文件不可以使用;OFFLIEN DROP表示数据库运行在非归档模式情况下时,数据文件不可以使用。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2137改变表空间和数据文件状态改变表空间和数据文件状态l【例题【例题3-14】将表空间ZCGL_TBS1中的数据文件ZCGL_TBS1_01.dbf设置为脱机状态OFFLINE。如果要将数据文件设置为脱机状态,需要将数据库启动到MOUNT状态下,设置数据库运行在归档模式下。使用ALTER DATABASE命令将数据文件ZCGL_TBS1_01.dbf设置为脱机状态。Oracle数据库应用与开发案例教程数据库应用与开发
33、案例教程2023-12-2138设置默认表空间设置默认表空间l在Oracle中,对于像SCOTT这样的普通用户来说,其初始默认表空间为USERS,默认临时表空间为TEMP;而对SYSTEM用户来说,其初始默认表空间为SYSTEM,默认临时表空间为TEMP。在创建新用户时,如果不为其指定默认表空间,系统会将上述初始的默认表空间作为这个用户的默认表空间,这将导致TEMP,USERS或SYSTEM等表空间迅速被用户数据占满,严重影响系统IO性能。可以使用ALTER DATABASE DEFAULT TABLESPACE命令来设置数据库的默认表空间;可以使用ALTER DATABASE DEFAULT
34、 TEMPORARY TABLESPACE语句来改变数据库的默认临时表空间。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2139设置默认表空间设置默认表空间l【例题【例题3-15】查看数据字典database_properties,查看当前用户使用的永久表空间与默认表空间。【例题【例题3-16】设置数据库的默认表空间为ZCGL_TBS1。【例题【例题3-17】设置数据库的默认临时表空间为ZCGL_TEMP1。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2140扩展表空间扩展表空间l数据文件的大小实际上代表了该数据文件在磁盘上的可用
35、空间。表空间的大小实际上就是其对应的数据文件大小的和。如果表空间中所有数据文件都已经被写满,那么向该表空间上的表中插入数据时,会显示错误信息。这种情况下必须扩展表空间来增加更多的存储空间。通常扩展表空间的方法有添加新的数据文件、改变数据文件的大小以及允许数据文件自动扩展等。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2141扩展表空间扩展表空间l1.添加新的数据文件添加新的数据文件l添加新的数据文件的一般语法格式为:lALTER TABLESPACE tablespace_namelADD DATAFILE datafilepathlSIZE nM;l说明:ta
36、blespace_name为表空间名称,datafilepath为数据文件路径,n为数据文件大小,单位为M。l【例题例题3-18】为表空间ZCGL_TBS1增加一个5MB的数据文件ZCGL_TBS1_02.dbf。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2142扩展表空间扩展表空间l2.改变数据文件的大小改变数据文件的大小l修改数据文件的大小需要使用ALTER DATABASE命令l【例题【例题3-19】将数据文件ZCGL_TBS1_01.dbf扩展为100M。通过数据字典DBA_DATA_FILES查看表空间ZCGL_TBS1中的数据文件信息。通过ALTE
37、R DATABASERESIZE命令将数据文件ZCGL_TBS1_01.dbf扩展为100M。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2143扩展表空间扩展表空间l在为表空间指定数据文件时,如果没有使用AUTOEXTEND选项,那么该数据文件将不允许自动扩展。为了使数据文件可以自动扩展,就必须指定AUTOEXTEND ON选项。当指定了AUTOEXTEND ON选项后,在表空间填满时,数据文件将自动扩展,从而扩展了表空间的存储空间。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2144扩展表空间扩展表空间l设置数据文件为自动扩展
38、的一般语法格式为:lALTER DATABASElDATAFILE datafilepathlAUTOEXTEND ON NEXT mM MAXSIZE maxM;【例题【例题3-20】将数据文件ZCGL_TBS1_01.dbf设置为自动扩展。【例题【例题3-21】取消数据文件ZCGL_TBS1_01的自动扩展性。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2145删除表空间和数据文件删除表空间和数据文件l1.删除表空间删除表空间l当表空间中的所有数据都不再需要时,或者当表空间因损坏而无法恢复时,可以将表空间删除,这要求用户具有DROP TABLESPACE系统
39、权限。默认情况下,Oracle在删除表空间时只是从数据字典和控制文件中删除表空间信息,而不会物理地删除操作系统中相应的数据文件。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2146删除表空间和数据文件删除表空间和数据文件l删除表空间的一般语法格式为:lDROP TABLESPACE tablespace_namelINCLUDING CONTENTS|INCLUDING CONTENTS AND DATAFILES;l说明:tablespace_name为要删除的表空间名称,INCLUDING CONTENTS选项表示删除表空间的所有对象,INCLUDING C
40、ONTENTS AND DATAFILES表示级联删除所有数据文件。【例题例题3-22】删除表空间ZCGL_TBS2。【例题例题3-23】在删除表空间ZCGL_TBS3NEW的同时删除它所对应的数据文件。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2147删除表空间和数据文件删除表空间和数据文件l2.删除数据文件删除数据文件l从Oracle 10g R2开始,允许从表空间中删除数据文件,但是该数据文件中不能包含任何数据。当数据文件处于以下三种情况时是不能被删除的:l1)数据文件中存在数据。l2)数据文件是表空间中唯一的或第一个数据文件。l3)数据文件或数据文件所
41、在的表空间处于只读状态。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2148删除表空间和数据文件删除表空间和数据文件l从表空间中删除数据文件,需要使用带DROP DATAFILE子句的ALTER TABLESPACE命令来完成,其一般语法格式为:lALTER TABLESPACE tablespace_namelDROP DATAFILE datafilepath;l说明:tablespace_name为要删除的数据文件所在的表空间名称,datafilepath为数据文件路径。l【例题例题3-24】删除表空间ZCGL_TBS1中的数据文件ZCGL_TBS1_03
42、.DBF。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-21493.4 查看表空间和数据文件信息查看表空间和数据文件信息l1.查看表空间信息查看表空间信息l可以通过查询有关数据字典来查看表空间信息l2.查看数据文件信息查看数据文件信息l可以使用数据字典视图和动态性能视图来查看数据文件的信息【例题例题3-25】通过dba_tablespaces,查看当前数据库的表空间的类型,及其每个表空间的数据库大小。【例题例题3-26】通过DBA_TEMP_FILES,查看临时表空间ZCGL_TEMP1的临时文件信息。Oracle数据库应用与开发案例教程数据库应用与开发案例教程2023-12-2150本章结束,谢谢大家!本章结束,谢谢大家!休息一会儿。休息一会儿。Oracle数据库应用与开发案例教程数据库应用与开发案例教程