Oracle 学习笔记(一、物理体系结构——2.3 数据库区)

Oracle 数据库的物理结构主要由数据库区组成,数据库区可以理解为数据库存储数据的实际物理存储空间。它包含多个物理文件和逻辑结构,用于存储数据、日志信息、控制信息等。数据库区的核心部分包括:

1. 数据文件(Data Files)

数据文件是数据库存储区中最重要的物理结构,用于存储数据库的实际数据。每个表、索引、视图等对象的数据都保存在这些数据文件中。

  • 段(Segment):段是数据库中存储特定类型数据的物理存储区域。每种数据库对象(如表、索引、临时段等)都有对应的段。
  • 区(Extent):段由多个区组成。每个区由一组连续的数据块构成。数据库会通过分配新的区来扩展段的大小。
  • 数据块(Oracle Blocks):数据块是数据文件的最小存储单位。Oracle 数据库通过数据块管理存储空间。块的大小可以通过 DB_BLOCK_SIZE 参数来设置(通常为 8KB)。

数据文件的主要特点:

  • 可以跨多个磁盘分布以优化 I/O 性能。
  • 数据文件是属于表空间的物理文件,每个表空间可以包含多个数据文件。

2. 控制文件(Control Files)

控制文件是 Oracle 数据库中非常关键的文件,负责存储数据库的元数据信息。每个数据库至少有一个控制文件,通常为了容错性会配置多个控制文件副本。

控制文件包含以下重要信息:

  • 数据库名称和数据库唯一标识符(DBID)。
  • 数据库的创建时间。
  • 数据文件和重做日志文件的名称和位置。
  • 数据文件的检查点信息。
  • 重做日志的序列号。
  • 当前的归档日志信息。
  • 控制文件用于维护数据库的一致性,并且在数据库的启动和恢复过程中扮演着关键角色。

3. 重做日志文件(Redo Log Files)

重做日志文件是 Oracle 数据库中用于恢复事务的文件。每次对数据库的更改都会被记录到重做日志文件中,以确保在系统故障或崩溃时,可以通过重做日志恢复数据库。

  • 重做日志组:重做日志文件通常被组织成多个日志组(至少两个),每个日志组至少包含一个重做日志成员。这样当一个日志组填满时,Oracle 可以切换到下一个日志组进行日志写入(称为日志切换)。
  • 联机重做日志文件:这些文件始终在线,并用于记录数据库的所有更改。每个事务的提交操作会写入重做日志文件。
  • 日志写进程(LGWR):负责将重做条目从内存中的重做日志缓冲区写入联机重做日志文件。
    重做日志文件是数据库恢复的一部分,帮助数据库在故障后进行实例恢复和介质恢复。

4. 归档日志文件(Archived Redo Log Files)

当数据库处于**归档模式(ARCHIVELOG)**时,Oracle 会将填满的联机重做日志文件复制为归档日志文件。归档日志用于支持数据库恢复到某个时间点的能力。

归档日志文件的特点:

  • 存储的是历史事务的日志,通常在进行备份和恢复操作时使用。
  • 可以用于完全恢复或不完全恢复数据库。

5. 参数文件(Parameter Files, PFILE 和 SPFILE)

参数文件用于存储数据库实例启动时所需的配置信息,定义了数据库实例运行的各种参数。

  • PFILE(Parameter File):是文本文件,可以手动编辑,用于设置数据库的初始化参数。
  • SPFILE(Server Parameter File):是二进制文件,支持在线修改参数配置,是 Oracle 数据库的推荐方式。
    参数文件中包含了数据库的内存配置、日志文件路径、控制文件路径、各种性能参数(如 SGA 大小、PGA 大小等)。

6. 密码文件(Password File)

密码文件用于存储 Oracle 数据库的特定用户密码,通常是用于授权用户进行数据库管理任务(如 sysdba 用户)。

  • SYSDBA 权限:通过密码文件授予管理员用户 SYSDBA 权限,以便执行诸如启动和关闭数据库、恢复数据库等特权操作。
  • 密码文件可以配置在服务器端,并且可以限制哪些用户可以使用远程数据库管理工具连接到数据库。

7. 撤销表空间(Undo Tablespace)

撤销表空间用于管理 Oracle 数据库的撤销段(Undo Segments),撤销段存储了每个事务之前的旧数据值,以支持回滚操作、读一致性和数据库恢复。

撤销表空间的主要功能:

  • 事务回滚:当用户执行回滚操作时,数据库会从撤销段中读取原始数据。
  • 读一致性:当多个用户同时查询数据库时,撤销表空间提供一致的读视图,防止用户读取到正在修改的未提交数据。
  • 事务恢复:当系统崩溃或事务失败时,撤销表空间可以帮助数据库恢复未提交的事务。

8. 临时表空间(Temporary Tablespace)

临时表空间用于存储查询操作中生成的临时数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值