《Oracle数据库管理与维护实战》——2.5 Oracle物理结构

简介:

本节书摘来自异步社区出版社《Oracle数据库管理与维护实战》一书中的第2章,第2.5节,作者: 何伟娜 , 常建功,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.5 Oracle物理结构

Oracle数据库管理与维护实战
物理结构就是我们熟悉的一些物理文件,这些文件是数据库的载体,数据库中的所有数据,包括系统数据都存放在这些物理文件中,如图2-11所示。

image

2.5.1 数据文件

每一个Oracle数据库都有一个或多个物理的数据文件(Data File)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据也需要存储在数据库的数据文件中。数据文件有下列特征。

一个数据文件只与一个数据库联系。

一旦建立,数据文件不能改变大小。

数据文件中的数据在需要时可以读取并存储在Oracle内存中。例如,用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,系统不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由Oracle后台进程DBWR决定如何将其写入到相应的数据文件。

2.5.2 控制文件

控制文件(Control File)控制数据库的物理结构。控制文件记录了数据库中所有文件的控制信息,维护数据库内部的一致性,并引导数据库恢复。控制文件是数据库的控制中心,对数据库至关重要,所以在一个Oracle数据中同时联机存储了多个复本。这些文件一般存储在各个不同的磁盘上,这样可以降低因磁盘损坏而引起数据库彻底崩溃的风险。创建数据库时,系统同时会创建与之对应的控制文件。控制文件中主要包含以下信息。

数据库名称

数据库数据文件和日志文件的名称和位置

数据库建立日期

表空间信息

归档日志信息

当前的日志序列号

检查点信息

数据库控制文件的名称通过初始化参数CONTROL_FILES确定。如果需要给数据库添加一个新的控制文件,用户需关闭实例,把已存在的一个控制文件复制到新的地址,把新的地址添加到CONTROL_FILES参数设置值上,然后重新启动这个实例,使新的控制文件生效。

2.5.3 重做日志文件

Oracle用重做日志文件来保存所有数据库事务的日志。当数据库被破坏时,用重做日志文件恢复数据库。

重做日志文件一般是以组形式存在的,每一个数据库有两个或多个重做日志文件(Redo Log File)组,每一组内都有多个镜像文件。如图2-12所示,一共有3组重做日志文件,每组内都有3个镜像文件。

image

Oracle以循环方式向重做日志文件写入:第一个日志文件被写满后,就向第二个日志文件写入,然后依次类推。当所有联机重做日志文件都被写满时,就再回到第一个日志文件,用新事务的数据重写第一个日志文件。如果数据库正以ARCHIVELOG模式运行,在重写联机重做日志文件前,数据库会先将其内容存入归档重做日志文件中,任何时候都可以用这些归档重做日志文件来恢复数据库。

为防止重做日志文件遭破坏,注意,尽量将重做日志文件镜像到不同磁盘上,当LGWR向日志文件写信息时,会同时将信息也写到镜像文件上。

2.5.4 参数文件

参数文件一般以Ora为扩展名,Ora为Oracle的前三个字母。Oracle 9i版本数据库之后系统有以下几类参数文件。

1.初始化参数文件
在启动一个实例时,Oracle必须读入一个初始化参数文件(Initialization Parameter File)。该参数文件中含有实例配置参数,这些参数值决定着数据库和实例的特性,如共享池、高速缓冲、重做日志缓冲分配、后台进程的自动启动、控制文件的读取、自动联机回滚段等。Oracle9i之前,该参数文件名为Init.ora,该参数文件中主要包含以下几点。

一个实例所启动的数据库名字

在SGA中存储结构配置

数据库控制文件的名字和位置

2.配置参数文件
配置参数文件,一般被命名为config.ora。配置参数文件一般由初始化参数文件调用,在初始化参数文件由ifile参数来指定配置参数文件的位置。

系统中如果一个数据库对应一个实例,则没有配置参数文件;配置参数文件只有在一个数据库对应多个实例时才有。

3.二进制参数文件Spfile
Oracle 9i之前,参数文件是文本文件,Oracle 9i之后采用了和以前版本不同的二进制的参数文件Spfile,同时保留了对原有文本参数文件的支持,所以Oracle 9i之后有两种参数文件:静态文本的Pfile参数文件和Spfile参数文件。后面的章节将会详细介绍这几种参数文件的区别和使用方法。参数文件Spfile不能直接修改,如果直接修改会导致数据库启动失败。

2.5.5 跟踪文件

跟踪文件是由后台进程和用户进程建立的,用于记载进程运行时出现故障的信息。在实例中运行的每一个后台进程都有一个跟踪文件与之相连。跟踪文件记载后台进程遇到的重大事件的信息。

后台进程的追踪文件被命名为PROC.trc,PROC是后台进程的名字。用户进程追踪文件命名为_ORA_XXX.trc,XXX是一连串用来唯一标识的数字。

后台进程追踪文件存在BACKGROUND_DUMP_DEST所指定的位置,用户进程追踪文件存储在由USER_DUMP_ DEST参数设置所指定的目录里。

用户可以在V$PARAMETER视图中获得BACKGROUND_DUMP_DEST和USER_DIMP_ DEST参数的当前设置。

2.5.6 警告日志文件

除了跟踪文件外,Oracle还有一个称作警告日志(alert log)的文件,警告日志文件记录数据库运行中发生的主要事件的命令及结果。例如,表空间的创建、重做日志的转换、操作系统的恢复、数据库的建立等信息都记录在警告日志中。警告日志是数据库每日管理的重要资源,应经常监控警告日志。因为警告日志记录了数据库操作期间遇到的任何问题,其中包括出现的任何内部错误。当调查数据库故障时,用户应首先查看该文件,关键的错误总是记录在这里。

为使警告日志便于使用,用户最好是每天对其重新命名。例如,如果警告日志称作alert_ orcl.log,用户可以重新命名将文件名包括当前日期。下次Oracle要写该警告日志时,找不到具有alert_orcl.log文件名的文件,数据库又会新创建一个。这样,除了有以前的警告日志,用户还有一个当前的警告日志(alert<_SID>.log)。这样有利于今后对数据库历史运行的追踪。

警告日志文件存在由初始化参数BACKGROUND_DUMP_DEST指定的位置。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
13天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
54 7
|
30天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
18 2
|
13天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
40 5
|
30天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(2)
Oracle数据库基本概念理解(2)
13 1
|
5天前
|
存储 Oracle 关系型数据库
Oracle的模式与模式对象:数据库的“城市规划师”
【4月更文挑战第19天】在Oracle数据库中,模式是用户对象的集合,相当于数据库的城市规划,包含表、视图、索引等模式对象。模式对象是数据存储结构,如表用于存储数据,视图提供不同查看角度,索引加速数据定位。良好的模式与模式对象设计关乎数据效率、安全和稳定性。规划时需考虑业务需求、性能、安全和可扩展性,以构建高效数据库环境,支持企业业务发展。
|
13天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
35 7
|
30天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(1)
Oracle数据库基本概念理解(1)
13 1
|
30天前
|
Oracle 关系型数据库 MySQL
Seata常见问题之oracle 数据库 报 just support mysql如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
53 0
|
1月前
|
Oracle Java 关系型数据库
SpringBoot整合Mybatis连接Oracle数据库
SpringBoot整合Mybatis连接Oracle数据库
SpringBoot整合Mybatis连接Oracle数据库
|
1月前
|
存储 Oracle 关系型数据库
Oracle系列十六:数据库备份
Oracle系列十六:数据库备份

热门文章

最新文章

推荐镜像

更多