第9讲+管理表空间和数据文件.ppt_第1页
第9讲+管理表空间和数据文件.ppt_第2页
第9讲+管理表空间和数据文件.ppt_第3页
第9讲+管理表空间和数据文件.ppt_第4页
第9讲+管理表空间和数据文件.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章 管理表空间和数据文件,由于在物理上,数据库中的数据存储在数据文件中,而在逻辑上,数据库中的数据存储在表空间中。这也就意味着表空间与数据文件之间存在对应关系,对表空间的管理操作与对数据文件的管理操作密切相关。通过使用表空间,可以有效地部署不同类型的数据,加强数据管理,从而提高数据库运行性能。,本章知识要点:,掌握各种表空间的建立方法 掌握改变表空间状态的方法 掌握扩展表空间的方法 掌握管理数据文件的方法 掌握对UNDO表空间的管理,2,9.1 建立表空间,在Oracle 11g中,当数据库管理员(DBA)创建数据库时,Oracle不仅会创建SYSTEM表空间,还会创建一些辅助表空间,如U

2、NDO表空间和默认临时表空间。为了简化表空间管理并提高性能,Oracle建议将不同类型的数据部署到不同表空间上。,3,9.1.1 建立普通表空间,根据表空间对盘区的管理方式,表空间可以分为数据字典管理的表空间和本地化管理的表空单。数据字典表空间是传统的表空间类型,其主要用于早期的Oracle数据库版本中,它是通过数据字典对表空间中的盘区进行管理的。而本地管理表空间,则不再使用数据字典去寻找空闲空间,而使用位图的方法使用表空间中的数据块,从而避免使用SQL语句引起系统性能的下降。,4,9.1.1 建立普通表空间,Create tablespace user01 datafile d:oracle

3、datauser01 size 50m extent management local; extent management:区的分配管理方式: AUTOALLOCATE:oracel对区的分配进行自动管理 UNIFORM 1MB:所有的区都有统一的大小 Segment soace management:段的存储管理方式: MANUAL:手动方式,使用可用列表来管理段中的空闲数据段 ,默认的方式 AUTO:自动方式,使用位图来管理已有数据块和空闲数据块,5,9.1.2 建立大文件表空间,一个大文件表空间中对应一个单一的数据文件或临时文件,但是文件可以达到4G个数据块大小。理论上,当数据块大小为

4、8K时,大文件表空间的数据文件最大可以达到32T字节;当数据块尺寸为32K时,那么大文件表空间的数据文件最大尺寸可以达到128T。在实际环境中,这还受到操作系统的文件系统的限制。,6,9.1.2 建立大文件表空间,默认创建是smallfile表空间 Alter database set default smalllfile tablespace; Create bigfile tablespace big_tbs datafile d:oracledatabigfile_tbs01.dbf size 10m; 不能使用segment space management manual子句 只能指定

5、一个数据文件,7,9.1.3 建立临时表空间,通过在表空间中分配临时存储空间,Oracle能够使带有排序等操作的SQL语句获得更高的执行效率。如果创建了专门的临时表空间,Oracle就可以不必在其他的表空间中为排序操作分配临时空间,这样不仅可以实现临时数据的集中化管理,而且还不会影响到其他表空间的使用效率。 创建用户时必须指定一个表空间作为临时表空间 一个临时表空间可以被多个数据库用户使用 可以建立多个临时表空间create temporary tablepsace,8,9.1.3 建立临时表空间,Create temporary tablespace temp01 tempfile d:or

6、acledatatemp01.bdf size 10m extent managemnet local uniform size 256k tablespace group group1; Create bigfile temporary tablespace big_temp02 tempfile d:oracledatatemp02.bdf size 10m; Alter tablespace temp03 tablespace group group1; Alter tablespace temp03 tablespace group ;,9,9.1.4 建立非标准块表空间,数据块的大小

7、由参数DB_BLOCK_SIZE决定,并且在创建数据库后不能再进行修改。为了优化I/O性能,Oracle系统允许不同的表空间使用不同大小的数据块,这样可以实现将大规模的表存储在由大数据块构成的表空间,而小规模的表则存储在由小数据块构成的表空间中。在创建非标准数据块的表空间时,用户需要显式使用BLOCKSIZE选项。 当在数据库中使用多种数据块大小时,必须为每种数据块分配相应的数据高速缓存,并且数据高速缓存的大小可以动态修改。 alter system set db_16k_cache_size=20m; create tablespace bigblock_tbs datafile d:ora

