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

2.5 Oracle物理结构

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

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个镜像文件。

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指定的位置。

时间: 2024-09-27 15:46:09

《Oracle数据库管理与维护实战》——2.5 Oracle物理结构的相关文章

《Oracle数据库管理与维护实战》——2.6 Oracle逻辑结构

2.6 Oracle逻辑结构 Oracle数据库管理与维护实战 Oracle逻辑结构是从用户角度来看数据库,对使用Oracle的用户来说,一般只关心数据库的逻辑结构,如关心表.视图等.逻辑结构从操作系统中是看不到的,只能通过数据字典查询到. 2.6.1 逻辑结构概述 从逻辑结构上讲,Oracle包括表空间(Tablespaces).段(Segments).区(Extents).数据块(Data Blocks)以及模式(Schema).数据库由若干个表空间组成,表空间又由若干个段组成,段由区组成,

《Oracle数据库管理与维护实战》——1.3 Oracle 12c新特性

1.3 Oracle 12c新特性 Oracle数据库管理与维护实战 纵观甲骨文全球大会和甲骨文公司的各种资讯,我们可以发现云计算和大数据是两个重要的主题,Oracle 12c则融合了这两大主题.与以往的Oracle数据库相比,Oracle 12c在16个方面进行了更新.本节将详细介绍Oracle 12c数据库中的16个新特性. 1.3.1 支持多线程模式 在Oracle 12c中,Oracle引入了多线程模式,允许在Windows平台之外的UNIX.Linux等系统使用多线程模式.结合多进程与

《Oracle数据库管理与维护实战》——2.7 数据分区

2.7 数据分区 Oracle数据库管理与维护实战 巨型表或索引由于太大,在数据库系统会引起类似以下几条的很多问题. 因为表变得非常大,以至于要花费大量的时间对这张表进行管理. 对巨型表进行全表扫描,会花费系统大量的时间和资源. 一个事务要查询这张巨型表,如果由于磁盘错误,读写一个数据块发生错误,整个表就变得不能用.管理员恢复这张表要耗费很长时间. 为减少这类问题的发生,Oracle使用分区表和分区索引. 2.7.1 分区表 Oracle允许将表的存储分离为一些空间较小的存储单元,这些小的存储单

《Oracle数据库管理与维护实战》——2.2 Oracle内存结构

2.2 Oracle内存结构 Oracle数据库管理与维护实战 Oracle内存存储了数据字典信息(即关于对象.逻辑结构.模式.权限等等的元数据).缓冲的应用数据.SQL语言.PL/SQL和Java程序数据,以及事物.控制.用户请求信息.图2-3是Oracle内存结构图,Oracle内存主要由SGA(系统全局区,System Global Area)和PGA(程序全局区,Program Global Area)两个区组成,此外还有重做日志缓冲区.大池.Java池等. 2-3 2.2.1 系统全局

《Oracle数据库管理与维护实战》——2.3 Oracle进程

2.3 Oracle进程 Oracle数据库管理与维护实战 Oracle数据库中有许多进程,为了便于用户掌握,Oracle中将进程分为3种类型,分别为用户进程.服务器进程.后台进程,如图2-6所示. 2.3.1 用户进程 当用户连接数据库时,就会产生用户进程.如果要理解用户进程,我们必须掌握该类型进程涉及的两个概念,连接和会话. 1.连接 用户要与服务器进行交互,首先要建立起连接.连接是用户进程与服务器进程之间的通信通道.如果用户进程与服务器进程在同一服务器上,它们就通过服务器上的内部进程通信机

《Oracle数据库管理与维护实战》——2.4 Oracle后台进程结构

2.4 Oracle后台进程结构 Oracle数据库管理与维护实战 后台进程存在于操作系统中,和实例同时启动,由Oracle服务器管理.后台进程维持数据库的物理结构和内存结构,如图2-9所示. 后台进程运行时会创建一个跟踪文件,用以保存实例的操作.后台进程跟踪文件的命名方法和位置随操作系统和数据库版本的不同而不同.一般来说,跟踪文件含有后台进程名或后台进程的操作系统进程ID.用户可以通过设置初始化参数文件的BACKGROUND_DUMP_DEST参数来规定后台进程跟踪文件的位置,但是有些版本的O

《Oracle数据库管理与维护实战》——1.2 Oracle各版本异同

1.2 Oracle各版本异同 Oracle数据库管理与维护实战 Oracle数据库版本众多,为帮助了解这些版本之间的区别,这里专门作一个介绍.我们先介绍Oracle最近几个系列间的异同,然后介绍Oracle最新系列Oracle 12c,最后介绍同一系列各个版本间的异同. 1.2.1 Oracle 8i和Oracle 9i Oracle 8i和Oracle 9i的"i"代表"Internet",Oracle从8i开始提出了Internet计算的概念,表明Oracle

《Oracle数据库管理与维护实战》导读

前言 Oracle数据库管理与维护实战 随着云计算时代的到来,各种类型的互联网应用和大数据层出不穷,从虚拟化技术到自助商业智能工具,这些都给传统数据库带来了新挑战.传统数据库面临着一系列需求,包括海量数据处理.大规模集群管理.建设及运营成本控制等.数据库技术与云计算环境的融合顺应了IT发展的新趋势. 无论是提到云还是数据库,甚至是两者结合的前景,都随着Oracle 的出现而得到了证实.为了方便广大读者学习,本书以Oracle 为基础,详细介绍了Oracle 相关职位所要求的知识结构和管理技能,主

《Oracle数据库管理与维护实战》——第 2 章 Oracle体系结构及其基本概念

第 2 章 Oracle体系结构及其基本概念 Oracle数据库管理与维护实战 第1章介绍了Oracle产品结构,目的是让初学者对Oracle有一些宏观的了解.Oracle是个庞大的体系,结构复杂,内容涉及内存.外存及网络.本章的目的就是让读者了解Oracle的体系结构,知道Oracle的运行机制,为后面的数据库管理打好基础.