数据文件(Data Files): 数据文件是物理上存储实际数据的文件,包含表、索引和其他数据库对象的实际数据。每个数据文件都与一个表空间相关联。数据文件可以存在于数据库服务器的文件系统中,也可以存在于 ASM(Automatic Storage Management)磁盘组中。
表空间(Tablespace): 表空间是逻辑上的存储单元,它是一组数据文件的集合。表空间是数据库中的一个重要概念,用于管理和组织存储在其中的表和索引等对象。每个表空间包含一个或多个数据文件,这些文件可以分布在不同的物理位置上。
表空间的类型: Oracle数据库中有不同类型的表空间,包括系统表空间、用户表空间、临时表空间等。系统表空间存储数据库的核心系统对象,而用户表空间则用于存储用户创建的表和索引。
关系: 一个表空间可以包含一个或多个数据文件,而一个数据文件只能属于一个表空间。表空间充当了逻辑和物理存储之间的桥梁。一个数据库可以包含多个表空间,每个表空间可以有不同的存储特性和用途。
个人理解
oracle data block一般8k是Oracle用来存储数据的最小单元物理概念是的操作系统储存块一般4k,oracle 数据块操作系统的两倍,多个连续的数据块构成extent区最开始一般一个extent由8个块后续可增加到16,32....,多个不一定连续extent组成Segment段。
数据文件是物理概念就是数据存放的实际物理空间,表空间是逻辑概念一个或多个数据文件组成。
表也是逻辑概念一个表可以由一个或者多个段构成,表的数据和逻辑信息存储在段中,一个表空间可以包含多个表
表空间类型
system表空间,数据字典存放在system表空间,触发器,存储过程,包,表的信息用户使用的表空间里面只是存放了没有逻辑的数据而表的信息存储在system表空间
sysaux表空间是system表空间的辅助表空间一些产品的新特性不是特别重要的信息
undo表空间
一个数据库可以包含多个撤销表空间但是一次只能使用一个,如果没有undo表空间则会先使用system表空间
undo表空间的作用:
事务回滚: 当事务发生错误或者由于其他原因需要回滚时,Undo 表空间中的信息被用来撤销事务所做的更改。
并发控制: Undo 表空间也用于支持数据库的并发控制机制。在多用户环境中,多个事务可能同时访问和修改相同的数据。Undo 表空间通过保存每个事务的历史版本数据,确保数据的一致性和隔离性。
读一致性: 当一个事务正在对某个数据进行修改时,其他事务可能需要读取该数据。通过 Undo 表空间,数据库可以提供读取一致性,即其他事务可以读取数据的历史版本而不受正在进行的修改的影响。
回滚段管理: Undo 表空间包含回滚段,用于存储与事务相关的信息。回滚段是用于维护 Undo 数据的逻辑结构。
临时表空间
存储临时数据比如排序数据(磁盘排序)没有存储实际影响数据库的数据
创建表空间
1.永久表空间
create tablespace tablespace_name datafile '指定数据文件的路径‘ size 100M aautoextend on next 10M maxsize 500M;
创建表空间的时候datafile子句就创建了数据文件可以设置自动增加和最大范围
2.临时表空间
create temporary tablespace 名字 tempfile '指定临时表空间文件’ size 100M group 1;
也可以自动扩充
修改临时表空间alter database default temporary tablespace 名字;不改就是自带的TEMP表空间
临时表空间组创建的时候直接指定就行 group 1;
查看默认临时表空间
SELECT tablespace_name FROM dba_tablespaces WHERE contents = 'UNDO' AND status = 'ONLINE';
3.undo表空间
create undo tablespace 名字 undofile '路径‘ size 100M;
修改默认undo表空间
alter system set undo_tablespace=undotbs1;
查看默认undo表空间
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'undo_tablespace';