8、celdatabig_blick_tbs01.dbf size 2m blocksize 16k;,10,9.2 维护表空间,对于数据库管理员而言,在创建各种表空间后,还需要经常维护护表空间,如改变表空间可用性和读写状态,改变表空间名称、备份和恢复表空间、删除不需要的表空间等。,11,9.2.1 改变表空间可用性,当建立表空间时,表空间及其所有数据文件都处于ONLINE状态,此时该表空间及其数据文件是可以访问的。在多表空间数据库中,DBA可以通过将某个表空间设置为脱机状态,可以使数据库的某部分暂时无法被用户访问。同时,数据库的其他表空间不会受到任何影响。相反地,也可以将某个处于脱机状态的表空间

9、重新设置为联机状态,使用户能够重新访问其中的数据。 实现如下目的,设置为脱机状态: 要禁止用户访问数据库中的一部分数据,但又不影响对数据库中其他部分的 正常访问 进行脱机表空间备份 在升级或维护应用程序时,要禁用与该应用程序相关的表空间数据操作,12,9.2.1 改变表空间可用性,设置表空间为脱机状态,使用以下参数: Normal: 以正常方式切换到脱机状态。 进入脱机状态,执行一次检查点,将SGA去中与该表空间相关的脏缓存块写入数据文件中。 Temporary: 以临时方式切换到脱机状态。 不检查各个数据文件的状态,即使某些数据文件处于不可用状态。 Immediate: 以立即方式切换到脱机

10、状态。 不执行检查点,不检查数据文件是否可用。 For recover: 以用于恢复方式切换到脱机状态。 基于时间的恢复。 Alter tablespace user01 offline normal; Alter tablespace user01 online;,13,9.2.2 改变表空间读写状态,表空间可以是读写方式,也可以是只读方式。默认情况下,所有的表空间都是读写方式,任何具有配额并且具有适当权限的用户都可以写入表空间。但是如果将表空间设置为只读方式,则任何用户都无法向表空间写入数据,也无法修改表空间中已有的数据,这种限制与权限无关。 alter tablepsace user01

11、 read only; alter tablepsace user01 read write; 注:system不能设置为只读状态。,14,9.2.3 改变表空间名称,在Oracle 10g之前,表空间的名称是不能被修改的。在Oracle 11g中,通过在ALTER TABLESPACE语句中使用RENAME子句,数据库管理员可以改变表空间的名称。例如,下面的语句将修改表空间BIG_TBS为BIG_FILE_TBS:,15,SQL alter tablespace big_tbs rename to big_file_tbs; 表空间已更改。,9.2.4 设置默认表空间,在Oracle 10g

12、前,建立数据库用户时,如果不指定其默认的表空间,则系统将使用SYSTEM表空间作为用户的默认表空间。从Oracle 11g中,使用ALTER DATABASE DEFAULT TABLESPACE语句可以设置数据库的默认表空间,这样当建立用户时,默认将使用指定的表空间。 设置数据库默认表空间的示例如下:,16,SQL alter database default tablespace users; 数据库已更改。,9.2.5 删除表空间,在删除表空间时,Oracle仅仅是在控制文件和数据字典中删除与表空间和数据文件相关的信息,默认情况下,Oracle并不会在操作系统中删除相应的数据文件。因此,

13、在成功执行删除表空间的操作后,需要手动删除操作系统中的数据文件。如果在删除表空间的同时要删除对应的数据文件,则必须显式地指定INCLUDING CONTENTS AND DATAFILES子句。 drop tablespace user01 including contents and datafiles;,17,9.2.6 查询表空间信息,下表列出了各种包含有表空间信息的数据字典和动态性能视图。,18,9.3 管理数据文件,数据文件在创建数据库或表空间时建立。当表空间创建后,DBA可以根据需要为表空间添加新的数据文件,或者更改已有数据文件的大小、名称和位置。,19,9.3.1 数据文件的管理

