关闭

Oracle物理结构概述

发表于:2010-1-11 10:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
Oracle

  数据文件

  每一个Oracle数据库都有一个或多个物理的数据文件,数据库信息(结构,数据)都保存在这些数据文件中,并且这些文件也只Oracle才能够解释与管理这些存储。Oracle数据文件具有以下一些特性:

  1. 一个数据文件仅仅关联一个数据库,数据文件与数据库之间对应关系是一对一关系,当然反过数据库与数据文件是一对多关系。

  2. 数据文件可以自动扩展,当数据存储需要更多存储空间时候,就是存储数据的数据随存储数据量增大,数据文件也可以自动增长,以满足数据存储需要。

  3. 一个或多个数据文件组成一个逻辑单元,称之为表空间。数据文件与表空间之间对应关系也是一对一关系,当然反过表空间与数据文件对应关系是一对多的关系。

  存储在数据文件中的是可以读,当然这些数据是保存在Oracle数据库实例中特定的内存区域中,如果一个用户要读取数据库中一个表,这个用户是不能直接读取物理磁盘上的数据文件的,首先Oracle接受这个请求后,从造当位置(物理磁盘)上读取相应的数据到内存中,这个时候用户才可以看见数据。Oracle软件是解释Oracle存储与管理数据的。如果这个时候我们修改数据,这些数据是不会立即写到磁盘中的。要到特定时候才会写磁盘。频繁立即写会引I/O性能下降。

  Oracle会在特定时候完成这数据写工作

  控制文件

  每一个Oracle数据库都有一个控制文件。这个控制文件是Oracle能够正常工作一个前提。控制文件一般有三个功能:一记录着物理磁盘上信息。二记录Oracle数据库本身逻辑结构。三:起到一个全局监管作用。它一般包括以下几个部分:

  1. 数据库名称

  2. 数据文件与日志文件在磁盘上信息。

  3. 数据库创建时间

  如果控制文件损失那么Oracle数据库就不能下常启动,理论上只能启动到MOUNT状态。因为控制文件如此重要,Oracle允许同时可以镜像多个控制文件。

  当数据库启动时候,控制文件中记录数据文件与日志文件必须要被Oracle进程所读取。数据库结构变化也随时记录在控制文件中。控制文件对Oracle恢复也启着非常大作用。

  重做日志文件

  每个Oracle数据库都包含至少两组到多组重做日志文件,重做日志文件主要是记录数据变化一过程。是记录一个延续变化过程。其实控制也记录Oracle变化过程,但是两都还是有很大区别的,控制记录着数据库体系结构的变化。一个架构的变化,重做日志文件当然也记录这些变化,但它记录更细数据库中数据变化。这些信息主要是用于数据库恢复操作。

  归档日志文件

  因为Oracle数据库只要发生操作重做日志文件,就会记录这些信息。但是当记录一定的时候,如果把这些信息给永久保存下来,那么保存下来的”日志”就称之会归档日志。当然如果数据库要运行归档模式下,如果数据不运行归档模式下,那么重做日志就循环写。

  参数文件

  因为Oracle数据有两部分组成,数据库与实例。数据库一个体系结构是由控制文件进行记录的,但实例体体系结构呢?这些当然是由参数文件来记录着,当然参数文件还记录Oracle软件本身操作的一些特性,比如上面说到是否归档当。参数据文件记录大部信息都抽像的,但是数据库实例子启动,这时并不访问数据库,因为必须要控制文件指示着物理体系结构。对于对于参数文件向物理结构过渡,有一个非常重要的参数就是控制文件。这个参数记录着控制文件在磁盘上位置。而控制文件又记录数据文件与日志文件和数据本身一些信息。从这里我们可以看出数据库启动是分三个阶段进行的。

  1. 第一步读取参数文件启动实例。这时并没有打开数据库,到这种状态也就是我们常说的NOMOUNT状态。

  2. 第二步根据参数文件记录读取控制文件。这时候只是读取控制文件,还没有对控制文件进行解释。一般恢复操作都是在这步完成。MOUNT

  3. 第三步根据控制文件中的信息,读取数据文件与控制文件。当然这时候在核对磁盘上记录的信息和控制文件本身信息。如果不通过,会告之有问题,数据库要进行恢复。(当然这步是必须的,我们想如果不管对不对都正常启动,那么感觉数据就会变得非常乱,用户自己数据损失了或是丢失都不知道,这样很可怕,这点可以看出解释控制文件也就是检查数据库完整性),如果比对成功这时候数据库就可以OPEN了。

  告警日志

  对于数据,操作记录 实例子与数据库信息都有对应记录信息了,但是如果我们操作上出现问题或是数据库本身出现问题,这些问题又有谁来记录呢?记录这些信息一般要告警日志,如果没有告警日志会有什么问题,就是运行着数据库发行了什么问题我们都不知道。我们可以做一个比方。控制文件只在数据库启动之初审核一下。如果通过我就让你启动,但数据库运行过程出现的问题,我不管,但这些有谁来管呢?当然就是告警日志了。它应该时刻伴随数据库,记录一些影响数据健康问题。

  备份文件

  数据库仅仅有归档日志还是很安全,有的时候还需要备份,备份文件就是归档日志后备部分,但是它是十分强大,它是Oracle管理工具生成文件,当然要也可以冷备。管理工具管理着数据库安全与备份,它的体现就是拥有备份文件。只有Oracle特定工具才能解释的格式。用于在灾难情况(比如没有了归档)下进行恢复。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号