中国开发网: 论坛: 数据库: 贴子 834457
DeepBlue:Oracle Optimal Flexible Architecture 最优灵活体系结构
转贴自:http://blog.csdn.net/disport/archive/2008/09/10/2907220.aspx

Oracle 8版本中引入了最优灵活体系结构(Optimal Flexible Architecture,简写OFA)。OFA方法不仅能够命名装载点和目录,而且能够构造数据文件和数据库组件,以便于DBA定位文件与管理数据库。创建一个启动数据库时(starter database)时,Oracle Universal Installer会在数据库创建过程中遵循OFA规则。此外,Oracle Universal Installer还会创建符合OFA的一个文件与目录结构,从而能够使用Database Configuration Assistant方便地创建其他数据库。

最优灵活体系结构是Oracle顾问咨询(Oracle Consulting Service,简写为OCS)为了更便于监控Oracle数据库的性能而开发的。OFA指定应当至少使用三组目录来减少竞争以及提高性能:一组目录用于存储Oracle二进制文件(如Oracle可执行文件)以及通常不会发生变化的关联支持文件;另一组目录用于存储控制文件、重做日志文件以及其他管理文件(如计算机上每个数据库的参数文件);最后一组用于存储所有数据文件。每组目录都应当位于独立的物理硬盘上,此外还可能需要通过进一步的人工优化来确保提高性能。

虽然OFA并不完美,但是这种体系结构确实能够通过以下几个要素来提供更好的性能以及更方便的管理:

提供一种结构化方法,这种结构化方法能够用于定位Oracle需要与使用的各种文件。如果采用该方法,那么DBA更宜于熟悉负责管理的任何数据库与服务器。

● 因为熟悉文件和目录结构,所以执行诸如备份和还原数据库之类的任务时更宜于管理数据库。如果需要创建其他数据文件,那么也可以遵循OFA结构指出新文件的存放位置。

● 因为OFA配置会使用计算机上的多个物理磁盘,所以需要考虑通过减少数据文件、二进制文件与重做日志文件的磁盘竞争来改善使用OFA的数据库性能。只遵循OFA原则并不足以保证数据库与服务器的最优性能,因此OFA还提供了能够监视与调整性能的基本功能。

● 同一台计算机上具有多个Oracle主目录,或者在同一台计算机上运行多个Oracle版本,如果每个版本都遵循OFA原则,那么某个Oracle版本或Oracle程序包所需的文件就不会重写另一个Oracle版本程序包所需的文件。因为OFA有助于分隔可能产生冲突的文件,所以使得文件更宜于管理,并可以减少竞争。


(一) 字典与装载点语法


在保证OFA能够良好运行的众多因素中,用于装载点(mount point)和目录(文件夹)的通用命名模式是其中一个因素。使用通用命名方法有助于更容易地构造和定位资源。在Oracle 10g中使用Oracle Database Configuration Assistant(DBCA)创建一个数据库时,DBCA会创建许多OFA组件。用于创建Oracle软件的Oracle Universal Installer也会在指示Oracle安装基本目录(ORACLE_BASE)的装载点和目录之内创建若干遵循OFA的结构。

在Linux/Unix平台上,我们建议遵循OFA的命名模式包含下列内容:

● 使用通用串常量和变量值的组合来命名所有装载点,这个组合的形式为/pm,其中p是一个串常量,m是一个变量值。例如,/u01、/u02、/u03或/ora01、/ora02、/0ra03都是不错的选择。使用这个约定更宜于添加其他符合该命名约定的装载点。

● 在装载点之内,采用形式“/pm/h/u/product/v”命名安装Oracle软件的目录,其中/pm是如前所述的装载点,h是指示用途的标准目录名(如app、db或home),u是目录拥有都的名称(这是因为多个操作系统用户都能够拥有和安装Oracle软件),product是一个字面值,v指定在目录中安装的Oracle产品的版本。例如,操作系统用户Oracle拥有的Oracle 10g数据库的位置可以为/u02/db/oracle/product/10.1.0。Oracle 10g Application Server的安装位置可以为/u01/app/oracle/product/9.0.4,而Oracle 8i数据库的位置则可以是/u01/db/oracle/product/8.1.7。

