Bare Metal Solution に Oracle RAC をインストールする

このページでは、Bare Metal Solution サーバーに Oracle Real Application Clusters(RAC)をインストールする方法について説明します。

デプロイ

このガイドでは、Bare Metal Solution サーバーにインストールされた Oracle RAC 19c を含むデプロイメントを作成します。データベースを使用して 2 ノード RAC を構築します。

始める前に

  • RAC に必要なインフラストラクチャをプロビジョニングしてください。これには、2 つのノード、共有ストレージ、Oracle ホーム ディレクトリをホストする専用ボリュームが含まれます。
  • このガイドでは、GUI インストール プロセスを使用します。GUI インストール プロセスを使用する場合は、Oracle VNC セットアップ ガイドに沿って、いずれかのノードで Virtual Network Computing(VNC)を構成します。
  • Oracle ホーム ディレクトリと Grid ホーム ディレクトリをホストするローカル マウントポイント /apps を作成します。

RAC をインストールする

Bare Metal Solution に RAC をインストールする手順は次のとおりです。

  1. RAC のインストール用にノードを準備する
  2. Oracle ASM を構成する
  3. インストール前のチェックを実施する
  4. Oracle RAC をインストールする
  5. インストール後の手順を実施する

RAC インストール用のノードを準備する

特に指定がない限り、両方のノードで次の手順を実行します。

  1. /etc/hosts ファイルを更新して、RAC の次の IP アドレスを指定します。

    • パブリック IP アドレス
    • プライベート IP アドレス
    • 仮想 IP アドレス
    • SCAN 仮想 IP アドレス

    変更後の /etc/hosts ファイルの例を次に示します。

    
     10.*.*.* bms-jumphost
    
     # public IP addresses for Oracle RAC
     192.*.*.* at-2811641-svr001 at-2811641-svr001.localdomain
     192.*.*.* at-2811641-svr002 at-2811641-svr002.localdomain
    
     # private IP addresses for Oracle RAC
     172.*.*.* at-2811641-svr001-priv at-2811641-svr001-priv.localdomain
     172.*.*.* at-2811641-svr002-priv at-2811641-svr002-priv.localdomain
    
     # virtual IP addresses for Oracle RAC
     192.*.*.* at-2811641-svr001-vip at-2811641-svr001-vip.localdomain
     192.*.*.* at-2811641-svr002-vip at-2811641-svr001-vip.localdomain
    
     # SCAN virtual IP addresses for Oracle RAC
     192.*.*.* psoracle-scan psoracle-scan.localdomain
     192.*.*.* psoracle-scann psoracle-scan.localdomain
     192.*.*.* psoracle-scan psoracle-scan.localdomain
    
    
  2. 仮想 IP アドレスと SCAN 仮想 IP アドレスの DNS 解決を行います。

    Google Cloud では、Cloud DNS を使用して仮想 IP アドレスと SCAN 仮想 IP アドレスを解決します。手順については、Cloud DNS で SCAN を構成するをご覧ください。

  3. カーネル パラメータで /etc/sysctl.conf ファイルを更新します。

    
     vi /etc/sysctl.conf
    
     # Added for Oracle
     fs.file-max = 6815744
     kernel.sem = 250 32000 100 128
     kernel.shmmni = 4096
     kernel.shmall = 1073741824
     kernel.shmmax = 4398046511104
     kernel.panic_on_oops = 1
     net.core.rmem_default = 262144
     net.core.rmem_max = 4194304
     net.core.wmem_default = 262144
     net.core.wmem_max = 1048576
     net.ipv4.conf.all.rp_filter = 2
     net.ipv4.conf.default.rp_filter = 2
     fs.aio-max-nr = 1048576
     net.ipv4.ip_local_port_range = 9000 65500
    
    
  4. カーネル パラメータの更新を適用します。

     /sbin/sysctl -p
    
  5. /etc/security/limits.conf ファイルにリソースの上限を追加します。

    
     vi /etc/security/limits.conf
    
     ## Added for Oracle
     grid soft nofile 1024
     grid hard nofile 65536
     grid soft nproc 2047
     grid hard nproc 16384
     grid soft stack 10240
     grid hard stack 32768
    
     oracle soft nofile 1024
     oracle hard nofile 65536
     oracle soft nproc 2047
     oracle hard nproc 16384
     oracle soft stack 10240
     oracle hard stack 32768
    
    
  6. 必要なユーザーとグループを追加します。

    
     groupadd -g 54321 oinstall
     groupadd -g 54322 dba
     groupadd -g 54323 oper
     groupadd -g 54327 asmdba
     groupadd -g 54328 asmoper
     groupadd -g 54329 asmadmin
    
     useradd -u 54321 -g oinstall -G dba,oper,asmdba,asmoper,asmadmin,oracle
    
    
  7. Oracle の事前インストール パッケージをインストールします。

    このガイドでは、Oracle リポジトリが設定されていることを前提としています。

    
     yum install oracle-database-preinstall-19c
    
    

    oracle-database-preinstall-19c パッケージは、必要なパッケージをインストールし、oracle ユーザーと /etc/sysctl.conf ファイル内のエントリを作成します。

  8. oracle ユーザーのパスワードを再設定します。

    
     passwd oracle
    
    
  9. Oracle ASM 用に次のパッケージをインストールします。

    • oracleasm-support
    • kmod-oracleasm
    
     yum install oracleasm-support
     yum install kmod-oracleasm
    
    
  10. /etc/selinux/config ファイルを更新して SELinux を無効にします。

    
     vi /etc/selinux/config
    
     # This file controls the state of SELinux on the system.
     # SELINUX= can take one of these three values:
     #     enforcing - SELinux security policy is enforced.
     #     permissive - SELinux prints warnings instead of enforcing.
     #     disabled - No SELinux policy is loaded.
     SELINUX=disabled
     # SELINUXTYPE= can take one of three values:
     #     targeted - Targeted processes are protected,
     #     minimum - Modification of targeted policy. Only selected processes are protected.
     #     mls - Multi Level Security protection.
     SELINUXTYPE=targeted
    
    
  11. ファイアウォールを停止して無効にします。

    
     systemctl stop firewalld.service
     systemctl disable firewalld
    
    
  12. NTP を構成します。

    1. NTP パッケージをインストールします。

      
       yum install ntp
      
      
    2. ntpd サービスを起動します。

      
       systemctl start ntpd
      
      
    3. /etc/ntp.conf ファイルを更新します。

      この例では、10.x.x.x という踏み台インスタンスと同期します。内部 NTP サーバーであっても問題ありません。192.x.x.x は、Bare Metal Solution サーバーの IP アドレスです。

      
      vi /etv/ntp.conf
      
      restrict 192.x.x.x mask 255.255.255.0 nomodify notrap
      server 10.x.x.x prefer
      
      
    4. NTP サーバーを更新して同期を開始します。

       ntpdate -qu SERVER_NAME
      
  13. avahi-daemon が実行されている場合は、停止して無効にします。

    
     systemctl status avahi-daemon
     ● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
       Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled)
       Active: active (running) since Mon 2021-08-09 07:51:26 UTC; 23h ago
     Main PID: 2543 (avahi-daemon)
       Status: "avahi-daemon 0.6.31 starting up."
         Tasks: 2
       CGroup: /system.slice/avahi-daemon.service
               ├─2543 avahi-daemon: running [at-2811641-svr001.local]
               └─2546 avahi-daemon: chroot helper
    
     systemctl stop avahi-daemon
     Warning: Stopping avahi-daemon.service, but it can still be activated by:
       avahi-daemon.socket
    
     [root@at-2811641-svr001 ~]# systemctl disable avahi-daemon
     Removed symlink /etc/systemd/system/multi-user.target.wants/avahi-daemon.service.
     Removed symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket.
     Removed symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service.
    
     systemctl status avahi-daemon
     ● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
       Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; disabled; vendor preset: enabled)
       Active: inactive (dead) since Tue 2021-08-10 07:16:28 UTC; 36s ago
     Main PID: 2543 (code=exited, status=0/SUCCESS)
    
    
  14. Oracle ホーム ディレクトリと Grid ホーム ディレクトリを作成します。

    
     mkdir -p /apps/grid/19.3.0/gridhome_1
     mkdir -p /apps/grid/gridbase/
    
     mkdir -p /apps/oracle/product/19.3.0/dbhome_1
    
     chmod -R 775 /apps/
     chown -R oracle:oinstall /apps/
    
    
  15. 最初のノードで、次の操作を行います。

    1. Oracle Grid Infrastructure イメージ ファイルをダウンロードします。
    2. Oracle ユーザーとして、ダウンロードしたファイルを Grid のホーム ディレクトリにコピーします。
    3. Oracle ユーザーとして、Oracle Grid Infrastructure イメージ ファイルを抽出します。
    
     cp LINUX.X64_193000_grid_home.zip /apps/grid/19.3.0/gridhome_1/
     cd /apps/grid/19.3.0/gridhome_1/
     unzip LINUX.X64_193000_grid_home.zip
    
    
  16. いずれかのノードで、Oracle ユーザーのパスワードなし SSH を設定します。

    
     cd /apps/grid/19.3.0/gridhome_1/deinstall
    
     ./sshUserSetup.sh -user oracle -hosts "at-2811641-svr001 at-2811641-svr002" -noPromptPassphrase -confirm -advanced
    
    
  17. いずれかのノードで、root ユーザーとして、Grid のホーム ディレクトリから cvuqdisk RPM パッケージをインストールします。

    
     rpm -qa cvuqdisk
    
     cd /apps/grid/19.3.0/gridhome_1/cv/rpm/
    
     rpm -iv cvuqdisk-1.0.10-1.rpm
    
     Preparing packages...
     Using default group oinstall to install package
     cvuqdisk-1.0.10-1.x86_64
    
     rpm -qa cvuqdisk
    
     cvuqdisk-1.0.10-1.x86_64
    
    

