Oracle 数据库文件

2025年1月23日 | 7 分钟阅读

数据库是存储在磁盘驱动器(物理存储)上用于组织数据的数据库文件集合。物理上,这些文件在我们进行日常操作时可能会看到。Oracle 数据库有九种不同类型的文件。

它们按以下顺序排列:

  • 数据文件
  • 控制文件
  • 重做日志文件
  • 数据库备份文件
  • 已归档重做日志文件
  • 参数文件
  • 密码文件
  • 告警日志文件
  • 跟踪文件

请查看下图以获得更好的理解。

Oracle Database Files

数据文件

数据文件实际上包含用户、应用程序和元数据,即行、表、索引、进程、视图等。表空间用于表示数据文件的集合。数据库写入器用于存储数据。

  • 结构:块、扩展段和段组织数据文件。段是扩展段的集合,区是块的集合,块是记录存储的最低单位。
  • 用途:所有用户和应用程序数据,包括表和索引,都存储在数据文件中。这些文件存储被添加或更改的数据。
  • 管理要点:为避免空间问题,可能需要定期调整大小和进行监控。添加数据文件可以增加表空间的存储容量。

控制文件

这些文件包含有关数据文件和在线重做日志文件的元数据,例如名称、位置、时间戳和状态。数据库实例需要此信息才能启动和访问数据库。

  • 结构:控制文件中的元数据以二进制格式存储。它们跟踪数据库的结构、数据文件的当前状态以及重做日志。
  • 用途:在恢复过程和每次数据库启动时都会使用控制文件。它们对于挂载和访问数据库是必需的。
  • 管理注意事项:为防止单点故障,建议使用控制文件的多路复用(保留多个副本)。

重做日志文件

重做日志文件用于数据恢复,并用于存储数据库发生的更改。

  • 结构:重做日志文件以循环方式写入;当前重做日志完成后,数据库会直接移至下一个。
  • 用途:事务恢复依赖于重做日志文件。它们监控对数据库的所有修改,以确保在崩溃时不会丢失任何数据。
  • 管理因素:重做日志记录的大小和数量必须主要根据事务范围来决定,以防止性能瓶颈。需要定期进行监控和归档(在 ARCHIVELOG 模式下)。

已归档重做日志文件

已归档的重做日志文件称为已归档重做日志文件。每个重做日志文件都会被归档并保存在其他地方,用于备份和恢复目的。它保留了仍在发生的数据修改历史记录。您可以使用备份记录和已归档重做日志文件来修复您的 Oracle 数据库。

  • 结构:重做日志文件以循环方式写入,当前重做日志完成后,数据库活动将直接写入下一个重做日志。
  • 用途:事务恢复依赖于重做日志文件。为确保在崩溃时不会丢失任何数据,它们会跟踪对数据库进行的所有修改。
  • 管理注意事项:为避免性能瓶颈,重做日志文件的数量和大小必须根据事务量来设置。需要定期进行监控和归档(在 ARCHIVELOG 模式下)。
Oracle Database Files

例如,考虑 Oracle 数据库 dotnet_db1。下午 2:00,数据库备份开始。使用另一个位置存储备份文件。下午 4:00 左右数据库崩溃,所有数据被擦除。更重要的是,我们必须恢复到 dotnet_db1 的数据。我们必须检查文件,看看如何将整个数据库恢复到原始状态。

我们现在拥有下午 2:00 恢复的备份文件。因此,数据在下午 2:00 之前是可用的。那么从下午 2:00 到下午 4:00 的最后一些事务怎么办?归档重做日志文件现在已将其放置在正确的位置。它跟踪对数据库的所有修改。

因此,我们可以使用归档重做日志文件从下午 2 点恢复到下午 4 点的数据。我们还可以通过使用这些备份文件和归档重做日志文件来恢复数据库并将其恢复到正常状态。

参数文件

存在两个不同的参数文件。

  • Profile
  • Spfile

