Oracle表空间管理逻辑_第1页
Oracle表空间管理逻辑_第2页
Oracle表空间管理逻辑_第3页
Oracle表空间管理逻辑_第4页
Oracle表空间管理逻辑_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、.:.;表空间Tablespace为数据库提供运用空间的逻辑构造,其对应物理构造是数据文件,一个表空间可以包含 多个数据文件。本地管理表空间Locally Managed Tablespace简称LMT8i以后出现的一种新的表空间的管理模 式,经过本位置图来管理表空间的空间运用。 字典管理表空间Dictionary-Managed Tablespace简称DMT8i以 前包括以后都还可以运用的一种表空间管理方式,经过数据字典管理表空间的空间。本地化管理:就是指Oracle不再利用数据字典表来记录Oracle表 空间里面的区的运用情况,而是在每个表空间的数据文件的头部参与了一个位图区,在其中记录

2、每个区的运用情况。每当一个区被运用,或者被释放以供重新运用 时,Oracle都会更新数据文件头部的这个记录,反映这个变化。本地化管理的表空间的创建过程:语 法:CREATE TABLESPACE表空间名字 DATAFILE数据文件详细信息 EXTENT MANAGEMENT LOCAL AUTOALLOCATE | UNIFORM SIZE INTETER K|M 关键字EXTENT MANAGEMENT LOCAL指 定这是一个本地化管理的表空间。 对于系统表空间,只能在创建数据库的时候指定EXTENT MANGEMENT LOCAL,由于 它是数据库创建时建立的第一个表空间。 在8i中,字

3、典管理还是默许的管理方式,中选择了LOCAL关键字,即阐明这是一个本地管理的表空间。当然还可以继续选择更细的管理方式:是AUTOALLOCATE还是UNIFORM.。 假设为AUTOALLOCATE,那么阐明让Oracle来 决议区块的运用方法;假设选择了UNIFORM,那么还可以详细指定每个区块的大小,假设不加指定,那么为 每个区运用1M大小。本地管理表空间的优点:1减少了 递归空间管理本地管理 表空间是本人管理分配,而不是象字典管理表空间需求系统来管理空间分配,本地表空间是经过在表空间的每个数据文件中维持一个位图来跟踪在此文件中 块的剩余空间及运用情况。并及时做更新。这种更新只对表空间的额

4、度情况做修正而不对其他数据字典表做任何update操 作,所以不会产生任何回退信息,从 而大大减少了空间管理,提高了管理效率。同时由于本地管理表空间可以采用一致大小分配方式(UNIFORM),因 此也大大减小了空间管理,提高了数据库性 能。2系统自动管理extents大小或采用一致extents大 小本地管理 表空间有自动分配(AUTOALLOCATE)和一致大小分配(UNIFORM)两种空间分配方式,自动分配方式(AUTOALLOCATE)是 由系统动决议extents大小,而一致大小分配(UNIFORM)那么 是由用户指定extents大小。这两种分配方式都提高了空间管理效率。3减少了数据

5、字典之间的竞争由于本地 管理表空间经过维持每个数据文件的一个位图来跟踪在此文件中块的空间情况并做更新,这种更新只修正表空间的额度情况,而不涉及到其他数据字典表,从而大大 减少了数据字典表之间的竞争,提高了数据库性能。4不产生回退信息由于本地 管理表空间的空间管理除对表空间的额度情况做更新之外不修正其它任何数据字典表,因此不产生回退信息,从而大大提高了数据库的运转速度。5不需合并相邻的剩余空间由于本地 管理表空间的extents空间管理睬自动跟踪相邻的剩余空间并由系统自动管理,因此不需求去合并 相邻的剩余空间。同时,本地管理表空间的一切extents还可以具有一样的大小,从而也减少了空 间碎片。

6、6减少了空间碎片7对暂时表空间提供了更好的管理表空间管理方式转换:字典管理表空间每当表或其他对象需求扩展的时候都检查其数据字典以确保有可用的空间分配给对象,然后给对象分配一个新区段并更新其可用空间信息。本地管理表空间保 存数据文件本身的空间管理信息,而且表空间自动跟踪每个数据文件块的可用或已用形状。在事务比较多的数据库中显然字典管理每次插入数据时都会检查数据字 典,这就使得数据库性能有所损耗。1命令方式转移。首先他要新建一个oracle表空间,在oracle 10g以后默许都是采用本地管理表空间的。对于表空间的转移运用命令:ALTER TABLE temp MOVE TABLESPACE ne