Oracle ASM を構成する

Oracle ASM を構成するには、root ユーザーとして次の手順を行います。

  1. いずれかのノードで、Oracle ASM に使用するすべての共有 LUN を特定します。

     multipath -ll
    
  2. いずれかのノードで、fdisk または gdisk を使用して、すべての共有デバイスにパーティションを作成します。

     fdisk /dev/mapper/DISK_WWID
    

    以下を置き換えます。

    • DISK_WWID: ディスクの WWID。

    出力例は次のとおりです。

     fdisk /dev/mapper/3600a098038314343753f4f723154594e
    
     Welcome to fdisk (util-linux 2.23.2).
    
     Changes will remain in memory only, until you decide to write them. Be careful
     before using the write command.
    
     Device does not contain a recognized partition table Building a new DOS
     disklabel with disk identifier 0xf7f8fd23.
    
     The device presents a logical sector size that is smaller than the physical
     sector size. Aligning to a physical sector (or optimal I/O) size boundary is
     recommended, or performance may be impacted.
    
     Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4
     free) e extended Select (default p): p Partition number (1-4, default 1): First
     sector (2048-2147518463, default 2048): Using default value 2048 Last sector,
     +sectors or +size{K,M,G} (2048-2147518463, default 2147518463): Using default
     value 2147518463 Partition 1 of type Linux and of size 1 TiB is set
    
     Command (m for help): w The partition table has been altered!
    
     Calling ioctl() to re-read partition table.
    
     WARNING: Re-reading the partition table failed with error 22: Invalid argument.
     The kernel still uses the old table. The new table will be used at the next
     reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
    
     fdisk -l /dev/mapper/3600a098038314343753f4f723154594e
    
     Disk /dev/mapper/3600a098038314343753f4f723154594e: 1099.5 GB, 1099529453568 bytes,2147518464 sectors
     Units = sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 4096 bytes
     I/O size (minimum/optimal): 4096 bytes / 65536 bytes
     Disk label type: dos
     Disk identifier: 0xf7f8fd23
    
                                             Device Boot      Start         End      Blocks          Id  System
     /dev/mapper/3600a098038314343753f4f723154594e1            2048  2147518463  1073758208          83  Linux
    
  3. partprobe を実行して、すべての新しいパーティションを表示します。

     partprobe
    
  4. 両方のノードで Oracle ASM を構成します。

     oracleasm configure -i
     Configuring the Oracle ASM library driver.
    
     This will configure the on-boot properties of the Oracle ASM library
     driver.  The following questions will determine whether the driver is
     loaded on boot and what permissions it will have.  The current values
     will be shown in brackets ('[]').  Hitting <ENTER> without typing an
     answer will keep that current value.  Ctrl-C will abort.
    
     Default user to own the driver interface []: oracle
     Default group to own the driver interface []: oinstall
     Start Oracle ASM library driver on boot (y/n) [n]: y
     Scan for Oracle ASM disks on boot (y/n) [y]: y
     Writing Oracle ASM library driver configuration: done
    
  5. Bare Metal Solution サーバーはマルチパス デバイスを使用するため、両方のノードでパラメータ ORACLEASM_SCANORDER の値を dm に、ORACLEASM_SCANEXCLUDE の値を sd に設定します。

     vi /etc/sysconfig/oracleasm
    
     ORACLEASM_SCANORDER="dm"
     ORACLEASM_SCANEXCLUDE="sd"
    
  6. 両方のノードで Oracle ASM 構成を確認します。

    
     oracleasm configure
     ORACLEASM_ENABLED=true
     ORACLEASM_UID=oracle
     ORACLEASM_GID=oinstall
     ORACLEASM_SCANBOOT=true
     ORACLEASM_SCANORDER="dm"
     ORACLEASM_SCANEXCLUDE="sd"
     ORACLEASM_SCAN_DIRECTORIES=""
     ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"
    
    
  7. 両方のノードで oracleasm を起動します。

    
     oracleasm init
    
     Creating /dev/oracleasm mount point: /dev/oracleasm
     Loading module "oracleasm": oracleasm
     Configuring "oracleasm" to use device physical block size
     Mounting ASMlib driver filesystem: /dev/oracleasm
    
    
  8. 両方のノードで oracleasm のステータスを確認します。

    
     oracleasm status
    
     Checking if ASM is loaded: yes
     Checking if /dev/oracleasm is mounted: yes
    
    
  9. いずれかのノードで、マルチパス パーティション分割デバイスに Oracle ASM ディスクを作成します。

     oracleasm createdisk OCR /dev/mapper/DISK_WWID
    

    以下を置き換えます。

    • DISK_WWID: ディスクの WWID。

    出力例は次のとおりです。

    
     oracleasm createdisk OCR /dev/mapper/3600a098038314343753f4f723154594e1
     Writing disk header: done
     Instantiating disk: done
    
    
  10. 最初のノードで、ディスク名を一覧表示します。

     oracleasm listdisks
    

    出力例は次のとおりです。

    
    DATA01
    DATA02
    DATA03
    DATA04
    DATA05
    DATA06
    FRA01
    FRA02
    FRA03
    OCR
    
    
  11. 2 番目のノードで、最初のノードで ASMLIB ディスクとしてマークされているディスクを一覧表示します。

     oracleasm scandisks
    

    出力例は次のとおりです。

    
    Reloading disk partitions: done
    Cleaning any stale ASM disks...
    Scanning system for ASM disks...
    Instantiating disk "DATA01"
    Instantiating disk "DATA06"
    Instantiating disk "DATA04"
    Instantiating disk "OCR"
    Instantiating disk "DATA05"
    Instantiating disk "FRA01"
    Instantiating disk "DATA03"
    Instantiating disk "FRA03"
    Instantiating disk "FRA02"
    Instantiating disk "DATA02"
    
  12. 2 つ目のノードで、ディスク名を一覧表示します。

     oracleasm listdisks
    

    出力例は次のとおりです。

    oracleasm listdisks
    DATA01
    DATA02
    DATA03
    DATA04
    DATA05
    DATA06
    FRA01
    FRA02
    FRA03
    OCR
    
    

    スキャン後にディスクが 2 番目のノードに表示されない場合は、partprobe コマンドを実行してパーティションを表示します。

