跳过导航链接
退出打印视图
| 适用于 Oracle 的 Oracle Solaris Cluster 数据服务指南 Oracle Solaris Cluster 3.3 3/13 (简体中文)

搜索范围:

- 本文档
- 整个文档库

## 准备节点和磁盘

本节包含准备节点和磁盘时需要执行的过程。

- 如何准备节点

- 如何使用 Solaris Volume Manager 配置 Oracle 数据库访问

- 如何使用 Veritas Volume Manager 配置 Oracle 数据库访问

- 如何使用 Oracle ASM 配置 Oracle 数据库访问

- 如何配置 Oracle Grid Infrastructure for Clusters SCAN 侦听器

## 如何准备节点

执行此过程以准备安装和配置 Oracle 数据库软件。

| 注意 - 在所有节点上执行本节中的所有步骤。如果未对所有节点执行所有步骤，Oracle 数据库安装将不完整。Oracle 数据库安装不完整会导致 HA for Oracle 在启动期间出现故障。

注 - 执行此过程之前，请先查阅 Oracle 数据库文档。

以下步骤用于准备节点和安装 Oracle 数据库软件。

1. 成为所有群集成员上的超级用户。
2. 为 HA for Oracle 配置群集文件系统。

   | 注意 - 在非全局区域中，不支持 Oracle Solaris Cluster 设备组中的原始设备。

   如果原始设备包括数据库，请配置用于原始设备访问的全局设备。有关如何配置全局设备的信息，请参见《Oracle Solaris Cluster 软件安装指南》。

   如果使用 Solaris Volume Manager 软件，请配置 Oracle 数据库软件以在镜像元设备或原始镜像元设备上使用 UNIX 文件系统 (UNIX file system, UFS) 日志记录功能。有关如何配置原始镜像元设备的更多信息，请参见 Solaris Volume Manager 文档。

   如果将 Oracle Solaris ZFS 文件系统用于 Oracle 数据库文件，请配置高可用性本地 ZFS 文件系统。有关更多信息，请参见《Oracle Solaris Cluster Data Services Planning and Administration Guide》中的"How to Set Up the HAStoragePlus Resource Type to Make a Local Solaris ZFS Highly Available"。

   如果使用 Sun QFS 文件系统，则应配置 Sun QFS 文件系统与 Oracle 数据库软件结合使用。有关配置 Sun QFS 文件系统的更多信息，请参见《适用于 Oracle Real Application Clusters 的 Oracle Solaris Cluster 数据服务指南》中的"使用 Sun QFS 共享文件系统"。

3. 在本地磁盘或多主机磁盘上准备 `$ORACLE_HOME` 目录。

   注 - 如果在本地磁盘上安装 Oracle 数据库二进制文件，请尽量使用单独的磁盘。在单独的磁盘上安装 Oracle 数据库二进制文件，可防止在重新安装运行环境的过程中覆盖这些二进制文件。使用 Oracle ASM 时，应创建两个 `$ORACLE_HOME` 目录，一个 `$ORACLE_HOME` 目录用于 Oracle 数据库，另一个 `$ORACLE_HOME` 目录用于 Oracle ASM。

4. 在每个节点或区域上，在 `/etc/group` 文件中为数据库管理员 (database administrator, DBA) 组创建一个条目，然后将潜在用户添加到该组。

   DBA 组通常命名为 `dba`。检验 `oracle` 用户是否为 `dba` 组的成员，然后根据需要为其他 DBA 用户添加条目。确保组 ID 在运行 HA for Oracle 的所有节点或区域上均相同，如下例所示。

       dba:*:520:root,oracle

   如果使用 Oracle ASM，应在 Oracle ASM 的 `/etc/group` 文件中为 DBA 组添加附加条目。

       dba:*:520:root,oracle,oraasm

   您可以在网络名称服务（如 NIS 或 NIS+）中创建组条目。如果以这种方式创建组条目，请将您的条目添加到本地 `/etc/inet/hosts` 文件中，以消除对网络名称服务的依赖性。

5. 在每个节点或区域上，创建 Oracle 数据库用户 ID 条目 (`oracle`)。

   通常将 Oracle 数据库用户 ID 命名为 `oracle`。以下命令使用 Oracle 数据库用户 ID 的条目更新 `/etc/passwd` 和 `/etc/shadow` 文件。

       # useradd -u 120 -g dba -d /Oracle_home oracle

   确保 `oracle` 用户条目在运行 HA for Oracle 的所有节点或区域上均相同。

   如果使用 Oracle ASM，您应当为 Oracle ASM 创建其他 Oracle 数据库用户 ID。

       # useradd -u 121 -g dba -d /asm-home oraasm

6. 如果您使用的是 Oracle 数据库 10.2.0.3 或更高版本，则应对每个 Oracle Solaris 区域执行以下步骤。

   注 - 您必须在创建区域时执行这些步骤。如果未能执行这些步骤，则会产生错误。要解决该错误，您应设置必要的特权，然后运行 `ORACLE_HOME/bin/localconfig reset ORACLE_HOME`。

       # zoneadm -z zcname halt
       # zonecfg -z zcname info limitpriv
       # zonecfg -z zcname set limitpriv=default,proc_priocntl
       # zonecfg -z zcname info limitpriv
       # zoneadm -z zcname boot

7. 如果使用区域群集，应使用 `clzonecluster` 命令来配置 `limitpriv` 属性。

       # clzonecluster configure zcname
       clzonecluster:zcname>set limitpriv="default,proc_priocntl,proc_clock_highres"
       clzonecluster:zcname>commit