7、w_temp;对于索引他需求重建:ALTER TABLE index REBUILD TABLESPACE new_index;显然上面的方法并不适用于对system表进展转 换,由于他不能建立2个同名的system表。2采用oracle提供的PL/SQL数据包中的DBMS_SPACE_ADMIN.在转换system表前,他必需把一切的其他表空间转换为本地管理。EXECUTE dbms_space_admin.tablespace_migrate_to_localtablespace; 转行表空间然后同样的方法将system表空间也进展转换。EXECUTE dbms_space_admin.t

8、ablespace_migrate_to_localsystem;运用这种方法很好,但是它建立的表空间没有automatic segment space managerment选 项,一切字典管理表空间都是用默许手动段空间管理,而且在转换为本地管理的表空间是不能进展修正。还有一个缺陷,就是表空间假设存在空间碎片的话,此方法 也不能处理碎片问题。管理表空间的几个根本准那么运用多个表空间运用多个表空间是有益处的,从硬件上说:我们可以将不同运用的数据存放在不同的表空间内,并且放在不同的分区上,这样可以防止多个运用抢占磁盘的I/O资源,另外当磁盘有损坏时不会同时影响到多个运用。从数据库上说:运用多个表

9、空间可以将不同的用户数据从数据字典中分别,以减少一个数据文件的数据字典对象和方式对象之间的竞争。同样的暂时表空间也是需求创建多个,用来匹配表空间,保证在执行操作过程中,得到更优化的呼应。指定表空间的存储参数这个主要是针对不同的特殊运用来做比如只做查询的表空间,暂时没研讨。普通的运用就让oracle本人管理吧。为表空间指定限额合理的限额对表空间的利用率是有很大协助 的,假设一个只会用到20M的空间,而他却给它分配几百M,是不是就成为一个很严重的资源浪费。另外要提的是当表空间不够用的时候,需求做的是添加表空间所在文件的数据文件的大小,或者新建几个比较大的数据文件,而不是创建很多个比较小的数据文件,

10、这么做理由应该是很好了解的。值得留意的表空间存储参数:MINIMUM:CREATE TABLESPACE的一个参数,它能影响表空间段的分配,换句话说是能影响到表空间中空闲空间碎片的一个参数,当为它指定大小后,它能确保一切空闲的或者已分配的盘区的大小一定是它的倍数,以K或者M计算,系统的默许值似乎是64K。ALTER TABLESPACE语句的限制:ALTER TABLESPACE语句可以用来修正一个表空间的存储参数,但是它不能用来修正INITIAL和MINEXTENTS,一个表空间的默许参数的新值只能影响到未来该表空间为段分配的盘区,而已有分配的还是照创建时的设定值。因此一旦设定了默许参数,最

11、好不要随意修正。合并表空间中的空闲空间:先来看看空闲空间是如何存储的:一个表空间的空闲空间是一些相邻的空闲块构成的,这些空闲块的大小不用说当然是由MINIMUM设定的,当需求创建一个新的表空间存储段的时候,系统会在这些延续的空闲块中寻觅大小大于新存储段大小的区间进展创建,而当一个表空间存储段被取消时它的空间将直接被标志成空闲块,这样就会呵斥表空间中,延续的空闲块大小越来越小,越来越不延续,那么在之后需求创建新的表空间段时,就无法保证新的表空间段的空间是延续的块,当然oracle会自动去做合并这个事,那我们可以经过管理来减轻系统的负担。手动合并空闲的空间:ALTER TABLESPACE . C

12、OALESCE 这个语句用来合一切的空闲空间,起到的作用类似于WINDOWS的磁盘整理,对操作者的权限要求是有 ALTER TABLESPACE 权限似乎是句废话,但是假设发现无法执行的时候,无妨GRANT .ALTER TABLESPACE,不过这条语句不能用来合并一个表空间中不同盘区的一切空闲空间,假设要做到一切盘区的空闲空间的整理,除非导出空间数据再重新创建表空间再导入数据,而且最好只需一个盘区。那么如何才干了解表空间中空闲空间的分布呢就是如何监控空闲空间?有几个视图帮我们记录了这些数据:DBA_FREE_SPACE 、 DBA_FREE_SPACE_COALESCE。我们要做的就是在上

13、面做查询,得到某个表空间中空闲空间的分布:SELECT BLOCK_ID, BYTES, BLOCKS, FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME = * ORDER BY BLOCK_ID; 结果显而易见。另外表空间的管理还有 设置表空间能否联机。表空间可以有两种形状:脱机和联机,什么意思?脱机就是证明这表空间虽然存在但是它不能被运用,联机那么相反。修正语句就是 : ALTER TABLESPACE ONLINE/OFFLINE。运用只读表空间只读表空间:从字面意思了解就是一个只能执行查询等不影响表空间内存储的数据的事务的一个表空间。那如今来看看它的

