oracle支持在RDBMS HOME 下的 符号链接( Symbolic Links)吗?
适用于:
Oracle Server - Enterprise Edition - Version 9.2.0.1 to 11.2.0.3 [Release 9.2 to 11.2]
Oracle Server - Standard Edition - Version 9.2.0.1 to 11.2.0.3 [Release 9.2 to 11.2]
Information in this document applies to any platform.
答案:
Oracle Home里边的 Symbolic links 是十分强烈discouraged (暂时不知道把discouraged 翻译成啥好),理由是有很多问题会发生。
OUI安装Oracle Home的过程不包括创建 $ORACLE_HOME filesystem structure 到外边的 Symbolic links。因此,后续的到oracle home的符号链接可能是unix os vendor 弄的,此种情况,Oracle 会不给你建议,也不能为你解决问题。
若是额外的符号链接在oracle home中被发现,Oracle Global Customer Support 会要求你把消除符号链接作为排错的一个步骤。请知晓下列事实:
即使向oracle 开发部门登记一个bug,客户也会被要求在没有额外符号链接的情况下,能再现客户所报告的问题。
额外的符号链接经常会导致各种问题和错误,比如oui,dbca,netca以及其他gui工具。
包括relink命令和opatch tool在内的进程和命令也是与符号链接不能兼容的,它们不能以创建为符号链接的形式来工作。
考虑下面的这个例子: oracle home中使用了一个额外的符号链接,该符号链接指向了 $ORACLE_HOME filesystem structure的外部。
在这个环境被当做cloning source(see Note 300062.1, "How To Clone An Existing Server Installation Using OUI") 之前,该系统可能会正常运行。但是,在clone的target system中,这些符号链接是无效的,这些符号链接会指向在target system中不存在的文件和目录。
还有的可能性是 问题在源系统上一直潜伏(lie dormant),并没有发现,直到一个事件(比如relink)在目标系统上被发起。
另外一个例子: 符号链接导致的附加损害(collateral damage)是 安装rdbms software 到符号链接存在的filesystem structure中。
由于对$ORACLE_HOME不实际的使用全路径文件名和命名法(nomenclature),the Oracle Central Inventory (OCI) 也不使用$ORACLE_HOME的全路径文件名和命名法(nomenclature), This frequently leads to subsequent problems when the opatch utility reports that the OCI does not have that oracle home listed.
这个情况会阻止你在$ORACLE_HOME中打patch or patchset。
额外注意:
1.) If you are unsure what a symbolic link is, please see Note 1013357.6 "WHAT ARE SYMBOLIC LINKS?"
2.) One of the more common reasons that Customers mistakenly add symbolic links into an $ORACLE_HOME filesystem structure is to gain additional effective free space within that structure.
3.) You can list all of the symbolic links within an $ORACLE_HOME filesystem structure with the following UNIX OS command:
find $ORACLE_HOME -type l -print
4.) The few symbolic links that the OUI (aka runInstaller) places within the $ORACLE_HOME filesystem structure are to provide both a generic name and a version=specific name for a library file, such as :
/u01/app/oracle/product/10.2.0/db_1/ctx/lib/libicuuc.so