14、策略,数据文件是物理上存储表空间数据的操作系统文件,在创建表空间的同时将为它建立数据文件。在创建表空间前,DBA不仅要考虑表空间的管理方式,还需要决定与表空间对应的数据文件的数量、大小以及位置。 1.确定数据文件的数量 DB_FILES:数据文件的最大数量 Maxdatafiles:控制文件能保存最多的数据文件数量 进程能同时打开的文件数量由操作系统决定。 2.确定数据文件的存放位置 并发访问的文件放在不同磁盘,减少I/O冲突 3.分离存放数据文件和日志文件 加强安全性,保存在不同磁盘上,20,9.3.2 添加表空间数据文件,在创建表空间时,通常会预先估计表空间所需的存储空间大小,然后为它建立

15、若干适当大小的数据文件。如果在使用过程中发现表空间存储空间不足,可以再为它添加新的数据文件,以增加表空间的总存储空间。 alter tablepsace user03 add datafile d:oracledatauser03.dbf size 10m;,21,9.3.3 改变数据文件大小,除了为表空间增加新的数据文件外,另一种增加表空间的存储空间的方法是改变已经数据文件的大小。改变数据文件大小的方式一共两种:设置数据文件为自动增长;手动改变数据文件的大小。 autoextend on /off next 2m maxsize 500m Alter datafile datafile d:

16、oraceldatauser03.dbf resize 500m;,22,9.3.4 改变数据文件的可用性,与表空间类似,联机的数据文件或临时数据文件也可以被设置为脱机状态。将数据文件设置为脱机状态时,不会影响到表空间的状态。但是反过来,将表空间设置为脱机状态时,属于该表空间的数据文件将全部同时进入脱机状态。 alter datafile datafile d:oracledatauesr03.dbf offline/online;,23,9.3.5 改变数据文件名称和位置,改变数据文件的操作分为两种情况:要改变的数据文件属于同一个表空间;要改变的数据文件分别属于多个表空间。在这两种情况下,分

17、别需要使用不同的语句进行操作。 1改变属于单独表空间的数据文件 关闭数据文件,脱机 在操作系统重新命名或移动该文件 Alter datafile rename.数据库内部修改文件 打开数据文件,联机,24,9.3.5 改变数据文件名称和位置,2改变属于多个表空间的数据文件 关闭数据库 在操作系统重新命名或移动该文件 启动数据库,加载数据库,不打开数据库 Alter datafile rename.数据库内部修改文件 打开数据库 Alter datebase open;,25,9.4 管理UNDO表空间,UNDO表空间用于存放UNDO数据。当执行DML操作时(INSERT、UPDATE和DELE

18、TE),Oracle会将这些操作的旧数据写入到UNDO段。在Oracle 9i前,管理UNDO段是使用回退段完成的。从Oracle 9i开始,管理UNDO数据不仅可以使用回退段,还可以使用UNDO表空间。因为规则和管理回退段比较复杂,所以Oracle 11g已经完全弃用回退段,并且使有UNDO表空间来管理UNDO数据。,26,9.4.1 UNDO概述,UNDO数据也称为回退数据,它用于确保数据的一致性。当执行DML操作时,事务操作前的数据将被称为UNDO记录。UNDO段用于保存事务所修改数据的旧值,其中存储着被修改数据块的位置以及修改前的数据。 回退事务 读一致性 事务恢复,27,9.4.2

19、UNDO参数,常用的UNDO参数包括UNDO_MANAGEMENT、UNDO_TABLESPACE和UNDO_RETENTION(900秒)。其中,UNDO_MANAGEMENT参数用于指定UNDO数据的管理方式。如果要使用自动管理模式,必须设置该参数为AUTO;如果使用手动管理模式,必须设置该参数为MANUAL。 Show parameter undo;,28,9.4.3 建立UNDO表空间,使用自动UNDO管理模式时,必须建立并配置UNDO表空间。建立数据库后,还可以使用CREATE UNDO TABLESPACE语句建立UNDO表空间。需要注意,UNDO表空间专门用于存放UNDO数据,并且在UNDO表空间上不能建立任何数据对象。 Create undo temporary tablespace undotbs01 datapfile d:oracledataundo01.bdf size 10m autoextend on;,29,9.4.4 修改UNDO表空间,与普通表空间一样,可以通过ALTER TABLESPACE语句对UNDO表空间进行修改。但是UNDO表空间的大部分设置都由Oracle本身自动进行管理,用户对撤销表空间可以执行的操作主要包括: 添加新的数据文件 移动数据文件 修改数据文件的OFFLINE和ONLINE状态,30,9.4.5 切换UNDO表空间,在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论