14、定义:只读表空间的主要目的是消除执行数据库大量的静态部分的备份和恢复的需求。因此只读表空间应该有如下特性:任何用户都不可以在表空间创建或修正数据没有回滚段可以随意拷贝,甚至刻录到光盘中那么如何使一个表空间变成只读形状呢?我们知道任何一个表空间在创建后默许都是可读写形状,我们就需求改动这种形状:ALTER TABLESPACEREAD ONLY;这条命令需求用户拥有ALTER/MANAGE TABLE权限。要设定一个表空间成为只读表空间需求留意几点:表空间必需是联机的表空间没有包括任何的活动回滚段表空间不能是SYSTEM正是由于SYSTEM总是有活动的回滚段该表空间没有涉及的联机备份,由于在备份

15、的最后会要求更新表空间中一切的头文件新特性:在运用ALTER TABLEREAD ONLY;之前不需求等待表空间完成一切的事务,系统会自动转入过渡的只读方式,该方式将阻止一切新的事务进展,但是允许现有事务进展提交和回滚。留意:过渡形状只在初始化参数COMPATIBLE和数据库版本有关的参数的值为8.1.0以上才会出现,假设是小于8.1.0的值,当READ ONLY语句会在有活动的事务的情况下失败。小窍门:在执行ALTER TABLEREAD ONLY;语句之前可以先对每个表先执行SELECT * FROM之类的查询语句,这样可以保证在表空间的数据块可以在随后被最有效的访问,同时也去除了orac

16、le需求检查最近修正块的事务形状的必要,由于最后执行的是查询事务。两个有用的视图:V$SESSION:我们可以经过利用它的SQL_TEXT字段来查询一个语句的事务的会话地址V$TRANSACTION:它记载着当前活动事务的启动SCN,我们可以根据经过上面那张视图查询到的事务会话地址来查询该事务的形状。延迟只读表空间的翻开当一个非常大的数据库的本质性部分存储在位于低速访问设备如光盘的只读表空间中或分级存储时,要思索将初始化参数READ_ONLY_OPEN_DELAYED设置为TRUE,这将加速某些操作,主要是翻开数据库,其缘由是在需求读取存储它的数据时,使只读表空间的数据文件只在第一次被访问。但

17、是,这么做有缺陷:表空间中只读文件不会被再访问到,除非是RECOVER TABLESPACE和ALTER TALESPACE OPEN RESETLOGS由于它们忽视初始化参数可以继续访问只读文件。既然表空间可以改为只读形状,那么一定也有方法把只读形状的表空间转为可读写形状:ALTER TABLESPACEREAD AND WRITE;需求的权限和改只读的一样,条件就是该只读表空间必需是联机的。取消表空间删除表空间假设不需求一个表空间及其内容,我们就需求在数据库中取消这个表空间,语句:DROP TABLESPASE【INCLUDING CONTENTS】;需求DROP TABLESPACE权限

18、。假设这个表空间本来就是空的没有表、视图及其他构造那么不需求INCLUDING CONTENTS字句。不过这个语句并不会删除与表空间关联的数据文件,假设在取消表空间时也想把和表空间有关联的数据文件一并删除就需求如下语句:DROP TABLESPACEINCLUDING CONTENTS AND DATAFILES;一个重要的包DBMS_SPACE_ADMIN:这个包为本地管理的一切表空间提供带有缺点诊断和修复功能的管理程序。包含的管理程序有:SEGMENT_VERIFY:验证该段盘区映射的一致性SEGMENT_CURRUPT:标注该段为损坏或有效,以便执行恰当的错误恢复SEGMENT_DROP

19、_CORRUPT:取消一个当前标注为损坏的段(不回收空间)SEGMENT_DUMP:卸下一个给定段的段头部和盘区映射TABLESPACE_VERIFY:验证该表空间中段的位图和盘区映射能否同步TABLESPACE_REBUILD_BITMAPS:重建适当的位图TABLESPACE_FIX_BITMAPS:在位图中标注适当的数据块地址范围为空闲或已用TABLESPACE_REBUILED_QUOTAS:为给定表空间重建限额TABLESPACE_MIGERATE_FROM_LOCAL:将一个本地管理的表空间移植为字典管理的表空间TABLESPACE_MIGRATE_TO_LOCAL:将一个字典管理的表空间移植为本地管理的表空间TABLESPACE_RELOCATE_BITMAPES:将位图重定位到指定

温馨提示

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

评论

0/150

提交评论