インストール前のチェックを行う

Oracle Grid Infrastructure のインストールの前提条件がすべて満たされていることを確認します。最初のノードで runcluvfy.sh スクリプトを実行します。

   
   ./runcluvfy.sh stage -pre crsinst -n at-2811641-svr001,at-2811641-svr002 -verbose
   

前提条件のいずれかが失敗した場合は、インストールを続行する前に修正してください。

Oracle RAC をインストールする

Oracle Grid Infrastructure イメージ ファイルをダウンロードして抽出した最初のノードで、次の操作を行います。

  1. VNC ビューアを使用して Bare Metal Solution サーバーに接続します。
  2. gridSetup.sh スクリプトを実行する
  3. [構成オプションの選択] ページで、[新しいクラスタ用の Oracle Grid Infrastructure] を選択し、[次へ] をクリックします。
  4. [クラスタ構成を選択する] ページで、[Oracle スタンドアロン クラスタを構成する] を選択し、[次へ] をクリックします。
  5. [グリッドのプラグ アンド プレイ情報] ページで、次の操作を行います。

    1. [ローカル SCAN を作成する] を選択します。
    2. クラスタ名を入力します。15 文字未満にしてください。
    3. SCAN 名を入力します。
    4. SCAN ポートを入力します。
    5. [次へ] をクリックします。
  6. 2 つ目のノードを追加するには、[追加] をクリックし、次の操作を行います。

    1. 2 つ目のノードの公開ホスト名を入力します。
    2. 2 番目のノードの仮想ホスト名を入力します。
    3. [OK] をクリックします。
  7. [ネットワーク インターフェースの使用状況の指定] ページで、次の操作を行います。

    1. インターフェースごとに、[用途] 列で使用タイプを選択します。プライベート インターフェースには [ASM とプライベート] を選択します。
    2. [次へ] をクリックします。
  8. [ストレージ オプション情報] ページで、Oracle ASM に OCR ファイルを保存し、投票ディスク ファイルを格納するために [Oracle Flex ASM for storage] を選択し、[次へ] をクリックします。

  9. [Grid Infrastructure 管理リポジトリの作成] で、[はい] を選択し、[次へ] をクリックします。

    このステップでは、Grid Infrastructure Management Repository(GIMR)を作成します。

  10. GIMR 用の別のディスク グループを作成しないので、[Grid Infrastructure 管理リポジトリオプション] ページで、[いいえ] を選択します。

  11. [ASM ディスク グループを作成する] ページで、次の操作を行います。

    1. ディスク グループの名前を入力します。
    2. [Change discovery path] をクリックし、Oracle ASM ディスクへの正しい検出パスを入力します。

      デバイスがマルチパスにマッピングされていることを確認して、1 つのパスが停止しても Oracle ASM ディスクが稼働するようにします。

  12. [ASM パスワードの設定] ページで、次の操作を行います。

    1. [これらのアカウントで同じパスワードを使用] を選択します。
    2. パスワードを入力して確認します。
    3. [次へ] をクリックします。
  13. [エラーの分離のサポート] ページで、[Intelligent Platform Management Interface(IPMI) を使用しない] を選択して、[次へ] をクリックします。

  14. Oracle Enterprise Manager では Oracle Grid Infrastructure を構成しないため、[管理オプションの設定] ページで [次へ] をクリックします。

  15. [特権が必要なオペレーティング システム グループ] ページで、次の操作を行います。

    1. すべての Oracle ASM 権限に対して、[oinstall] を選択します。asmdbaasmoper を使用することもできます。
    2. [次へ] をクリックします。
  16. [インストール先を設定] ページで、Oracle ベースを指定して [次へ] をクリックします。

  17. root パスワードを保有している場合、または oracle ユーザーに sudo 権限がある場合は、root スクリプトの実行を自動化できます。ただし、このガイドではスクリプトを手動で実行します。そのため、[ルート スクリプトの実行] ページで [次へ] をクリックします。

  18. [前提条件の確認を行う] ページで、次の操作を行います。

    1. 表示されたエラーを修正します。

      インストール前のチェックを実行するセクションの説明に従って、runcluvfy.sh スクリプトの実行時に見つかったすべてのエラーを修正した場合は、クリーン インストールが期待できます。

    2. エラーを修正したら、[再度確認する] をクリックして、失敗のステータスを [完了] に更新します。

    3. [次へ] をクリックします。

  19. 概要を確認し、[インストール] をクリックします。

  20. インストール プロンプトでは、両方のノードで root スクリプトを実行するかどうかを尋ねられます。まず、最初のノードでスクリプトを実行し、次に 2 番目のノードでスクリプトを実行します。

    
     /apps/grid/oraInventory/orainstRoot.sh
     /apps/grid/19.3.0/gridhome_11/grid/root.sh
    
    
  21. [完了] ウィンドウが表示されたら、[閉じる] をクリックします。

