资源预览内容
第1页 / 共52页
第2页 / 共52页
第3页 / 共52页
第4页 / 共52页
第5页 / 共52页
第6页 / 共52页
第7页 / 共52页
第8页 / 共52页
第9页 / 共52页
第10页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Oracle数据库应用 与开发案例教程,主编 王红 中国水利水电出版社,2019/5/24,2,Oracle数据库应用 与开发案例教程,第三章 表空间和数据文件管理,2019/5/24,3,第三章 表空间和数据文件管理,3.1 表空间和数据文件概述 3.2 创建表空间 3.3 维护表空间和数据文件 3.4 查看表空间和数据文件信息,Oracle数据库应用与开发案例教程,2019/5/24,4,3.1 表空间和数据文件概述,表空间是Oracle数据库中最大的逻辑存储结构,它与操作系统中的数据文件相对应,用于存储数据库中用户创建的所有内容。可以将表空间看作是数据库对象的容器,表空间的逻辑存储单位是段,数据库的所有对象、方案对象都被逻辑地保存在表空间中。表空间提供了一套有效组织数据的方法,它不仅对数据库的性能有重要的影响,而且对简化管理有明显的作用。一个表空间由一个或多个数据文件组成,数据文件是存储数据库所有逻辑结构数据的操作系统文件。,Oracle数据库应用与开发案例教程,2019/5/24,5,表空间的作用,Oracle数据库把方案对象逻辑地存储在表空间中,同时把它们物理地存储在数据文件中,而数据文件又物理地分布在各个磁盘中。表空间具有以下作用: 1)控制数据库所占用的磁盘空间。 2)控制用户所占用的空间配额。 3)通过将不同类型数据部署到不同的位置,可以提高数据库的I/O性能,并且有利于备份和恢复等管理操作。 4)可以将表空间设置成只读状态而保持大量的静态数据。,Oracle数据库应用与开发案例教程,2019/5/24,6,默认表空间,对于Oracle中新建的数据库,系统自动添加了6个默认的表空间,分别是: 1)EXAMPLE表空间:用于安装Oracle数据库使用示例数据库。 2)SYSTEM表空间:系统表空间,用于存放数据字典对象,包括表、视图、存储过程的定义等,默认的数据文件为“system01.dbf”。 3)SYSAUX表空间:SYSAUX表空间是在Oracle 10g中引入的作为SYSTEM表空间的一个辅助表空间,其主要作用是为了减少SYSTEM表空间的负荷,默认的数据文件是“sysaux01.dbf”;这个表空间和SYSTEM表空间一样不能被删除、更名、传递或设置为只读。,Oracle数据库应用与开发案例教程,2019/5/24,7,默认表空间,4)TEMP表空间:临时表空间,用于存储数据库运行过程中由排序和汇总等操作产生的临时数据信息,默认的数据文件是“temp01.dbf”。 5)UNDOTBS1表空间:撤销表空间,用于存储撤销信息,默认的数据文件为 “undotbs01.dbf”。 6)USERS表空间:用户表空间,存储数据库用户创建的数据库对象,默认的数据文件为“user01.dbf”。,Oracle数据库应用与开发案例教程,2019/5/24,8,表空间的状态属性,通过设置表空间的状态属性,可以对表空间的使用进行管理。表空间的状态属性主要有联机、读写、只读和脱机等四种状态,其中只读状态与读写状态属于联机状态的特殊情况。 1)联机状态(ONLINE) 表空间通常处于联机状态,以便数据库用户访问其中的数据。 2)读写状态(READ-WRITE) 读写状态是表空间的默认状态,当表空间处于读写状态时,用户可以对表空间进行正常的数据查询、更新和删除等各种操作。读写状态实际上为联机状态的一种特殊情况,只有当表空间处于只读状态下才能转换到读写状态。,Oracle数据库应用与开发案例教程,2019/5/24,9,表空间的状态属性,3)只读状态(READ-ONLY) 当表空间处于只读状态时,任何用户都无法向表空间中写入数据,也无法修改表空间中已有的数据,用户只能以SELECT方式查询只读表空间中的数据。将表空间设置成只读状态可以避免数据库中的静态数据被修改。如果需要更新一个只读表空间,需要将该表空间转换到可读写状态,完成数据更新后再将表空间恢复到只读状态。,Oracle数据库应用与开发案例教程,2019/5/24,10,表空间的状态属性,4)脱机状态(OFFLINE) 当一个表空间处于脱机状态时,Oracle不允许任何访问该表空间中数据的操作。当数据库管理员需要对表空间备份或恢复等维护操作时,可以将表空间设置为脱机状态;如果某个表空间暂时不允许用户访问,DBA也可以将这个表空间设置为脱机状态。 【例题3-1】通过数据字典dba_tablespaces,查看当前数据库中表空间的状态。,Oracle数据库应用与开发案例教程,2019/5/24,11,数据文件,数据文件是Oracle数据库中用来存储各种数据的地方,在创建表空间的同时将为表空间创建相应的数据文件。一个数据文件只能属于一个表空间,一个表空间可以有多个数据文件。在对数据文件进行管理时,数据库管理员可以修改数据文件的大小、名称、增长方式和存放位置,并能够删除数据文件。,Oracle数据库应用与开发案例教程,2019/5/24,12,3.2 创建表空间,在创建Oracle数据库时会自动创建SYSTEM、SYSAUX和USERS等表空间,用户可以使用这些表空间进行各种数据操作。但在实际应用中,如果使用系统创建的这些表空间会加重它们的负担,严重影响系统的I/O性能,因此Oracle建议根据实际需求来创建不同的非系统表空间,用来存储所有的用户对象和数据。,Oracle数据库应用与开发案例教程,2019/5/24,13,3.2 创建表空间,创建表空间需要有CREATE TABLESPACE系统权限。在创建表空间时应该事先创建一个文件夹,用来放置新创建表空间的各个数据文件。当通过添加数据文件来创建一个新的表空间或修改一个表空间时,应该给出文件大小和带完整存取路径的文件名。,Oracle数据库应用与开发案例教程,2019/5/24,14,3.2 创建表空间,在表空间的创建过程中,Oracle会完成以下工作: 1)在数据字典和控制文件中记录下新创建的表空间。 2)在操作系统中按指定的位置和文件名创建指定大小的操作系统文件,作为该表空间对应的数据文件。 3)在预警文件中记录下创建表空间的信息。,Oracle数据库应用与开发案例教程,2019/5/24,15,创建表空间的一般命令,1. 创建表空间命令的语法结构 CREATE TEMPORARY|UNDO TABLESPACE tablespace_name DATAFILE|TEMPFILE file_spec1 ,file_spec2 SIZE size K | M REUSE MININUM EXTENT integer K | M BLOCKSIZE integer k LOGGING|NOLOGGING FORCE LOGGING DEFAULT data_segment_compression storage_clause ONLINE|OFFLINE PERMANENT|TEMPORARY EXTENT MANAGEMENT DICTIONARY|LOCAL AUTOALLOCATE|UNIFORM SIZE number SEGMENT MANAGEMENT AUTO|MANUAL,Oracle数据库应用与开发案例教程,2019/5/24,16,创建表空间的一般命令,2.语法说明 1)TEMPORARY|UNDO 说明系统创建表空间的类型。TEMPORARY表示创建一个临时表空间。UNDO表示创建一个撤销表空间。创建表空间时,如果没有使用关键字TEMPORARY或UNDO,表示创建永久性表空间。 2)tablespace_name 指定表空间的名称。,Oracle数据库应用与开发案例教程,2019/5/24,17,创建表空间的一般命令,3)datafile file_spec1 指定与表空间关联的数据文件。file_spec1需要指定数据文件路径和文件名。如果要创建临时表空间,需要使用子句TEMPFILE file_spec1。 4)SIZE size k | M REUSE 指定数据文件的大小。如果要创建的表空间的数据文件在指定的路径中已经存在,可以使用REUSE关键字将其删除并重新创建该数据文件。 5)MININUM EXTENT integer K | M 指出在表空间中盘区的最小值。,Oracle数据库应用与开发案例教程,2019/5/24,18,创建表空间的一般命令,6)BLOCKSIZE integer k 如果在创建永久性表空间时不采用参数db_block_size所指定的数据块的大小,可以使用此子句设定一个数据块的大小。 7)LOGGING|NOLOGGING 这个子句声明这个表空间上所有的用户对象的日志属性(缺省是LOGGING)。 8)FORCE LOGGING 使用这个子句指出表空间进入强制日志模式,这时表空间上对象的任何改变都将产生日志,并忽略LOGGING|NOLOGGING选项。在临时表空间和撤销表空间中不能使用这个选项。,Oracle数据库应用与开发案例教程,2019/5/24,19,创建表空间的一般命令,9)DEFAULT storage_clause 声明缺省的存储子句。 10)ONLINE|OFFLINE 将表空间的状态设置为联机状态(ONLINE)或脱机状态(OFFLINE)。ONLINE是缺省值,表示表空间创建后立即可以使用;OFFLINE表空间不可以使用。 11)PERMANENT|TEMPORARY 指定表空间中数据对象的保存形式,PERMANENT永久存放,TEMPORARY表示临时存放。,Oracle数据库应用与开发案例教程,2019/5/24,20,创建表空间的一般命令,12)EXTENT MANAGEMENT DICTIONARY|LOCAL 指定表空间的管理方式。如果希望本地管理表空间,声明LOCAL选项,这是默认选项,本地管理表空间是通过位图进行管理的;如果希望以数据字典的形式管理表空间,声明DICTIONARY选项。 13)AUTOALLOCATE|UNIFORM SIZE number 指定表空间的盘区大小。AUTOALLOCATE表示盘区大小由Oracle自动分配;UNIFORM SIZE number表示表空间中所有盘区大小统一为number。 14)SEGMENT MANAGEMENT AUTO|MANUAL 指定段空间的管理方式,自动或者手动,默认为AUTO。,Oracle数据库应用与开发案例教程,2019/5/24,21,创建(永久)表空间,如果在使用CREATE TABLESPACE语句创建表空间时,没有使用关键字TEMPORARY或UNDO,或者使用了关键字PERMANENT,则表示创建的表空间是永久保存数据库对象数据的永久表空间。,Oracle数据库应用与开发案例教程,2019/5/24,22,创建(永久)表空间,1. 创建本地管理方式的永久表空间 根据表空间对盘区的管理方式,表空间可以分为数据字典管理的表空间和本地管理的表空间。本地管理表空间使用位图的方法来管理表空间中的数据块,从而避免了使用SQL语句引起的系统性能下降,Oracle建议在建立表空间时选择本地管理方式。 从Oracle 9i R2后,系统创建的表空间在默认情况下都是本地管理表空间。在使用CREATE TABLESPACE语句创建表空间时,如果省略了EXTENT MANAGEMENT子句,或者显式地使用了EXTENT MANAGEMENT LOCAL子句,表示所创建的是本地管理方式的表空间。 【例题3-2】创建永久表空间ZCGL_TBS1,采用本地管理方式。,Oracle数据库应用与开发案例教程,2019/5/24,23,创建(永久)表空间,2. 创建UNIFORM盘区分配方式的永久表空间 如果在EXTENT MANAGEMENT子句中指定了UNIFORM关键字,则说明表空间中所有的盘区都具有统一的大小。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号