`
zhou7707
  • 浏览: 8792 次
  • 来自: ...
社区版块
存档分类
最新评论

管理表空间(前言)【引】 (转)

阅读更多

表空间(TABLESPACE)是ORACLE数据库中最大的逻辑结构。ORACLE数据库是由一个或多个表空间组成的。它在物理上与磁盘上的数据文件相对应(一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间)。从物理上说数据库的数据被存放在数据文件中,而从逻辑上说是被存放在表空间中的。
数据库的逻辑配置实际上就是指表空间的配置。

一、表空间概述
表空间是ORACLE数据库中最大的逻辑结构。数据库的所有对象和方案都被逻辑的保存在表空间中。

(一)表空间的特性与作用
数据库管理系统(DBMS)是建立在操作系统(OS)基础上的,它的数据也必须存储在各个文件中,如数据文件、重做日志文件、归档日志文件等。
表不是文件,表不是空间。
表空间是组织结构和分配空间的逻辑结构。除了数据文件之外,控制文件、重做日志文件、归档日志文件等其他文件都不属于任何表空间。
表空间的特性如下:
1.一个数据库可以有多个表空间。可以在数据库中创建、删除表空间;
2.一个表空间只属于一个数据库;
3.一个表空间必须要有一个数据文件;
4.一个表空间的大小等于其中所有数据文件的大小之和。数据库的大小等于其中所有表空间的大小之和;
5.表空间可以被联机和脱机。SYSTEM表空间不能被脱机;
6.表空间可以在读写、只读状态之间切换;
7.每个表空间由一个或多个物理存在的操作系统的数据文件组成。这种数据文件可以具有固定的大小,或允许其自动变大。可以在表空间中添加、删除数据文件;
8.方案对象、表、索引的数据都被存储在表空间的数据文件中。一个数据文件存储不下,就存储在另一个数据文件中,只要该数据文件是本表空间中的就可以;
9.一个用户默认使用一个表空间,但他的不同方案对象的数据可以被存储在不同表空间中;
10.一个用户使用的表空间的数量是有一定配额的,不能超出这个配额;
11.可以根据使用目的,创建不同类型的表空间,如永久表空间、临时表空间、撤销表空间、大表空间等。不同类型的表空间的格式、使用方式及目的是不同的。

表空间的作用:
1.控制数据库所占用的磁盘空间;
2.控制用户所占用的表空间配额,也就等于控制用户所占用的配额空间;
3.通过将不同表的数据、分区表中不同分区的数据放置到不同的表空间中,可以提高数据库的I/O性能,并有利于进行部分备份和恢复等管理工作;
4.能够将一个表的数据和这个表的索引数据分别防止到不同的表空间中,同样可以提高数据库的I/O性能;
5.可以将表空间设置成只读状态而保持大量的静态数据。

(二)表空间的类型
一个数据库通常有SYSTEM,SYSAUX,TEMP三个默认表空间,一个或多个临时表空间,而且还有一个撤销表空间和几个应用程序专用的应用表空间。
这些表空间可以划分为系统表空间和非系统表空间两类。
系统数据(数组字典表及其数据) 系统表空间
用户数据(表、索引) 大表空间、小表空间
临时数据 临时表空间
撤销数据 撤销表空间

(1)系统表空间
系统表空间包括SYSTEM表空间和SYSAUX表空间,其余的表空间就是非系统表空间。系统表空间在所有数据库中都是必须的。一般存放到ORACLE的数据字典及其数据。

(2)临时表空间
撤了撤销(UNDO)表空间、相对于临时(TEMPORARY)空间而言,其他表空间就是永久(PERMANENT)表空间。
当执行排序(ORDER BY)、分组汇总(GROUP BY)、索引(CREATE INDEX)等功能的SQL语句时,会产生大量的临时数据。服务器进程首先将临时数据存放到内存结构的PGA区的排序区中,当排序区不够用时,服务器进程就会在临时表空间中建立临时段,并将这些临时数据存放到临时段中。
如果在创建用户时没有为用户指定一个临时表空间,那么就会使用SYSTEM表空间来说创建临时段,存放临时数据。这样做的结果是:
1.占用了SYSTEM表空间的存储空间,使可用的存储空间下降;
2.频繁的分配和释放临时段,会在SYSTEM表空间中产生大量的存储碎片,使磁盘的读取效率下降。

如果在数据运行过程中,经常有大量的并发排序,那么为了避免在SYSTEM表空间中存储临时数据,数据库管理员应该在数据库中创建一个专门的用来存储临时数据的临时表空间。
临时表空间对应的是临时文件,它与数据文件是有区别的。数据文件在创建时就被完全分配和初始化,而临时文件不一定保证被分配到指定的磁盘空间。如:在 UNIX操作系统中,将不实际分配临时文件的磁盘空间,而是知道某个操作需要临时表空间时才为临时文件分配磁盘空间。这种延迟式的分配方法允许临时文件被快速创建,但如果没有预留出实际运行时所需的磁盘空间,就可能在运行时发生问题。
临时表空间可以被所有用户共享使用,如TEMP表空间可以被所有用户共享使用。在ORACLE 8I中可以使用其他表空间作为临时表空间,而在ORACLE 9I中就开始引入默认临时表空间(DEFAULT TEMPORARY TABLESPACE)的设计了,使用户不能使用其他表空间作为临时表空间。
某个用户使用哪个临时表空间应该是在创建该用户时指定的。数据库的默认临时表空间是在创建(CREATE DATABASE)数据库时,由DEFAULT TEMPORARY TABLESPACE子句来指定的。
在临时表空间中,同一个例程的所有SQL语句的排序操作将共享使用一个排序段(SORT SEGMENT)。排序段在执行第一条排序操作的SQL语句时被创建,在例程关闭时被释放。可以通过动态性能视图V$SORT_SEGMENT来查询排序段的使用情况,通过动态性能视图V$SORT_USAGE来查询使用排序段的会话和用户信息。

(3)撤销表空间
在ORACLE 9I以前,对于回退段(ROLLBACK SEGMENT)的设置与管理是一项十分复杂的工作。从ORACLE 9I开始,引入了一个全新的概念,即自动撤销管理(AUTOMATIC UNDO MANAGEMENT),用撤销(UNDO)表空间取代已经使用了20年的回退段。实际上是将回退段(撤销段)放入了撤销表空间,而由例程自动处理撤销表空间中的回退段。使用自动撤销管理方式后,不仅可以减轻DBA的工作负担,而且还可以获得较好的回退性能。通过查询数据字典视图 DBA_ROLLBACK_SEGS,可以得到撤销表空间中回退段的信息。
撤销表空间存储撤销段,撤销段主要用于入下目的:
1.用一条ROLLBACK语句明确的回退一个事务;
2.隐含的回退一个事务;
3.重构数据的一个读一致图像;
4.从逻辑错误中恢复。

在ORACLE中可以创建多个撤销表空间,但同一时刻值允许激活一个撤销表空间。在初始化参数文件中用UNDO_TABLESPACE指出要激活的撤销表空间。撤销表空间的组织与管理由ORACLE内部自动完成。当回退段不足时,一个事务可以使用多个回退段,不会中止事务的运行。数据库管理员只需了解撤销表空间是否有足够的空间,而不必为每个事务设置回退段。

(4)大文件表空间与小文件表空间
大文件(BIGFILE)表空间是ORACLE 10G新引进的表空间。大文件表空间只能放置一个数据文件(或临时文件)。但其数据文件可以包括4G个数据块。
大文件表空间都是为超大型数据库设计的。如果一个超大型数据库具有上千个数据文件的话,更新数据文件头部信息的操作就会花费很长时间。如果使用了大文件表空间,就可以使用大数据文件来减少数据文件的数量,使更新数据文件头部信息的操作更快一些。
要想创建一个大文件表空间,可以使用CREATE语句中的使用的BIGFILE关键字。CREATE BIGFILE TABLESPACE mybigtbs01 DATAFILE 'e:\mybigtbs01_1.dbf' SIZE 20G SEGMENT SPACE MANAGEMENT AUTO;
小文件(SMALLFILE)表空间是以前ORACLE表空间的新命名。在小文件表空间中可以放置多个数据文件。一个数据库可以放置多达64K个数据文件。
SYSTEM和SYSAUX表空间总是被创建为小文件表空间。
想要创建一个小文件表空间,可以在CREATE语句中使用SMALLFILE关键字(或者不适用此类关键字)。CREATE SMALLFILE TEMPORARY TABLESPACE mytmptbs01 TEMPFILE 'e:\mytmptbs01_1.dbf' SIZE 4M UNIFORM SIZE 64K;

(三)表空间的区、段管理方式
ORACLE 10G的表空间是按照区和段空间进行管理的。
(1)区管理方式
针对区的分配方式不同,表空间有两种管理方式。ORACLE各个版本所支持的管理方式如下:
字典管理方式 ORACLE 7,ORACLE 8,ORACLE 8I,ORACLE 9I;
本地管理方式 ORACLE 8I,ORACLE 9I,ORACLE 10G;

字典管理方式(DICTIONARY-MANAGED TABLESPACE,DMT)
字典管理方式是传统的管理方式,是为了与早期版本兼容而保留的区管理方式。在字典管理方式下,使用数据字典来管理存储空间的分配。
当在表空间中分配新的区,或回收已分配的区时,ORACLE将对数据字典中的相关“基础表”进行查询、更新,并且在这一过程中,使用单线程搜索方法,速度较慢。另外,对表的更新操作会产生会退信息和重做信息,因此,在分配区或回收区时,会在数据库中产生会退信息和重做信息。这是字典管理方式的特点,也是它的缺点。
在创建字典管理方式的表空间时,可以在DEFAULT STORAGE子句中设置INITIAL,NEXT,MINEXTENTS,MAXENTENTS,PCTINCREASE等参数来为区设置存储管理方式,以指定表空间中区的默认分配方式。这样,如果在这种表空间中创建表、索引等方案对象时,没有使用DEFAULT STORAGE子句,他们就会自动继承表空间的存储参数设置。
如果其他表空间要采用字典管理方式,则要求SYSTEM表空间也必须采用字典管理方式,并且必须在CREATE TABLESPACE语句中显示的使用EXTENT MANAGEMENT DICTIONARY子句进行申明。字典管理方式是被淘汰的表空间管理方式,从ORACLE 9I开始不再支持这种方式。

本地管理方式(LOCAL-MANAGED TABLESPACE,LMT)
本地管理方式是一种新的、改进的管理方式。从ORACLE 9I开始,创建表空间时默认使用本地管理方式。
本地管理方式下,表空间中分配与区回收的管理信息都被存储在表空间的数据文件中,而与数据字典无关。表空间会在每个数据文件中维护一个"位图 (BITMAP)"结构,用于记录表空间中所有区的分配情况。
ORACLE为每个可能的区都保留了一位。该位为1或0,表示该区正在使用或空闲。位图图像消耗64KB的表空间。当在表空间中分配的区,或回收已分配的区时,ORACLE将对数据文件中的"位图"进行更新。因此这种更新不是对表的更新操作,所以不会产生回退信息和重做信息。
与字典管理方式相比,本地管理方式具有如下的好处:
1.因为空间的分配和回收不需要对数据库进行访问,而只是简单的改变数据文件中的位图,所以能够提高空间存储管理的速度和并发性;
2.能够避免在字典管理方式中空间分配期间可能出现的递归现象,所以提高了空间存储管理的性能。
3.允许将数据库作为只读的备用数据库(STANDBY DATABASE)。由于不会产生会退信息和重做信息,所以不会向数据库中写信息,这样就可以将整个数据库设置为只读状态。这种数据库可以作为备用数据库。
4.简化了空间分配,以为当指定了AUTOALLOCATE子句时,ORACLE会自动选择合适的区大小,不再需要用户进行任何干预;
5.减少用户对数据库字典的依赖,因为必要的信息都被存储在数据文件的位图中了,而不是保存在数据字典中;
6.不存在磁盘碎片问题。使用位图的方法去查询空闲空间,相邻的空闲块被视为一个大的空闲块,从设计上保证自动合并磁盘碎片,碎片产生后由系统自动消除;
7.DBMS_SPACE_ADMIN包对本地管理的表空间提供维护过程。

在字典管理方式下,如果对某个表进行了更新,这时会产生存储管理操作,而该存储管理操作肯定会产生回退信息和重做信息,导致对回退段和重做日志文件进行读写,从而又产生存储管理操作,形成了递归现象。
在字典管理方式下,如果查询操作包含排序,则数据库需要为排序分配临时段,这会引起存储空间的分配操作,也就会对数据字典进行更新,所以数据库必须处于读写状态,而不能处于只读状态。

在本地管理方式下,可以用以下两个选项来指定表空间的区的分配方式:
1. 统一(UNIFORM):统一分配,指定表空间中所有区的大小都相同。区的大小的默认值是1MB,也可以指定这个大小。但不能在撤销表空间中使用这个选项;
2.自动(AUTOALLOCATE或SYSTEM)自动分配,指定由ORACLE系统来自动管理区的大小,这是默认的设置。

在自动去的分配方式下,区的大小随表的大小自动动态改变,他们之间的对应关系如下:
表大小                     区大小
64KB(或前16个区)           64KB
1MB(接下来的63个区)        1MB
64MB(接下来的120个区)      8MB
1000MB(以后的区)           64MB

当表的大小不超过64KB时,表空每个区的大小为64K;
当表的大小不达到1MB时,表中每个区的大小为1MB;
当表的大小超过64MB且小于1000MB时,区的大小都是8MB;当表的大小达到1000MB时,区的大小为64MB。
也就是ishuo,这个算法只能使小表取小区,大表取大区,避免大表拥有过多的区。所以,自动选项最适合于由小表和大表构成的一个多用途的数据库系统。但是,对于数据超过1GB的大表,系统在分配磁盘空间时一次分配64MB,如果所插入的数据没有达到64MB,则可能造成空间的浪费。
通常,使用自动是最佳的选择。

(2)段空间管理方式
在本地管理方式的表空间中,除了可以用UNIFORM和AUTOALLOCATE来指定区的分配方式之外,还可以指定段空间的管理方式。段空间管理方式主要是指ORACLE用来管理段中已用数据块和空闲数据块的机制。
在本地管理方式下,可以用如下两个关键字来指定表空间的段空间管理方式:
1.MANUAL(手动)方式,这时ORACLE将使用空闲列表(FREE LIST)来管理段的空闲数据块。这是为了与以前的版本相兼容而保留的。
2.AUTO(自动)方式,这时ORACLE将使用位图(BITMAP)来管理段的已用数据块和空闲数据块。即,通过位图中单元的取值来判断段汇总的数据块是否可用。
空闲列表(FREELIST)是传统的段空间管理方式,段中所有的空闲数据块都被放入一个空闲列表中,在需要存储空间时据在该列表中进行搜索。与空闲列表相比,使用位图的自动方式能够提供更好的存储利用率。因为在自动方式下,用户不需要在创建方案对象时通过指定 PCTFREE,PCTUSED,FREELIST,FREELIST GROUP等参数来为段设置存储管理方式,即使设置了,也将会被忽略。
当SYSTEM表空间的区管理方式是本地管理方式时则不可能创建字典管理的表空间,但可以创建本地管理的表空间。
另外,创建表空间这种修改数据库物理结构的信息会同时被记录到预警日志文件中。

(四)表空间的状态
处于不同状态的表空间,其使用方式有所不同。
SYSTEM表空间不能被设置为只读状态或脱机状态,因为在数据库进行过程中始终会使用到SYSTEM表空间中的数据。
(1)读写状态
读写(READ-WRITE)
默认情况下所有的表空间都是读写状态的。任何具有表空间配额并且具有适当权限的用户都可以读写该表空间中的数据。
只读(READ-ONLY)
如果将表空间设置为只读状态,则任何用户都无法向表空间中写入数据,也无法修改表空间中已有的数据。这种限制与用户的权限无关。将表空间设置为只读状态的主要目的是,避免对数据库进行修改。使用户只能查询其中的数据,而不能修改其中的数据。同时,由于只读表空间中的数据不会被修改,因此DBA只需将只读表空间备份一次即可,不必再次对这个表空间进行备份。如果数据库中保存大量的不允许用户修改、但又允许用户访问的数据。

(2)脱机状态
通过将某个表空间设置为脱机状态,以使该表空间暂时不让用户访问。
脱机模式有以下4种:
1.正常(NORMAL):默认的脱机模式。
2.临时(TEMPORARY):
3.立即(IMMEDIATE):
4.用于恢复(FOR RECOVER):

二、管理表空间的准则

(一)确定表空间的大小

(1)确定表的大小

(2)确定表空间的大小

(二)表空间的配置

(1)表空间的层次结构

(2)表空间的分配

(三)为用户设置表空间配额和临时表空间

 

分享到:
评论

相关推荐

    Oracle表空间设置和管理浅析

    前言 表空间是 Oracle 特有的一种逻辑...今天小编就从永久表空间管理和临时表空间管理两个维度,详细介绍 Oracle表空间管理的具体操作。 永久表空间管理 1.1 创建表空间 参数说明: EXTENT MANAGEMENT LOCAL AUTO

    MySQL判别InnoDB表是独立表空间还是共享表空间的方法详解

    可以有多个数据文件,如果没有设置innodb_file_per_table的话, 那些Innodb存储类型的表的数据都放在这个共享表空间中,而系统变量innodb_file_per_table=1的话,那么InnoDB存储引擎类型的表就会产生一个独立表空间...

    图书馆管理系统论文序言

    可供写大家毕业论文时参考用,其中并没有写代码,只是写了图书馆管理系统的需求分析和软件的结构

    ARCGIS地理信息系统空间分析实验教程

    内容包括:ArcGIS简介、ArcMAP基础操作、数据的创建与编辑、数据变换、矢量数据的空间分析、栅格数据的空间分析、三维分析、空间统计分析、水文分析以及空间分析建模等。此外,本书还配有具典型性意义的实例分析及...

    管理信息系统:前言.ppt

    管理信息系统:前言.ppt

    Mysql InnoDB 共享表空间和独立表空间

    mysql InnoDB的存储管理也类似,但是mysql增加了一个共享表空间和独立表空间的概念;  一、概念  共享表空间: Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成,一个表可以...

    图书管理系统(前言,需求分析,正文)

    1.需求分析 问题描述: 该程序能实现对一本书进行采编入库、清除库存、借阅图书、归还图书且记录借书的用户信息,还有查找书、显示图书目录的功能,并且以该书的书号为关键字建立一个B_树。 输入形式: ...

    饭店管理序言.pptx

    饭店管理序言.pptx

    ArcGIS地理信息系统空间分析实验教程

    前言 第一章导论1 11地理信息系统1 111基本概念1 112GIS系统构成1 113GIS功能与应用3 114GIS技术与发展4 12GIS空间分析6 121空间分析6 122基于GIS的空间分析7 123常用GIS平台空间分析功能比较9 13ArcGIS 9概述10 131...

    管理信息系统课程设计前言.doc

    管理信息系统课程设计前言 前言 一、系统名称:安徽工程大学教职工管理信息系统 二、开发目标:高校人事管理的根本目的,在于把教职工队伍建设好,这是完成学校各 项工作任务和提高学校办学质量及其效益的主要保证。...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    目录 推荐序 前言 第1章 认识Oracle RAC ...15.3.6 UNDO表空间的调整 15.4应用系统 15.4.1应用拆分 15.4.2 SQL执行过程 15.4.3 SQL解析 15.4.4 SQL优化 15.4.5 SQL行源生成 15.4.6 SQL执行 15.5本章小结

    操作系统进程管理模拟程序

    原因:就绪队列指针为空、不能使用process_ready->name, process_ready->memory_need语句(因为没有开辟内存空间)。另外,程序并没有真正的对计算机内存进行管理(申请与释放),致使程序开始运行反应过慢。望读者自行...

    物流管理实习报告前言参考.doc

    物流管理实习报告前言参考.doc

    MySQL InnoDB表空间加密示例详解

    从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 。此功能为物理表空间数据文件提供静态加密。该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系统时加密,加密用的是AES算法,...

    管理信息系统课程设计前言(1).doc

    管理信息系统课程设计前言 前言 一、系统名称:安徽工程大学教职工管理信息系统 二、开发目标:高校人事管理的根本目的,在于把教职工队伍建设好,这是完成学校各 项工作任务和提高学校办学质量及其效益的主要保证。...

    基于Springboot宿舍寝室管理系统参考论文

    超级管理员角色具有人员管理、学生分配管理、宿舍管理、宿舍楼管理、公告管理、考勤管理、报修管理、迁出管理、调换宿舍管理功能;宿管员角色具有学生分配管理、宿舍管理、宿舍楼管理、公告管理、考勤管理、报修管理...

    数据库课程设计-班主任工作管理系统

    由于是2人小组,所以附有2个人的实验报告。尽情的享用吧。。...5.4.宿舍管理表 10 5.5奖惩记录表 10 5.6考勤管理表 11 5.7工作计划表 11 5.8主题班会表 11 5.9学生访谈记录表 11 第六章 个人总结 12

    商业广场物业管理投标书前言.docx

    商业广场物业管理投标书前言.docx

    武汉大学GIS空间分析pdf

    第一章 前言 第二章 空间数据 第三章 空间位置的描述与分析 第四章 空间分布 第五章 空间形态 第六章 空间关系(一)-空间距离 第七章 空间关系(二)-空间方位、拓扑、相似关系 第八章 空间分析模型

    金融风险管理0前言.pptx

    金融风险管理0前言.pptx

Global site tag (gtag.js) - Google Analytics