● 在目录结构之内可以创建一个admin目录,并且还可以在admin目录内创建存储Oracle所使用的特定文件类型的其他子目录。这些子目录的完整路径名为/pm/h/admin/d/a,其中admin是一个字面值,d是数据库的系统标识符(system identifier,简写为SID)或名称,a是用于存储特定管理文件类型的子目录。表格1列出了常见的管理目录。

表格 1 遵循OFA的管理目录及其描述

子目录名
用途
示例

adhoc
存储数据库专用的SQL和PL/SQL脚本
/u02/db/admin/ocp10g/adhoc

arch
存储已归档的重做日志文件
/u02/db/admin/ocp10g/arch

adump
存储审计文件的目录(需要首先设置AUDIT_FILE_DEST参数)
/u02/db/admin/ocp10g/adump

bdump
存储后台进程跟踪文件与警告日志文件。使用BACKGROUND_DUMP_DEST参数进行设置
/u02/db/admin/ocp10g/bdump

cdump
存储核心堆积文件。使用CORE_DUMP_DEST参数进行设置
/u02/db/admin/ocp10g/cdump

create
存储用于创建数据库的脚本。在创建新的数据库时,DBCA将创建数据库的脚本放置在这个目录中
/u02/db/admin/ocp10g/create

exp
建议存储使用Export实用程序或Oracle Data Pump创建的数据库导出文件的目录
/u02/db/admin/ocp10g/exp

logbook
存储数据库历史与状态日志文件
/u02/db/admin/ocp10g/logbook

pfile
用于启动数据库的参数文件被放置在这个目录中
/u02/db/admin/ocp10g/pfile

udump
存储用户进程跟踪文件。使用USER_DUMP_DEST参数进行设置
/u02/db/admin/ocp10g/udump



Oracle没有实施装载点和目录的命名,因此Oracle强烈推荐遵循如前所述的建议,从而更易于标识计算机硬盘上安装的各种文件。在Windows环境下,虽然可以将驱动器号用于点,也可以在作为Oracle安装基本目录的空NTFS文件夹中装载分区,但是字典与装载点语法是相似的。


(二) 文件命名语法

OFA命名策略最终需要处理定位在目录中的文件。对于Oracle的数据文件、重做日志文件以及控制文件来说,这种命名策略以一个字典部件(也就是数据库文件结构的根,与前面部分讲述的管理文件相对)开始。Oracle数据文件结构的根是一个形式为/pm/q/d的字典。其中,pm是装载点;q是一个字面值,这个字面值指示包含Oracle数据库数据的字典(例如“oradata“或”oracle“);而d则是数据库的名称,它可能来源于DB_NAME参数(推荐使用该参数),也可能来源于ORACLE_SID环境变量。例如,/u03/oradata/ocp10g和/u01/ORACLE/mydb都是正确的形式。

为了在多个物理磁盘之间扩散I/O工作负荷从而提供更好的性能,我们可以将一个数据库的数据放置在多个装载点上,这也是十分常见的情况。因此,相同的目录名可能会对应于若干装载点(如/u02/oradata/ocp10g和/u03/oradata/ocp10g)上的一个数据库。这种方法也能够被用于分隔不同的Oracle数据库文件类型。表格 2概述了这些文件类型以及推荐的命名约定。

表格 2 Oracle数据库文件的推荐命名约定

子目录名
用途
命名约定

控制文件
用于存储与数据库、数据文件及其状态相关的信息
推荐为control.ctl或controlnn.ctl,其中nn是一个数字(例如control01.ctl)

重做日志文件
在数据库数据发生变化时存储这些变化的记录
推荐为redonn.log,其中nn是一个数字(例如redo01.log)

数据文件
存储数据库数据
推荐为tablespacenamenn.dbf,其中tablespacenamenn是Oracle数据库逻辑存储结构的名称,nn是一个数字(例如“system01.dbf”或“undo01.dbf”)



特别需要记住的是,只表格 2内指示的Oracle数据库文件才应当被存储在符合OFA的数据库文件位置内。如果存储其他文件,那么将难以跟踪这些位置上的文件。管理目录用于存储Oracle数据库与实例所使用的其他文件,而数据库文件位置则用于存储正常操作期间与Oracle数据库相关联的所有文件(也就是控制文件、重做日志文件以及数据文件)。


执行力=流程+计划+组织

把理想变成计划,
把计划变成步骤,
把步骤变成行动,
把行动变成成果。

好語說盡人必易之。規矩行盡人必繁之。福若受盡緣必孤。勢若使盡禍必至。

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录