Oracle DBA 数据库参考手册(一)-------------1

第一部分    数据库体系结构

 

第一章 Oracle体系结构

 

     每一种新版本的Oracle,都要增加一些新的性能或对原有的性能进行改善。在Oracle9i中,除了增加许多新的性能外,还改进了原版本的许多功能。同时,Oracle增加了许多新的工具以简化数据库管理任务。在本书的第一部分,你将会看到对Oracle体系结构及其实现的综合介绍,并且将看到使用手工和Oracle9i数据库配置助手创建Oracle数据库所需要采取的步骤。

    本书的第二部分介绍管理Oracle数据库的具体方针,例如回退段或重做段的管理及口令的建立;第三部分探讨在网络环境中使用Oracle的方法;最后一部分是附录,含有最常用的SQL命令的语法。

    在本章,你将看到一些例子,介绍Oracle数据库的组件和实现其用途的基本原理。管理Oracle数据库需要了解这些不同组件之间的相互关系,它们在整体框架中的未知以及如何以最佳方式定制系统以满足用户需要。总之,本章概述数据库管理的基本概念,其他章节将深入讨论。

 

1.1   数据库及实例概述

      要了解Oracle体系结构,必须先了解两个基本概念:数据库和实例。下面两节将详细描述这两个基本概念机器在Oracle中的实现。

    1.1.1  数据库

    数据库(database)是一个数据集合。Oracle能够提供与定义的模型(称作关系模型)一致的方式存储和访问数据的能力,因此,Oracle被认为是一种关系数据库管理系统(RDBMS)。目前,多数情况下提到的“数据库”术语不仅是指物理的数据,也指本章描述的物理、内存及进程对象的组合。

     数据库中的数据存储在表中。关系型表有许多列(column),并有表名。数据在表中以行(row)的方式存储。表可以相互关联,数据库可用来实现这些关联。表结构的一个样例如图1-1所示。

    TABLE:SALES_REPS     <---------------表名

                                           

                                                                                                   图1-1  表结构样例

      除了按关系格式存储数据外,Oracle(例如Oracle8)支持面向对象(OO)的结构(如抽象数据类型和方法)。对象既可以与其他对象建立关系,也能包含其他对象。如第5张所述,可以用对象是突击来启用面向对象的数据接口,而不必对表做任何修改。

       无论是采用关系结构还是面向对象的结构,Oracle数据库都将其数据存储在文件中。在其内部,数据库结构提供数据对文件的逻辑映射,是不同类型的数据分开存储。这些逻辑划分称作表空间。下面两小节介绍表空间和文件。

    1. 表空间

       表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,UNDO表空间供重做段使用(有关这方面的情况在本节后面描述)。一个表空间只能属于一个数据库。

      2. 数据文件

       每个表空间由同一个磁盘上的一个或多个文件组成,这些文件称作数据文件(datafile)。一个数据文件只能属于一个表空间。数据文件创建后可改变大小。创建新的表空间需要创建新的数据文件。数据文件一旦加入到表空间,就不能从这个表空间移走,也不能与其他的表空间发生联系。

     如果将数据库对象存储在多个表空间中,那么可以通过将它们各自的数据文件存放在不同的磁盘上来对其进行物理分割。在规划和协调数据库处理I/O请求的方法中,数据分割是一种很重要的工具。数据库、表空间和数据文件之间的关系如图1-2所示、

                                   

                                                           图1-2    数据库、表空间和数据文件之间的关系

      1.1.2  其他文件

       正如刚刚讲述的,数据库的数据文件为数据库的数据提供物理存储区。因此,他们既是“内部”结构,因为他们直接与表空间想连接,又是“外部”结构,因为他们是物理文件。跨设备的分布式规划过程将在第4章描述。

        下面的文件类型,虽然与数据库相关,但是却与数据文件分离。这些文件包括:

         * 重做日志。

         * 控制文件

         * 跟踪文件及警告日志。

         1. 重做日志

         Oracle维护所有的数据库事务的日志。这些事务被记录在联机重做日志文件(online redo log files)中。当数据库被破坏时,这些重做日志文件能够以正确顺序恢复数据库事务。重做日志文件信息存储在数据库数据文件的外部。

         重做日志文件也可以让Oracle优化向磁盘写入数据的方式。当数据库中出现一个事务时,就把该事务输入到重做日志缓冲区;同时受该事务影响的数据块不会立即写入磁盘。

         每个Oracle数据库都有三个或更多的联机重做日志文件。Oracle以循环方式写入脸颊重做日志文件:第一个日志文件被填满后,就写入第二个日志文件,直到改日志文件写满为止。当所有的联机重做日志文件都被填满时,就又回到第一个日志文件,用新的事务数据重写日志文件的内容。如果数据库正以ARCHIVELOG模式运行,在重写联机重做日志文件前,数据库将先对其进行备份。可以使用这些归档重做日志文件将数据库的任何部分恢复到任意时间点(参见第11章)。

         重做日志文件可以被数据库镜像(复制)。镜像联机重做日志文件不依赖操作系统或操作环境的硬件性能就可以对重做日志文件进行镜像。有关镜像功能的详细信息,请参见第2章。

           2. 控制文件

           数据库的总体物理结构由其控制文件(control file) 维护。控制文件记录数据库中所有文件的控制信息。控制文件维护内部的一致性并引导恢复操作。

           由于控制文件对数据库至关重要,所以联机存储着控制文件的多个拷贝。这些文件一般存储在不同的磁盘上,以便将因磁盘失效而引起的潜在损失降至最低限度。数据库将创建并维护在数据库创建时指定的控制文件。

           数据库控制文件的名字通过CONTROL_FILES初始化参数指定。如果需要添加新的控制文件到数据库,可关闭实例,把已存在的一个控制文件拷贝到新的地址,把新的地址添加到CONTROL_FILES参数设置中,并重新启动这个实例即可。

           3. 跟踪文件与警告日志

          在实例中运行的每一个后台进程都有一个跟踪文件与之相连。跟踪文件记载后台进程所遇到的中道事件的信息。除了跟踪文件外,Oracle还维护一个称作警告日志(alert log)的文件jjinggao日志记录数据库生命期内主要事件的命令及结果。例如,表空间的创建、重做日志的转换、恢复系统、以及数据库启动等信息都记录在警告日志中。警告日志是数据库日常管理的重要资源,当需要查找重要故障的原因时,跟踪文件就非常有用。

          每天都应监控警告日志。警告日志中的条目将通知你数据库操作期间遇到的任何问题,其中包括出现的任何ORA-0600内部错误。为使警告日志便于使用,可能需要每天自动对其重新命名。例如,如果警告日志被称作alert_orcl.log,可以对它重新命名,以便其文件名包括当前日期。下次Oracle要写改警告日志时,将找不到具有alert_orcl.log文件名的文件,因此数据库将创建一个新的文件名。这样,除了拥有以前的警告日志外,还有一个当前的警告日志(alert_orcl.log)。用这种方式分离警告日志项可以使对警告日志项的分析更为有效。

            1.1.3 Oracle管理的文件

            在Oracle9i之前的Oracle版本中,当从数据库删除一个表空间时,用于支撑表空间的基础数据文件并不能自动地删除。同样,当删除一个重做日志文件或控制文件时,物理文件被遗留下来。在Oracle9i中,可以启动Oracle管理文件(Oracle Managed Files,OMF)来减轻文件管理的负担。OMF还包括一个特性,允许Oracle按照支持数据库活动的需要,自动地创建和删除操作系统文件。

           以前经常出现一个DBA从数据中删除一个表空间时,忘记从操作系统删除文件的情况。被遗漏的基础文件不但占用物理磁盘空间,而且当其他人正在执行磁盘维护过程时,会引起混乱,尤其是删除表空间的DBA不再身边,无法肯定地说明基础文件可以被安全地删除。许多孤立无主的文件存留在许多公司的磁盘上。

           当启动OMF时,Oracle使用文件系统目录而不是文件名来创建支撑文件,如控制文件、重做日志文件和数据文件,并为文件自动地创建合适的文件名。当删除文件时,底层的操作系统文件被自动地删除。因此,使用OMF,不会有遗留作废文件引发混乱和浪费空间。

           最适于使用OMF最初形式的数据库是具有少量用户的低档数据库。OMF还适用于使用逻辑卷标管理器或大型可扩展文件的数据库。Oracle管理文件在第4章详细讨论。

           1.1.4 实例

           要访问数据库中的数据,Oracle使用一组所有用户共享的后台进程。此外,还有内存结构(统称为系统全局区,或SGA)用来存储最近最常从数据库查询的数据。SGA区中最大的部分,数据块缓存区、SQL共享池(Shared SQL Pool)、大型数据缓冲池与JAVA缓冲池,一般占有分配给SGA的内存95%以上。通过减少对数据文件进行的I/O次数,这些内存区域可以帮助改善数据库性能。

         数据库实例(instance)也称作服务器(server),是用来访问数据库文件集的存储结构及后台进程的集合。一个数据库可以被多个实例访问(称为真正的应用集群选项)。实例与数据库之间的关系如图1-3所示。

                          图1-3  Oracle中的实例和数据文件

 

             决定实例的大小及组成的参数或者存储在名称为init.ora的初始化文件中,或者隐藏在数据库内部的服务器参数文件中,通过SPFILE引用改文件,SPFILE存储在spfile.ora文件中。

             实例启动时读初始化文件,数据库系统管理员可以修改该文件,对初始化文件的任何修改只有在下一次启动时才起作用。实例的初始化文件名通常包含该实例的名字,如果一个实例名为ORCL,则初始化文件通常命名为initorcl.ora。Oracle现在使数据库内部越来越多的参数称为可以动态调整的,参数的改变在数据库关闭与启动之后仍然生效,而不论初始化文件的内容是什么。在Oracle9i中,DBA可以使用SPFILE代替init.ora文件,并使初始化参数的改变称为暂时的或者永久的。SPFILE将在本章后面讨论。

 

未完.待续......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值