インストール後の手順を実行する

Oracle Grid Infrastructure のインストールが完了したら、次の手順を行います。

  1. Oracle データベース ソフトウェアをインストールして構成します。

    RAC インストールの場合は、[ソフトウェアのみ] インストール オプションを選択します。

    Oracle データベース ソフトウェアのインストール手順については、ブログ: RAC データベース用 Oracle 19c バイナリのインストールと構成の順を追った手順をご覧ください。

  2. Oracle ASM ディスク グループを作成します。

    1. /etc/oratab ファイルに Oracle ASM インスタンスのエントリを作成します。

      
      vi /etc/oratab
      
      +ASM1:/apps/grid/19.3.0/gridhome_1:N
      
      
    2. Oracle ASM インスタンスの ORACLE_SID 変数と ORACLE_HOME 変数を設定し、インスタンスに接続します。

      
      . oraenv
      ORACLE_SID = [oracle] ? +ASM1
      The Oracle base has been set to /apps/grid/gridbase
      
      sqlplus / as sysasm
      
      SQL> select INSTANCE_NAME,STATUS from v$instance;
      
      INSTANCE_NAME    STATUS
      ---------------- ------------
      +ASM1           STARTED
      
      
    3. 追加するディスクの HEADER_STATUSPROVISIONED であることを確認します。

      
      SQL> select HEADER_STATUS,STATE,TOTAL_MB/1024,path from v$asm_disk;
      
      HEADER_STATUS.      STATE             PATH
      ------------ -------- ------------- -------------------------
      PROVISIONED            NORMAL       /dev/oracleasm/disks/DAT01
      
      PROVISIONED             NORMAL      /dev/oracleasm/disks/DATA02
      
      MEMBER              NORMAL       /dev/oracleasm/disks/OCR
      
      
    4. 1 つのノードからディスク グループを作成します。

      
      SQL> create diskgroup DATA external redundancy disk '/dev/oracleasm/disks/DATA01','/dev/oracleasm/disks/DATA02';
      Diskgroup created.
      
      SQL> select name, state, type from v$asm_diskgroup;
      
      NAME             STATE      TYPE
      ------------------------------
      OCR           MOUNTED      EXTERN
      DATA            MOUNTED    EXTERN
      
      
    5. もう一方のノードで、Oracle ASM インスタンスにログインしてディスク グループをマウントします。

      
      SQL> select name, state, type from v$asm_diskgroup;
      
      NAME                 STATE       TYPE
      -------------------- ----------- ------
      DATA                 DISMOUNTED
      OCR                  MOUNTED     EXTERN
      
      SQL> alter diskgroup DATA mount;
      
      Diskgroup altered.
      
      SQL> select name, state, type from v$asm_diskgroup;
      
      NAME                           STATE       TYPE
      ------------------------------ ----------- ------
      OCR                            MOUNTED     EXTERN
      DATA                           MOUNTED     EXTERN
      
      
  3. Oracle Database 構成アシスタント(DBCA)を使用して RAC データベースを作成します。

    [データベース タイプ] に [Real Application Cluster データベース] が選択されていることを確認します。

    手順については、Oracle のドキュメントをご覧ください。

RAC データベースのインストールが完了し、使用できる状態になりました。

次のステップ