8. 在每个区域群集节点上，阻止 Oracle Clusterware 时间同步以活动模式运行。
   1. 以 root 用户身份登录到区域群集节点。
   2. 创建空的 `/etc/inet/ntp.conf` 文件。

          # touch /etc/inet/ntp.conf

## 如何使用 Solaris Volume Manager 配置 Oracle 数据库访问

通过执行此过程以使用 Solaris Volume Manager 配置 Oracle 数据库。

注 - 只能在全局区域中运行此过程。

1. 配置 Solaris Volume Manager 软件使用的磁盘设备。

   有关如何配置 Solaris Volume Manager 软件的信息，请参见《Oracle Solaris Cluster 软件安装指南》。

2. 如果使用原始设备来包含数据库，请通过运行以下命令来更改每个原始镜像元设备的所有者、组和模式。

   如果不使用原始设备，则无需执行此步骤。

   1. 如果创建原始设备，请在可控制 Oracle 数据库资源组的每个节点上针对每个设备运行以下命令。

          # chown oracle /dev/md/metaset/rdsk/dn
          # chgrp dba /dev/md/metaset/rdsk/dn
          # chmod 600 /dev/md/metaset/rdsk/dn

      metaset

        指定磁盘集的名称

      `/rdsk/dn`

        指定 metaset 磁盘集中的原始磁盘设备的名称

   2. 检验更改是否生效。

          # ls -lL /dev/md/metaset/rdsk/dn

## 如何使用 Veritas Volume Manager 配置 Oracle 数据库访问

执行此过程以使用 Veritas Volume Manager 软件配置 Oracle 数据库软件。

注 - 只能在全局区域中运行此过程。

1. 配置 VxVM 软件使用的磁盘设备。

   有关如何配置 Veritas Volume Manager 的信息，请参见《Oracle Solaris Cluster 软件安装指南》。

2. 如果使用原始设备来包含数据库，请在当前磁盘组主节点上运行以下命令来更改每个设备的所有者、组和模式。

   如果不使用原始设备，则无需执行此步骤。

   1. 如果创建原始设备，则针对每个原始设备运行以下命令。

          # vxedit -g diskgroup set user=oracle group=dba mode=600 volume

      diskgroup

        指定磁盘组的名称

      volume

        指定磁盘组内原始设备的名称

   2. 检验更改是否生效。

          # ls -lL /dev/vx/rdsk/diskgroup/volume

   3. 将设备组与群集同步，以使 VxVM 命名空间在整个群集内一致。

          # cldevicegroup sync diskgroup

## 如何使用 Oracle ASM 配置 Oracle 数据库访问

执行此过程以使用 Oracle ASM 配置 Oracle 数据库访问权限。您可以在 VxVM 或 Solaris Volume Manager 上使用 Oracle ASM。

1. 配置 Oracle ASM 软件使用的磁盘设备。

   有关如何配置 Oracle ASM 的信息，请参见《适用于 Oracle Real Application Clusters 的 Oracle Solaris Cluster 数据服务指南》中的"使用 Oracle ASM"。

2. 设置 Oracle ASM 磁盘组要使用的 Oracle ASM 磁盘的权限。
   1. 在可控制 Oracle 数据库资源组的每个节点上针对每个设备运行以下命令。

          # chown oraasm:dba /dev/did/rdisk/dn
          # chmod 660 /dev/did/rdisk/dn

   2. 检验更改是否生效。

          # ls -lhL  /dev/did/rdisk/dn

## 如何配置 Oracle Grid Infrastructure for Clusters SCAN 侦听器

使用 Oracle Database 11g R2 或 12c Grid Infrastructure for Clusters 部署 HA for Oracle 数据服务时，单实例数据库的首选侦听器是 Oracle Grid Infrastructure for Clusters 单客户机访问名称 (Single Client Access Name, SCAN) 侦听器。要在 HA for Oracle 配置中利用 SCAN，您必须修改 Oracle Database 11g R2 或 12c 单实例数据库 `remote_listener` 参数以反映 SCAN 名称和端口号。

如果配置 SCAN 侦听器，则可以忽略本手册中后面有关创建具有 `SUNW.oracle_listener` 资源类型的 Oracle 数据库侦听器资源的说明。配置 SCAN 侦听器时不需要 Oracle 数据库侦听器资源。

有关 SCAN 的更多信息，请参见《Oracle Grid Infrastructure Installation Guide 11g Release 2 (11.2) for Solaris Operating System》（适用于 Solaris 操作系统的 Oracle Grid Infrastructure 安装指南 11g R2 (11.2)）。

以下示例过程说明了配置 SCAN 名称和端口时的命令和样例输出。请在群集的各个节点上都执行此过程。

1. 成为节点上的超级用户。
2. 配置 SCAN 侦听器。

       # srvctl config scan
       SCAN name: scanname, Network: 1/ipaddress/netmask/adaptername
       SCAN VIP name: scanvip, IP: /ipalias/vipaddress

       # srvctl config scan_listener
       SCAN Listener LISTENER_SCAN1 exists. Port: TCP:portnumber
       #

       SQL> show parameters listener

       NAME                TYPE     VALUE
       ------------------- -------- ------------------------------
       listener_networks   string
       local_listener      string   (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nodename)
                                    (PORT=portnumber))))
       remote_listener     string

       SQL>
       SQL> alter system set remote_listener = 'scanname:portnumber' scope=both;

       System altered.
       SQL> show parameters listener

       NAME                TYPE     VALUE
       ------------------- -------- ------------------------------
       listener_networks   string
       local_listener      string   (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nodename)
                                    (PORT=portnumber))))
       remote_listener     string   scanname:portnumber
       SQL>

版权所有 © 2000, 2014, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |