表空间及数据文件

确定表空间和数据文件的用途
创建表空间
管理表空间
使用“Oracle 管理文件” (Oracle Managed Files, OMF)创建和管理表空间

在这里插入图片描述

Oracle 在逻辑上以表空间存储数据,而实际上以数据文件进行存储。
表空间:
某一时刻只能属于一个数据库
由一个或多个数据文件组成
可进一步划分为逻辑存储单元
数据文件:
只能属于一个表空间和一个数据库
是方案对象数据的资料档案库

在这里插入图片描述

表空间类型

系统表空间:
由数据库创建
包括数据字典
包括系统还原段
非系统表空间:
用于分开存储段
方便空间管理
控制分配给用户限额空间
alter user oracle quota 10m on users;

在这里插入图片描述
表空间的空间管理

本地管理的表空间:
在表空间内管理空闲区
使用位图来记录空闲区
每一位与一个块或一组块相对应
位的数值指明是空闲还是已占用
字典管理的表空间:
由数据字典管理空闲区
在分配或回收区时更新对应的表

本地管理表空间
在这里插入图片描述
减少了对数据字典表的争用
分配或回收空间时不生成还原数据
无需合并
Create tablespace kong2
Datafile ‘d:oracle\oradata\fox\kong2.dbf’ size 5m
Extent management local autoallocate

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
缺省临时表空间

指定数据库范围内的缺省临时表空间
避免使用SYSTEM 表空间存储临时数据
可使用以下命令进行创建:
CREATE DATABASE
在本地管理
ALTER DATABASE
ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE temp;

创建缺省临时表空间
在创建数据库期间:
CREATE DATABASE DBA01
LOGFILE
GROUP 1 (’/ H O M E / O R A D A T A / u 01 / r e d o 01. l o g ) S I Z E 100 M , G R O U P 2 ( / HOME/ORADATA/u01/redo01.log') SIZE 100M, GROUP 2 ('/ HOME/ORADATA/u02/redo02.log’) SIZE 100M,
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
DATAFILE ‘/ H O M E / O R A D A T A / u 01 / s y s t e m 01. d b f S I Z E 325 M U N D O T A B L E S P A C E u n d o t b s D A T A F I L E / HOME/ORADATA/u01/system01.dbf' SIZE 325M UNDO TABLESPACE undotbs DATAFILE '/ HOME/ORADATA/u02/undotbs01.dbf’ SIZE 200
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE ‘/$HOME/ORADATA/u03/temp01.dbf’ SIZE 4M
CHARACTER SET US7ASCII

创建缺省临时表空间
创建数据库后:
ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE default_temp2;
查询DATABASE_PROPERTIES 以确定数据库的缺省临时表空间
SELECT * FROM DATABASE_PROPERTIES;
OEM

缺省临时表空间的限制条件

不能对缺省临时表空间执行下列操作:
将其删除,除非已经有新的缺省临时表空间
使其脱机
更改为永久表空间

只读表空间
使用以下命令可将表空间置于只读模式

导致检查点操作
数据仅用于读操作
可从表空间删除对象
OEM

使表空间脱机

无法访问数据
不能设为脱机的表空间:
SYSTEM 表空间
具有活动的还原段的表空间
缺省临时表空间
使用以下命令可使表空间脱机:

使用以下命令可使表空间联机:

OEM

更改存储设置
使用ALTER TABLESPACE 命令更改存储设置
ALTER TABLESPACE userdata MINIMUM EXTENT 2M;
ALTER TABLESPACE userdata DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999);
不能更改在本地管理的表空间的存储设置
OEM

调整表空间的大小
表空间大小可通过以下方法进行调整:
改变数据文件的大小:
使用AUTOEXTEND 自动调整
使用ALTER TABLESPACE 手动调整
使用ALTER TABLESPACE 添加数据文件
在这里插入图片描述

启用数据文件自动扩展
可使用以下命令自动调整大小:
CREATE DATABASE
CREATE TABLESPACE
ALTER TABLESPACE … ADD DATAFILE
示例:
在这里插入图片描述
查询DBA_DATA_FILES 视图以确定是否启用了AUTOEXTEND
OEM

手工改变数据文件的大小
使用ALTER DATABASE 可手动增加或减少数据文件的大小
调整数据文件大小可在无需添加更多数据文件的情况下添加更多空间
手动调整数据文件大小将回收数据库中的未用空间
示例

在这里插入图片描述

在表空间中增加数据文件
通过添加其它数据文件来增加分配给表空间的空间
通过ADD DATAFILE 子句可添加数据文件
示例:
在这里插入图片描述

使用ALTER TABLESPACE移动数据文件
表空间必须是离线的.
目标数据文件必须存在

在这里插入图片描述
重命名数据文件的步骤:
使表空间脱机。
使用操作系统命令移动或复制文件。
执行ALTER TABLESPACE RENAME DATAFILE 命令。
使表空间联机。
必要时使用操作系统命令删除该文件。

移动数据文件的方法

数据库必须已启动.
目标数据文件必须存在
在这里插入图片描述

删除表空间
不能删除下列表空间:
SYSTEM 表空间
具有活动段的表空间
INCLUDING CONTENTS 将删除段
INCLUDING CONTENTS AND DATAFILES 将删除数据文件
CASCADE CONSTRAINTS 将删除所有引用完整性约束
在这里插入图片描述

为表空间的创建配置OMF
使用OMF创建表空间必须配置初始参数
DB_CREATE_FILE_DEST: 设置缺省的数据文件的路径
初始参数可以在初始参数文件中设置或使用ALTER SYSTEM 命令动态地设置
在这里插入图片描述

使用OMF创建表空间
不一定用OMF来配置CREATE TABLESPACE中的 DATAFILE 语句.
在这里插入图片描述
通过DB_CREATE_FILE_DEST.来说明数据文件在文件系统中创建
缺省条件下文件的大小是100M,也可通过设置autoextend大小没有限制.
当表空间被删除,所有的文件都在物理位置上被删除.
一个OMF可以添加到已存在的表空间中.

获得表空间的信息
表空间的信息:
DBA_TABLESPACES
V T A B L E S P A C E : D B A D A T A F I L E S V TABLESPACE 数据文件信息: DBA_DATA_FILES V DATAFILE
临时文件信息:
DBA_TEMP_FILES
V$TEMPFILE

本节应掌握:
使用表空间分离数据
创建各种类型的表空间
管理表空间
使用OMF

猜你喜欢

转载自blog.csdn.net/HuAustin/article/details/88801578