天天百科

Oracle数据库的物理结构有哪些

2023-08-21 分类:百科

TIPS:本文共有 2908 个字,阅读大概需要 6 分钟。

物理存储结构简介

Oracle的物理存储结构与逻辑存储结构是分离的,因此你可以在不影响逻辑结构访问的情况下对物理存储结构进行管理。Oracle数据库可以看作是持久化存储上保存有数据的文件集合。当你执行 CREATE DATABASE 时,会生成以下数据库文件:

数据文件和临时文件:数据文件(data file)是Oracle数据库在持久化存储中生成的物理文件,其中包含有表、索引等数据结构。临时文件(temp file)是属于临时表空间的数据文件。Oracle会以其他软件无法读取的专有格式向这些文件写入数据。

控制文件(control file):是追踪数据库物理组成的二进制文件。没有控制文件数据库就无法启动。

在线重做日志(online redo log):是记录对数据库操作的日志文件。

数据库实例(database instance)是管理数据库文件的内存结构的集合。

数据库文件的存储机制

Oracle数据库常见的管理物理文件存储的机制包括:

Oracle自动存储管理(Automatic Storage Management, ASM):Oracle ASM 是专门为 Oracle 数据库设计的一种文件系统。

操作系统的文件系统(Operating system file system):大多数 Oracle 数据将文件存储在文件系统中。所有的操作系统都有在文件系统中给文件分配和释放磁盘空间的文件管理器。文件系统通常建立在逻辑卷管理器(Logical volume manager, LVM)创建的逻辑卷上。

集群文件系统(Cluster file system):集群文件系统是一个分布式的文件系统,通常用于对客户提供高性能服务的服务器集群。集群中的一个节点失败不会使整个文件系统不可用。

在实际应用中,Oracle数据库可以组合使用以上存储机制。比如,可以将控制文件和在线 redo 日志存储在传统的文件系统中,用户的某些数据文件存储在裸分区(raw partitions)中,其他的数据文件存储在 ASM 中,而归档的 redo 日志文件存储到集群文件系统中。

Oracle ASM

自动存储管理是一个高性能、易于管理的 Oracle 数据库文件存储解决方案。Oracle ASM 也是一个专门为 Oracle 数据库提供文件系统的卷管理器(volume manager)。相对于传统的文件系统和存储管理器,ASM 具有如下优点:

简化了存储相关的任务,例如创建和布局(lay out)数据库、管理磁盘空间

在物理磁盘上分布数据,解决了热点(hot spots)问题,同时提供了一致的性能

在存储结构发生变化后自动再平衡(rebalance)数据。

要使用Oracle ASM,你需要为Oracle数据库分配已分区的磁盘,并具有条带化(Striping)和镜像(Mirroring)的首选项。Oracle ASM 管理磁盘空间,在所有可用资源之间分配 I/O 负载,以优化性能,同时消除了手动 I/O 调整的需要。

ASM 存储结构

Oracle 可以将数据文件存储为 ASM 磁盘组(ASM disk group)中的一个 ASM 文件(也可以存储其他类型的数据库文件)。

以下重要概念:

ASM磁盘:是分配给 ASM 磁盘组的存储设备。ASM 磁盘可以是一个物理磁盘,也可以是一个分区、存储阵列(storage array)中的一个逻辑单元号(Logical unit number, LUN)、一个逻辑卷、或者一个网络附属文件(network-attached file)。

ASM磁盘组:是 ASM 作为一个逻辑单元来管理的一个 ASM 磁盘的集合。在磁盘组内,Oracle ASM 会为数据库文件暴露一个文件系统接口。磁盘组内存储的文件内容是均匀分布或者条带化的,以解决热点问题并提供一致的性能。

ASM文件:是存储在磁盘组中的文件。可以将 Oracle 中的数据文件、控制文件、在线重做日志等其它类型的文件存储为 ASM 文件。ASM 文件名以加号和ASM 磁盘组文件名开头,例如 +DISKGROUP/DB_INSTANCE/DATAFILE/tablepsace.256.167523。

ASM区(ASM extents):是 ASM 文件的一部分。一个 ASM 文件由一个或多个 ASM 区组成。每个 ASM 区由一个磁盘上的一个或多个分配单元组成。(注意:这里的ASM 区与逻辑存储结构中的区不一样。)

ASM分配单元(allocation units):是 ASM 磁盘组内的基本分配单元。分配单元是 Oracle ASM 分配的最小的邻近的磁盘空间。一个或多个分配单元组成一个 ASM区。

ASM 实例

ASM 实例是仅用于管理 ASM 磁盘的特殊 Oracle 实例。Oracle 数据库实例和 ASM 实例都需要共享访问 ASM磁盘组中的磁盘。ASM 实例管理磁盘组的元数据,并向数据库实例提供文件布局信息。数据库实例不需要经过 ASM 实例就能直接向 ASM 磁盘进行 I/O 操作。

Oracle 使用相同的技术建立 ASM 实例与数据库实例。例如,与数据库实例类似,ASM 实例也有一个系统全局区(System global area, SGA)和后台进程。但是,ASM 实例不能挂载数据库,功能也比数据库实例少很多。

Oracle管理的文件 vs 用户管理的文件

Oracle 管理的文件(Oracle managed files)是一个允许你使用数据库对象(而不是文件名)来说明操作的文件命名策略。例如,你可以创建一个表空间而无需注明它的数据文件。Oracle 管理的文件使得数据库管理员无需直接管理数据库中的操作系统文件。Oracle ASM 需要使用 Oracle 管理的文件。

另一方面,通过用户管理的文件(user-managed files),你可以直接管理数据库中的操作系统文件。你需要自主决定文件结构和命名。比如,创建一个表空间时指定其他名字和其中数据文件的路径。

数据文件(data files)

在操作系统层面,Oracle 数据库将数据存储在数据文件中。Oracle 数据库必须至少有一个数据文件。

数据文件的用途

每个未分区的 schema 对象(比如表、索引)、对象的每个分区都存储在自己的段(segment)中。每个段都只属于一个表空间(tablespace)。表空间和数据文件存在以下重要区别:

每个表空间由一个或多个数据文件组成

一个数据库的所有数据都存储在数据库表空间的数据文件中

一个段可以跨越一个或多个数据文件,但是不能跨越多个表空间

一个Oracle数据库必须有 SYSTEM 和 SYSAUX 这两个表空间。在数据库创建时,Oracle 会自动为 SYSTEM 表空间分配第一批数据文件。SYSTEM 表空间中存有数据字典(data dictionary),即包含数据库元数据的表的一个集合。通常,Oracle 数据库还会有一个 undo 表空间和一个临时表空间(一般命名为 TEMP)。

如果觉得《Oracle数据库的物理结构有哪些》对你有帮助,请点赞、收藏,并留下你的观点哦!

阅读剩余内容
网友评论
相关阅读
小编推荐