OCP认证考试指南(6):管理Oracle存储结构
来源:互联网 发布:服务器装centos系统 编辑:程序博客网 时间:2024/04/29 06:21
一、基本的Oracle存储结构:表空间与数据文件
Oracle数据库中具有两种类型的存储:物理存储和逻辑存储。
上面的Oracle存储结构模型中,可以看出下列要素:
- 每个数据库(Database)都必须由一个或多个表空间(Tablespace)组成。每个表空间都必须属于并且只属于一个数据库。
- 每个表空间都必须由一个或多个数据文件(Datafile)组成。每个数据文件都必须属于并且只属于一个表空间。
- 每个数据文件都必须由一个或多个操作系统块(Operation System Block)组成。每个操作系统块都必须属于并且只属于一个数据文件。
- 每个表空间都可以包含一个或多个段(Segment)。每个段都必须存在并且只能存在于一个表空间内。
- 每个段都必须由一个或多个区间(Extent)组成。每个区间都必须属于并且只属于一个段。
- 每个区间都必须由一个或多个Oracle数据块(Oracle Block)组成。每个Oracle数据块都必须属于并且只属于一个区间。
- 每个区间都必须被定位并且只能定位在一个数据文件内。数据文件中的空间可以被分配为一个或多个区间。
- 每个Oracle数据块都必须由一个或多个操作系统块组成。每个操作系统块都可以是并且只能是一个Oracle数据块的部分。
1、物理存储结构
物理结构是操作系统操作Oracle数据库时能够看见的结构。
1.1、Oracle数据文件
数据文件由下列3部分组成:头部、区间(已分配的空间)以及空闲空间(未分配的空间)。
数据文件的头部(Header)将其标识为数据库的一部分,并且存储了该数据文件的细节,细节包括数据文件所属的表空间以及最后执行的检查点。这样,Oracle就能够在启动时检查所有相关文件是否同步。数据文件的剩余部分由区间和空闲空间组成,通过创建、删除和更改Oracle的段(Segment)逻辑存储组件就可以对这些剩余部分进行管理。
每个Oracle数据文件都只属于一个表空间。
1.2、操作系统块
操作系统块(Operating System Block)是文件系统所使用的最小分配单元。
2、逻辑存储结构
2.1、表空间
在数据库中,表空间是最大的存储结构。在Oracle 10G版本中,数据库至少具有下列3个表空间:SYSTEM、SYSAUX以及一个撤销表空间。
在Oracle中创建一个用户时,需要指定默认的表空间,这个默认的表空间能够存储用于该用户创建的所有段的区间。尽管最好使用为数据库定义的全局临时表空间,但还是可以创建一个存储临时段的临时表空间。
所有用户共享DBA所设置的撤销表空间。查看用户的默认表空间和临时表空间,我们可以执行:
SQL> select username, default_tablespace, temporary_tablespace 2 from dba_users;
- 系统表空间
系统表空间(system tablespace)是每个Oracle数据库都必须具备的。其功能是在系统表空间中存放诸如表空间名称、表空间所含数据文件等数据库管理所需的信息。系统表空间的名称是不可更改的。系统表空间必须在任何时候都可以用,也是数据库运行的必要条件。因此,系统表空间是不能脱机的。
系统表空间包括数据字典、存储过程、触发器和系统回滚段。为避免系统表空间产生存储碎片以及争用系统资源的问题,应创建一个独立的表空间用来单独存储用户数据。 - SYSAUX表空间
SYSAUX表空间是随着数据库的创建而创建的,它充当SYSTEM的辅助表空间,主要存储除数据字典以外的其他对象。SYSAUX也是许多Oracle 数据库的默认表空间,它减少了由数据库和DBA管理的表空间数量,降低了SYSTEM表空间的负荷。 - 临时表空间
相对于其他表空间而言,临时表空间(temp tablespace)主要用于存储Oracle数据库运行期间所产生的临时数据。数据库可以建立多个临时表空间。当数据库关闭后,临时表空间中所有数据将全部被清除。除临时表空间外,其他表空间都属于永久性表空间。 - 撤销表空间
用于保存Oracle数据库撤销信息,即保存用户回滚段的表空间称之为回滚表空间(或简称为RBS撤销表空间(undo tablespace))。在Oracle8i中是rollback tablespace,从Oracle9i开始改为undo tablespace。在Oracle 10g中初始创建的只有6个表空间sysaux、system、temp、undotbs1、example和users。其中temp是临时表空间,undotbs1是undo撤销表空间。
2.2、段
表空间内的空间被分配给若干段。段(Segment)是数据库中要求存储的对象,如一个表或一个索引。因为并不存储数据,所以视图(View)不是段。Oracle允许创建多种不同类型的段。对DBA_SEGMENTS视图的查询:
SQL> select distinct segment_type 2 from dba_segments;
2.3、区间
区间(Extent)也称为数据区,是一组连续的数据块。当一个表、回滚段或临时段创建或需要附加空间时,系统总是为之分配一个新的数据区。一个数据区不能跨越多个文件,因为它包含连续的数据块。使用区的目的是用来保存特定数据类型的数据,也是表中数据增长的基本单位。在Oracle数据库中,分配空间就是以数据区为单位的。一个Oracle对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。
区间是为某个段分配的若干邻近数据块的集合。可以在表空间内本地管理区间(推荐),也可以对区间进行字典管理(向后美容性)。
2.4、数据库块
Oracle数据块(Data Block)是一组连续的操作系统块。分配数据库块大小是在Oracle数据库创建时设置的,数据块是Oracle读写的基本单位。数据块的大小一般是操作系统块大小的整数倍,这样可以避免不必要的系统I/O操作。
二、创建与管理表空间
1、CREATE TABLESPACE命令
CREATE TABLESPACE命令与CREATE TEMPORARY TABLESPACE命令都可以用SQL*Plus或iSQL*Plus创建表空间。(OEM暂不用,因为图形化界面使用简单,学习中不考虑)
CREATE TABLESPACE命令的完整语法有些复杂:
CREATE [BIGFILE | SMALLFILE] [TEMPORARY] TABLESPACE tablespace nameDATAFILE datafile spec | TEMPFILE tempfile spec[MINIMUM EXTENT minimum extent size][BLOCKSIZE blocksize][[COMPRESS|NOCOMPRESS] DEFAULT STORAGE (default storage clause)][LOGGING | NOLOGGING][FORCE LOGGING][ONLINE | OFFLINE][EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM SIZE size]][SEGMENT SPACE MANAGEMENT MANUAL | AUTO][FLASHBACK ON | OFF]
创建一个表空间:
SQL> create tablespace demo nologging 2 datafile '/ora02/oradata/ocp/demo01.dbf' size 10M; Tablespace created.
创建临时表空间:
SQL> create temporary tablespace tempDemo 2 tempfile '/ora02/oradata/ocp/temp01.ora' size 10M 3 autoextend off; Tablespace created.
2、修改表空间
2.1、使一个表空间脱机
语法:
ALTER TABLESPACE tablespace name OFFLINE;
例:
SQL> alter tablespace demo offline; Tablespace altered.
2.2、使一个表空间联机
语法:
ALTER TABLESPACE tablespace name ONLINE;
例:
SQL> alter tablespace demo online; Tablespace altered.
2.3、使一个表空间只读
语法:
ALTER TABLESPACE tablespace name READ ONLY;
例:
SQL> alter tablespace demo read only; Tablespace altered.
2.4、使一个表空间可读写
语法:
ALTER TABLESPACE tablespace name READ WRITE;
例:
SQL> alter tablespace demo read write; Tablespace altered.
2.5、添加临时表空间的数据文件
语法:
ALTER TABLESPACE temp tablespace name ADD TEMPFILE path and file name SIZE size;
例:
SQL> alter tablespace tempDemo add tempfile 2 '/ora02/oradata/ocp/tempDemo.dbf' size 10M; Tablespace altered.
2.6、调整临时表空间的数据文件,例如大小
语法:
ALTER DATABASE TEMPFILE ADD TEMPFILE path and file name RESIZE size;
例:
SQL> alter database tempfile '/ora02/oradata/ocp/temp01.ora' resize 5M; Database altered.
2.6、将临时表空间脱机
语法:
ALTER DATABASE TEMPFILE path and file name OFFLINE;
例:
SQL> alter database tempfile '/ora02/oradata/ocp/temp01.ora' offline; Database altered.
2.7、将临时表空间联机
语法:
ALTER DATABASE TEMPFILE path and file name ONLINE;
例:
SQL> alter database tempfile '/ora02/oradata/ocp/temp01.ora' online; Database altered.
2.8、表空间重命名
语法:
ALTER TABLESPACE old tablespace name RENAME TO new tablespace name
例:
SQL> alter tablespace demo rename to testdemo; Tablespace altered.
3、删除表空间
3.1、删除表空间,但不删除其文件
语法:
DROP TABLESPACE tablespace name;
例:
SQL> drop tablespace demo; Tablespace dropped.
3.2、删除表空间及其包含的内容
语法:
DROP TABLESPACE tablespace name INCLUDING CONTENTS;
例:
SQL> drop tablespace demo including contents; Tablespace dropped.
3.3、删除表空间及其包含的内容、数据文件以及相关约束一同删除
语法:
DROP TABLESPACE tablespace name INCLUDING CONTENTS CASCADE CONSTRAINT;
例:
SQL> drop tablespace demo including contents cascade constraint; Tablespace dropped.
- OCP认证考试指南(6):管理Oracle存储结构
- OCP认证考试指南(5):管理Oracle进程
- OCP认证考试指南(16):管理撤销
- OCP认证考试指南(15):监视Oracle
- OCP认证考试指南(21):管理Oracle数据库中的全球化特性
- OCP认证考试指南(7):管理数据库用户(1)
- OCP认证考试指南(7):管理数据库用户(2)
- OCP认证考试指南(7):管理数据库用户(3)
- OCP认证考试指南(7):管理数据库用户(4)
- OCP认证考试指南(14):管理数据库性能(1)
- OCP认证考试指南(14):管理数据库性能(2)
- OCP认证考试指南(8):管理数据库对象
- OCP认证考试指南(13):管理共享服务器
- OCP认证考试指南(3):创建Oracle数据库(1)
- OCP认证考试指南(3):创建Oracle数据库(2)
- OCP认证考试指南(3):创建Oracle数据库(3)
- OCP认证考试指南(1):Oracle的基本概念
- OCP认证考试指南(2):安装Oracle Database 10G
- OCP认证考试指南(5):管理Oracle进程
- Java语言中使用OpenMP
- 日期选择,累加,赋值
- 红酒的储存方法
- 一个反射引发的异常惨案
- OCP认证考试指南(6):管理Oracle存储结构
- 如何用VC 2005打开VC 2008的工程
- SEO外链建设中容易出现的8种片面做法
- [OpenSource]PHPCMS二次开发
- 为提高绩效,HR需要做的改进工作
- OCP认证考试指南(7):管理数据库用户(1)
- 关于字符串处理
- Linux下安装JDK
- linux sed命令详解