优化灵活体系结构
Oracle的优化灵活体系结构(OFA)提供了减轻Oracle软件和数据库文件维护工作的指导原则,并且改进了数据库的性能,即适当地放置数据库文件,从而最小化I/O瓶颈。
安装或维护Oracle环境时,虽然并不严格要求使用OFA,但使用OFA可以使客户更容易理解如何在磁盘上组织数据库,从而可以防止客户在您度假时午夜打电话给您。
根据所使用的存储器选项类型,OFA具有细微的区别-- 或者是自动存储管理(Automatic Storage Management,ASM)环境,或者是标准的操作系统文件系统,该系统使用(或者不使用)第三方逻辑卷管理器或支持RAID的磁盘子系统。
1. 非ASM环境
在UNIX服务器的非ASM环境中,单独的物理设备上至少要求有3个文件系统才能实现OFA的推荐标准。从顶层开始,安装点的推荐格式是/,其中可以是一个或多个字母,是两个或三个数字。例如,在某个系统上,可以有安装点/u01、/u02、/u03和/u04,利用空间可以扩展到额外的96个安装点,且不需要改变文件命名约定。图3-5显示了典型的UNIX文件系统布局,它具有遵从OFA的Oracle目录结构。
该服务器上有两个实例:管理磁盘组的ASM实例和标准的RDBMS实例(dw)。
(点击查看大图)图3-5 遵从OFA的Oracle目录结构
软件可执行文件 每个单独产品名的软件可执行文件驻留在目录///中,其中和在前面已经定义过,包含安装在这个目录上的文件类型,则是拥有并在这个目录上安装文件的用户名。例如,/u01/app/oracle可以包含由用户Oracle在服务器上安装的应用程序相关文件(可执行文件)。目录/u01/app/apache可以包含从前一个Oracle版本中安装的中间件Web服务器的可执行文件。
从Oracle 10g开始,OFA标准使DBA更容易在相同的高级目录中安装多个版本的数据库和客户端软件。遵从OFA的Oracle主路径对应于环境变量 ORACLE_HOME,该路径包含一个后缀,对应于安装类型和具体化。例如,Oracle 11g的一个安装、Oracle 10g的两个不同安装和Oracle 9i的一个安装可以驻留在下面3个目录中:
/u01/app/oracle/product/9.2.0.1
/u01/app/oracle/product/10.1.0/db_1
/u01/app/oracle/product/10.1.0/db_2
/u01/app/oracle/product/11.1.0/db_1
同时,Oracle客户端可执行文件和配置可以存储在与数据库可执行文件相同的父目录中:
/u01/app/oracle/product/10.1.0/client_1
一些安装目录将永远不会有一个给定产品的多个实例。例如,Oracle的集群就绪服务(Cluster Ready Services,CRS)将安装在下面的目录中(给定前面的安装):
/u01/app/oracle/product/11.1.0/crs
因为CRS一次只可以安装在一个系统上,所以它没有自增的数字后缀。
数据库文件 任何非ASM的Oracle数据文件都驻留在//oradata/中,其中是前面讨论的一种安装点,是初始参数DB_NAME的值。例如,/u02/oradata/rac0和/u03/oradata/rac0可以包含实例rac0的非ASM控制文件、重做日志文件和数据文件,而/u05/oradata/dev1可以包含相同服务器上实例dev1的相同文件。表3-1详述了oradata目录下不同文件类型的命名约定。
表3-1 遵从OFA的控制文件、重做日志文件和数据文件命名约定
文件类型
文件名格式
变量
控制文件
control.ctl
没有
重做日志文件
redo.log
n是两位数的数字
数据文件
.dbf
t是Oracle表空间名,n是两位数的数字
虽然Oracle表空间名可以长达30个字符,但是建议在UNIX环境中保持表空间名为8个字符或更少。因为可移植的UNIX文件名限制为14个字符,并且OFA数据文件名的后缀为.dbf,其中n是两个数字,即文件系统中总共需要6个字符用于后缀。这就为表空间名自身留下了8个字符。
只有与数据库关联的控制文件、重做日志文件和数据文件应该存储在目录//oradata/中。对于没有使用ASM管理的数据库ord,数据文件名如下:
SQL> select file#, name from v$datafile;FILE# NAME
---------- -----------------------------------
1 /u05/oradata/ord/system01.dbf
2 /u05/oradata/ord/undotbs01.dbf
3 /u05/oradata/ord/sysaux01.dbf
4 /u05/oradata/ord/users01.dbf
5 /u09/oradata/ord/example01.dbf
6 /u09/oradata/ord/oe_trans01.dbf
7 /u05/oradata/ord/users02.dbf
8 /u06/oradata/ord/logmnr_rep01.dbf
9 /u09/oradata/ord/big_users.dbf
10 /u08/oradata/ord/idx01.dbf
11 /u08/oradata/ord/idx02.dbf
12 /u08/oradata/ord/idx03.dbf
13 /u08/oradata/ord/idx04.dbf
14 /u08/oradata/ord/idx05.dbf
15 /u08/oradata/ord/idx06.dbf
16 /u08/oradata/ord/idx07.dbf
17 /u08/oradata/ord/idx08.dbf
17 rows selected.
除了编号为8和9的文件之外,ord数据库中的所有数据文件都遵从OFA,并且被展开到4个不同的安装点。编号为8的文件中的表空间名太长,而编号为9的文件没有两位数的数字计数器来表示相同表空间的新数据文件。
2. ASM环境
在ASM环境中,可执行文件存储在前面表示的目录结构中。然而,如果浏览图3-5中的目录/u02/oradata,可以看到其中没有任何文件。实例dw的所有控制文件、重做日志文件和数据文件都由该服务器上的ASM实例+ASM管理。
大多数管理功能并不需要实际的数据文件名,因为ASM文件都是Oracle管理文件(Oracle Managed Files,OMF)。这减轻了数据库所需的全部管理工作。在ASM存储结构中,类似于OFA的语法用于进一步细分文件类型:
SQL> select file#, name from v$datafile;FILE# NAME
---------- ----------------------------------------
1 +DATA/dw/datafile/system.256.622426913
2 +DATA/dw/datafile/sysaux.257.622426915
3 +DATA/dw/datafile/undotbs1.258.622426919
4 +DATA/dw/datafile/users.259.622426921
5 +DATA/dw/datafile/example.265.622427181
5 rows selected.SQL> select name from v$controlfile;NAME
----------------------------------------
+DATA/dw/controlfile/current.260.622427059
+RECOV/dw/controlfile/current.256.622427123
2 rows selected.SQL> select member from v$logfile;MEMBER
----------------------------------------
+DATA/dw/onlinelog/group_3.263.622427143
+RECOV/dw/onlinelog/group_3.259.622427145
+DATA/dw/onlinelog/group_2.262.622427135
+RECOV/dw/onlinelog/group_2.258.622427137
+DATA/dw/onlinelog/group_1.261.622427127
+RECOV/dw/onlinelog/group_1.257.622427131
6 rows selected.
在磁盘组+DATA和+RECOV中,可以看到每个数据库文件类型,例如数据文件、控制文件和联机日志文件,都有自己的目录。完全限定的ASM文件名具有如下格式:
+///..
其中是磁盘组名,是文件所属的数据库,是Oracle文件类型,是特定于文件类型的信息,.对用来确保文件在磁盘组中的唯一性。