Oracle基础如何管理表空间和数据文件

2024年 5月 14日 50.3k 0

Oracle 在逻辑上以表空间存储数据,而实际上以数据文件进行存储。

表空间:

某一时刻只能属于一个数据库

由一个或多个数据文件组成

可进一步划分为逻辑存储单元

数据文件:

只能属于一个表空间和一个数据库

是方案对象数据的资料档案库

Oracle基础-如何管理表空间和数据文件-1

表空间类型

永久表空间

SYSTEM和SYSAUX

还原表空间

UNDOTBS1

临时表空间

TEMP

创建表空间

使用以下命令创建表空间:

CREATE TABLESPACE

CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M;

表空间的空间管理

本地管理的表空间:

在表空间内管理空闲区

使用位图来记录空闲区

每一位与一个块或一组块相对应

位的数值指明是空闲还是已占用

字典管理的表空间:

由数据字典管理空闲区

在分配或回收区时更新对应的表

还原表空间

用于存储还原段

不能包含任何其它对象

其中的区要在本地管理

只能使用 DATAFILE 和 EXTENT MANAGEMENT 子句

CREATE UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M;

Oracle的还原数据的作用

在实际的生产数据库中,用户读取数据库中一行数据进行对其修改,但是此时其他用户也需要读取该行数据以实现查询需要。Oracle数据库为了满足这种需求而设计了一种解决方案,即把用户需要修改的数据放在一个还原段中,此时除了正在修改数据的用户外其他用户只能读取该行数据在还原段中的数据。这样就实现了数据修改与数据读取的并行性,不影响多用户对数据访问。

还原段

Oracle基础-如何管理表空间和数据文件-2

读一致性

Oracle 服务器保证一条语句所看到的数据来自一致的时间,即使其它事务处理修改了该数据。

当 Oracle 服务器开始执行 SELECT 语句时,它确定当前系统更改号 (SCN),并确保这个 SCN 之前未提交的任何更改不会被这条语句处理。请考虑在进行多个更改的同时执行长时间运行的查询的情况。如果在这次查询开始时某行有未提交的更改,Oracle 服务器会构建该行的读一致性映像,方法是从还原段检索这些更改的前像,并将更改应用于内存中该行的副本。

Oracle基础-如何管理表空间和数据文件-3

临时表空间

用于排序操作

不能包含任何永久对象

建议在本地管理区

CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;

只读表空间

导致检查点操作

数据仅用于读操作

可从表空间删除对象

ALTER TABLESPACE userdata READ ONLY;

向表空间添加数据文件

通过添加其它数据文件来增加分配给表空间的空间

通过 ADD DATAFILE 子句可添加数据文件

示例:

ALTER TABLESPACE user_data ADD DATAFILE '/u01/oradata/userdata03.dbf' SIZE 200M;

移动数据文件的方法

ALTER TABLESPACE

表空间必须脱机

目标数据文件必须存在

ALTER TABLESPACE userdata RENAME DATAFILE '/u01/oradata/userdata01.dbf' TO '/u02/oradata/userdata01.dbf';

重命名数据文件的步骤:

使表空间脱机。

使用操作系统命令移动或复制文件。

执行 ALTER TABLESPACE RENAME DATAFILE 命令。

使表空间联机。

必要时使用操作系统命令删除该文件

删除表空间

不能删除下列表空间:

SYSTEM 表空间

具有活动段的表空间

INCLUDING CONTENTS 将删除段

INCLUDING CONTENTS AND DATAFILES 将删除数据文件

CASCADE CONSTRAINTS 将删除所有引用完整性约束

DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES;

获取表空间信息

通过以下查询可获取表空间和数据文件的信息:

表空间:

DBA_TABLESPACES

V$TABLESPACE

数据文件信息:

DBA_DATA_FILES

V$DATAFILE

临时文件信息:

DBA_TEMP_FILES

V$TEMPFILE

文中的概念来源于网络,如有侵权,请联系我删除。

欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。欢迎觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。

相关文章

27 期 | 死锁(3)解决死锁
OB Cloud 云数据库在西南!深耕海量场景,构建现代数据架构
出行365:用国产数据库为国人出行“护航”
oracle 查询改写
PostgreSQL系数据库使用COPY导数时如何实现增量及重复数据更新导入
oracle 自动撤销

发布评论