ORACLE逻辑存储结构 (表空间笔记整理)
数据库中
一系列连续块构成一个区
一个或多个区构成一个段
一个或多个段构成一个表空间
若干个表空间构成一个数据库
通常一个数据库对象只拥有一个段, 一个段至少包含一个区.
一.表空间
1.表空间分为系统表空间和非系统表空间
小文件表空间: 即系统默认的表空间. System表空间, sysaux表空间
大文件表空间: 是为超大型数据库设计的, 只包含一个大数据文件, 该文件的大小为128KB<size<128TB.
可以简化数据文件的管理, 减少SGA的需求, 减少控制文件.
表空间的管理包括:
创建表空间
修改表空间
表空间的备份
大文件表空间的管理
2.扩展表空间的方式有哪些?
1).为表空间添加数据文件
SQL > ALTER TABLESPACE ORCLTBS1 ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF' SIZE10M; |
为ORCL数据库中表空间名为ORCLTBS1添加一个大小为10MB的新数据文件.
2).改变数据文件的大小
SQL > ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF' RESIZE20M; |
将ORCL数据库中表空间名为ORCLTBS1的数据文件ORCLTBS1_2.DBF增加到20MB.
3).允许数据文件自动扩展
SQL > ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF' AUTOEXTEND ON NEXT5M MAXSIZE100M; |
3.修改表空间的可用性
SQL > ALTER TABLESPACE ... OFFLINE|ONLINE; |
SQL > ALTER TABLESPACE ORCLTBS1 OFFLINE; |
将表空间ORCLTBS1设置为OFFLINE状态
SQL > ALTER TABLESPACE ORCLTBS1 ONLINE; |
将表空间ORCLTBS1设置为ONLINE状态
4.给表空间重命名:
ALTER TABLESPACE ORCLTBS1 RENAME TO ORCLTBS1_NEW; |
5.表空间的备份
SQL > ALTER TABLESPACE ORCLTBS1 BEGIN BACKUP; |
复制ORCLTBS1表空间的数据文件ORCLTBS1_1.dbf和ORCLTBS1_2.dbf到目标位置.
SQL > ALTER TABLESPACE ORCLTBS1 END BACKUP; |
6.删除表空间
1).除了system表空间和sysaux表空间外, 其他表空间都可以删除.
2).一旦表空间被删除, 该表空间中的所有数据将永久性丢失.
3).如果表空间中的数据正在被使用, 或表空间中包含未提交事务的回滚信息, 则该表空间不能删除
SQL > DROP TABLESPACE ORCLTBS1 INCLUDING CONTENTS; |
7.大文件表空间的操作
由于大文件表空间只含有一个数据文件, 因此可以通过对表空间的操作, 实现对数据文件的透明操作.
改变表空间的大小或扩展性 è 改变数据文件的大小及扩展性的目的
1).改变数据文件的大小
SQL > ALTER TABLESPACE ORCLTBS1 RESIZE20M; |
将ORCL数据库中表空间名为ORCLTBS1的数据文件ORCLTBS1_2.DBF增加到20MB.
2).允许数据文件自动扩展
SQL > ALTER TABLESPACE ORCLTBS1 AUTOEXTEND ON NEXT5M MAXSIZE UNLIMITED; |
二.数据块
数据块:1).输入输出的最小单位
2).是数据库中最小的逻辑存储单元, 也是数据库执行输入/输出操作的最小单位, 由一个或多个操作系统块构成.
三.区
区: 是由一系列连续的数据块构成的逻辑存储单元, 是存储空间分配与回收的最小单位.
区的管理主要指的是: 分配与回收
当创建一个数据库对象时, oracle为对象分配若干个区, 以构成一个段来为对象提供初始的存储空间.
1.区的分配
1).区分配采用自动扩展方式进行
SQL > CREATE TABLESPACE ORACLTBS6 DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF' SIZE20M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; |
本地管理方式, 自动扩展
2).区分配采用固定大小, 每个区5MB
SQL > CREATE TABLESPACE ORACLTBS7 DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF' SIZE10M EXTENT MANAGEMENT UNIFORM SIZE 5M; |
2.区的回收
通常分配给段的区将一直保留在段中, 不论区中的数据块是否被使用. 只有当段所属的对象被删除时, 段中所有的区才会被回收.
四.段
段是由一个或多个连续或不连续的区组成的逻辑存储单元. 段是表空间的组成单位, 代表特定数据类型的数据存储结构.
通常一个数据库对象只拥有一个段, 一个段至少包含一个区.
1).数据段
2).索引段
3).临时段
4).回滚段: 用于数据被修改之前的值.
可以实现事务回滚, 数据库恢复, 数据库的读一致性和闪回查询等