此文件指定数据库实例启动时的配置。参数文件包含所有数据库配置。

  • 结构
    PFILE:参数及其值列在名为 PFILE 的文本文件中。
    SPFILE:一个具有动态管理功能的二进制文件,其中包含参数值。
  • 用途:参数文件用于配置实例特定的参数,例如内存分配、进程限制和其他操作因素。
  • 管理注意事项:由于 SPFILE 可以动态更改而无需重新启动,因此推荐使用它。参数文件的备份对于应急计划至关重要。

注意:由于文件是二进制的,无法直接编辑;相反,您必须使用 Oracle 命令。Pfile 是一个包含参数的文件。您可以再次编辑它。如果您丢失了该文件,也没有问题;您可以重新生成它。但是,为了恢复所有数据库配置,最好备份该文件。

密码文件

为了远程登录,具有管理权限的用户(sys 用户)必须在此文件中保存其密码。sys 用户被授予所有数据库特权。

  • 结构:数据库身份验证的密码以加密方式存储在二进制文件中。
  • 用途:密码文件,尤其是在远程连接时,用于身份验证具有 SYSDBA 或 SYSOPER 访问权限的管理用户。
  • 管理要点:妥善保管和更新密码文件,以避免未经授权的访问。如果进行了修改,请确保密码文件与数据库同步更新。

注意:DBA 的密码不能保存在数据库中,因为 Oracle 在实例启动前无法访问它。因此,DBA 的身份验证需要在数据库外部进行。

告警日志文件

Oracle 数据库按顺序保存所有已写入消息和错误的按时间顺序记录。因此,如果您试图调试数据库问题,这应该是您应该使用的文件。此日志文件包含有关文件修改以及其他错误的所有信息。例如,您可以查看数据库启动和关闭的时间。

  • 结构:一个简单的文本文件,记录重要活动,如错误、日志切换、数据库启动和关闭。
  • 用途:告警日志监控和诊断数据库。它提供了重要事件的历史记录。
  • 管理技巧:定期检查告警日志以查找问题。可以通过定期删除或归档告警日志来控制其大小。

跟踪文件

每个服务器和后台进程都会写入跟踪文件。在检测到内部错误时,进程会将其相关信息记录到其跟踪文件中。

  • 结构:用户会话和后台进程生成的包含错误信息和性能统计数据的详细诊断文件。
  • 用途:跟踪文件用于数据库操作故障排除、性能优化和调试。
  • 管理注意事项:如果需要为故障排除生成跟踪文件,请启用并配置它。为防止空间问题,请监控和控制跟踪目录的大小。

转储文件

  • 结构:在发生重大错误或手动诊断后获得的详细数据文件。
  • 用途:在发生重大错误或启动手动诊断转储时,通常会生成转储文件。它们用于支持情况和深入分析。
  • 管理注意事项:由于这些文件的大小,需要谨慎处理。为了腾出磁盘空间,请删除过时的转储文件,并在故障排除过程中对其进行检查。

表空间组织

将数据文件分组的逻辑存储组件。一个表空间可以包含多个数据文件。

  • 利用情况:表空间有助于数据库的存储管理和组织。它们可以容纳多种类型的数据,例如临时数据、用户数据和索引。
  • 管理注意事项:必须定期检查和维护表空间,以保证最佳性能并防止空间问题。这包括添加数据文件和修改其大小。
  • 扩展段:一组连续的块,用于存储特定类型的数据库对象。
  • 段:分配给数据库中的表或索引的扩展段的集合。
    理解这些文件及其用途对于有效管理 Oracle 数据库、确保数据完整性以及简化备份和恢复过程至关重要。

结论

总之,Oracle 数据库使用不同的文件类型来控制日志记录、恢复过程、系统功能和数据存储。每种文件类型都有其独特的功能,并且对于维护数据库的可靠性、性能和完整性至关重要。数据库的性能、可靠性和故障恢复取决于这些文件的有效管理。为避免问题并保持高效的数据库运行,定期的监控、备份和维护程序是必不可少的。

通过正确理解和管理这些文件,数据库管理员可以确保他们的 Oracle 数据库高效、安全地运行,并能够从意外情况中恢复。