为共享文件系统创建特定于节点的文件和目录
在共享文件系统上安装 Oracle 软件后,所有群集节点都可以访问由 ORACLE_HOME 环境变量指定的目录中的所有文件。但是,某些 Oracle 文件和目录必须维护特定于节点的信息。
如果在共享文件系统上安装 Oracle 软件,则必须为维护特定于节点的信息的文件和目录创建本地副本。要确保所有群集节点都可以访问这些文件和目录,请使用符号链接,该符号链接的目标为节点的本地文件系统上的文件或目录。此类文件系统不属于共享文件系统。
要使用符号链接来实现此目的,必须在本地文件系统上分配一个区域。要使 Oracle 应用程序创建指向该区域中的文件的符号链接,该应用程序必须可以访问该区域中的文件。由于符号链接位于共享文件系统上,因此,所有节点上对该链接的所有引用都相同。因此,所有节点在本地文件系统上都对该区域使用相同的名称空间。
管理员会在全局群集投票节点上创建该文件系统,即使区域群集使用该文件系统也不例外。管理员可使用 zonecfg 命令将特定于节点的文件系统配置到区域群集节点中。
本节包含以下过程:
如何为共享文件系统创建特定于节点的目录
对要维护特定于节点的信息的每个目录执行此过程。通常需要使用以下目录来维护特定于节点的信息:
$ORACLE_HOME/rdbms/audit
$ORACLE_HOME/rdbms/log
$ORACLE_HOME/network/agent
$ORACLE_HOME/network/log
$ORACLE_HOME/network/trace
$ORACLE_HOME/srvm/log
$ORACLE_HOME/apache
有关维护特定于节点的信息可能需要的其他目录的信息,请参见 Oracle 文档。在每个群集节点上,创建要维护特定于节点的信息的本地目录。
确保所创建的本地目录结构与包含特定于节点的信息的全局目录结构一致。例如,全局目录 /global/oracle/network/agent 可能包含需要存储在本地 /local 目录下的特定于节点的信息。此时,您应创建名为 /local/oracle/network/agent的目录。# mkdir -p local-dir-p
指定首先创建所有不存在的父目录。
local-dir
指定要创建的目录的全路径名。
在每个群集节点上,为要维护特定于节点的信息的全局目录创建本地副本。
确保在步骤 1 中创建的本地目录包含特定于节点的信息的本地副本。# cp -pr global-dir local-dir-parent-p
指定保留所有者、组、权限模式、修改时间、访问时间和访问控制列表。
-r
指定复制目录及其所有文件,包括所有子目录及其文件。
global-dir
指定要复制的全局目录的完整路径。该目录位于共享文件系统上由 ORACLE_HOME 环境变量指定的目录中。
local-dir-parent
指定本地节点上要包含本地副本的目录。该目录是在步骤 1 中创建的目录的父目录。
将步骤 2 中复制的全局目录替换为指向全局目录本地副本的符号链接。在任一群集节点上,删除在步骤 2 中复制的全局目录。# rm -r global-dir-r
指定删除该目录及其所有文件,包括所有子目录及其文件。
global-dir
指定要删除的全局目录的文件名称和完整路径。该目录是在步骤 2 中复制的全局目录。
在任一群集节点上,创建一个符号链接,该符号链接从该目录的本地副本指向在步骤 a 中删除的全局目录。# ln -s local-dir global-dir-s
指定该链接为符号链接。
local-dir
指定在步骤 1 中创建的本地目录为该链接的源。
global-dir
指定在步骤 a 中删除的全局目录为该链接的目标。
示例 4-1 创建特定于节点的目录
本示例显示了在双节点群集上创建特定于节点的目录所需的操作顺序。该群集将按以下方式配置:
ORACLE_HOME 环境变量用于指定 /global/oracle 目录。
每个节点上的本地文件系统位于 /local 目录下。
在每个节点上执行以下操作:
要在本地文件系统上创建所需的目录,请运行以下命令:# mkdir -p /local/oracle/network/agent# mkdir -p /local/oracle/network/log# mkdir -p /local/oracle/network/trace# mkdir -p /local/oracle/srvm/log# mkdir -p /local/oracle/apache
要为维护特定于节点的信息的全局目录创建本地副本,请运行以下命令:# cp -pr $ORACLE_HOME/network/agent /local/oracle/network/.# cp -pr $ORACLE_HOME/network/log /local/oracle/network/.# cp -pr $ORACLE_HOME/network/trace /local/oracle/network/.# cp -pr $ORACLE_HOME/srvm/log /local/oracle/srvm/.# cp -pr $ORACLE_HOME/apache /local/oracle/.
以下操作仅在一个节点上执行:
要删除全局目录,请运行以下命令:# rm -r $ORACLE_HOME/network/agent# rm -r $ORACLE_HOME/network/log# rm -r $ORACLE_HOME/network/trace# rm -r $ORACLE_HOME/srvm/log# rm -r $ORACLE_HOME/apache
要创建从本地目录指向相应全局目录的符号链接,请运行以下命令:# ln -s /local/oracle/network/agent $ORACLE_HOME/network/agent# ln -s /local/oracle/network/log $ORACLE_HOME/network/log# ln -s /local/oracle/network/trace $ORACLE_HOME/network/trace# ln -s /local/oracle/srvm/log $ORACLE_HOME/srvm/log# ln -s /local/oracle/apache $ORACLE_HOME/apache
如何为共享文件系统创建特定于节点的文件
对要维护特定于节点的信息的每个文件执行此过程。通常需要使用以下文件来维护特定于节点的信息:
$ORACLE_HOME/network/admin/snmp_ro.ora
$ORACLE_HOME/network/admin/snmp_rw.ora
有关维护特定于节点的信息可能需要的其他文件的信息,请参见 Oracle 文档。在每个群集节点上,为要维护特定于节点的信息的文件创建本地目录。# mkdir -p local-dir-p
指定首先创建所有不存在的父目录。
local-dir
指定要创建的目录的全路径名。
在每个群集节点上,为要维护特定于节点的信息的全局文件创建本地副本。# cp -p global-file local-dir-p
指定保留所有者、组、权限模式、修改时间、访问时间和访问控制列表。
global-file
指定要复制的全局文件的文件名称和完整路径。该文件已安装在共享文件系统上由 ORACLE_HOME 环境变量指定的目录下。
local-dir
指定要包含该文件本地副本的目录。该目录是在步骤 1 中创建的目录。
将步骤 2 中复制的全局文件替换为指向该文件的本地副本的符号链接。在任一群集节点上,删除在步骤 2 中复制的全局文件。# rm global-fileglobal-file
指定要删除的全局文件的文件名称和完整路径。该文件是在步骤 2 中复制的全局文件。
在任一群集节点上,创建一个符号链接,该符号链接从该文件的本地副本指向在步骤 a 中删除的全局文件。# ln -s local-file global-file-s
指定该链接为符号链接。
local-file
指定在步骤 2 中复制的文件为该链接的源。
global-file
指定在步骤 a 中删除的文件的全局版本为该链接的目标。
示例 4-2 创建特定于节点的文件
本示例显示了在双节点群集上创建特定于节点的文件所需的操作顺序。该群集将按以下方式配置:
ORACLE_HOME 环境变量用于指定 /global/oracle 目录。
每个节点上的本地文件系统位于 /local 目录下。
在每个节点上执行以下操作:
要创建包含维护特定于节点的信息的文件的本地目录,请运行以下命令:# mkdir -p /local/oracle/network/admin
要为维护特定于节点的信息的全局文件创建本地副本,请运行以下命令:# cp -p $ORACLE_HOME/network/admin/snmp_ro.ora \
/local/oracle/network/admin/.# cp -p $ORACLE_HOME/network/admin/snmp_rw.ora \
/local/oracle/network/admin/.
以下操作仅在一个节点上执行:
要删除全局文件,请运行以下命令:# rm $ORACLE_HOME/network/admin/snmp_ro.ora# rm $ORACLE_HOME/network/admin/snmp_rw.ora
要创建从这些文件的本地副本指向相应全局文件的符号链接,请运行以下命令:# ln -s /local/oracle/network/admin/snmp_ro.ora \
$ORACLE_HOME/network/admin/snmp_rw.ora# ln -s /local/oracle/network/admin/snmp_rw.ora \
$ORACLE_HOME/network/admin/snmp_rw.ora
接下来的步骤