きさま!見ているなッ!!

Oracle LinuxにOracle Real Application Clusters 19c Enterprise Editionをインストールする

  • 2019-12-08
  • 2019-12-08
  • Oracle

Oracle といえば RAC(Real Application Cluster)ですね。RAC とは、Oracle が提供するクラスタ環境です。

クラスタ環境では、複数のサーバーを 1 つの集団として扱い、どのサーバーからもアクセスできる共有ストレージにデータベースを配置することで、高可用性(最低 1 つのサーバーが起動していれば動作する)および、拡張性(サーバーを増やすことによる処理量の向上・処理時間の短縮)を提供します。

ちなみに、クラスタ環境を構築する複数のサーバーのことをノードと呼びます。

今回は、VirtualBox に仮想マシンを 3 台作成し、RAC 環境を構築します。2 台の仮想マシンに、RAC 環境に必要なソフトウェアである Oracle Grid Infrastructure および、Oracle Database をインストールします。残りの 1 台は、DNS サーバーとして構築し、クライアントからの接続で使用する Single Clinet Access Name(SCAN)用 IP アドレスの名前解決を行います。

また、共有ストレージとして、自動ストレージ管理(ASM)を使用します。

参考サイト説明
Databaseインストレーション・ガイドfor LinuxLinux向けのDatabaseインストールガイド
Grid Infrastructureインストレーションおよびアップグレード・ガイドfor LinuxLinux向けのGrid Infrastructureインストールガイド
Oracle VM VirtualBox を用いた Oracle Real Application Clusters (RAC) 12c Release 1 環境の構築VirtualBoxでの環境構築資料(※12c R1用)

下記の記事を参考に、必要なソフトウェアをダウンロードします。

ダウンロード先ファイル名説明
Oracle Database 19c (19.3) for Linux x86-64LINUX.X64_193000_db_home.zipデータベース用
Oracle Database 19c Grid Infrastructure (19.3) for Linux x86-64LINUX.X64_193000_grid_home.zipクラスタ環境用

環境

ホストOS

名称バージョン情報説明
OSWindows 10 ProPC本体
仮想化ソフトウェアOracle VM VirtualBox 6.0仮想環境を構築する

ゲストOS

・仮想マシン概要

仮想マシン名ホスト名OSメモリディスク領域CPU数
rac1rac1.oracle19c.jpOracle Linux 7.78GB80GB4
rac2rac2.oracle19c.jpOracle Linux 7.78GB80GB4
dnsdns.oracle19c.jpOracle Linux 7.71GB10GB2

・rac1 と rac2 のパーティション構成

マウントポイントデバイスタイプファイルシステム割り当て容量
/標準パーティションxfs50GB
swap標準パーティションswap8GB
/home標準パーティションxfs22GB

※dns は自動パーティション構成

・ネットワーク構成

ホスト名接続名IPアドレスネットワーク用途
rac1.oracle19c.jpenp0s8192.168.56.101パブリック外部通信
enp0s9192.168.100.101プライベートノード間通信
enp0s10192.168.200.101プライベートノード間通信
rac2.oracle19c.jpenp0s8192.168.56.102パブリック外部通信
enp0s9192.168.100.102プライベートノード間通信
enp0s10192.168.200.102プライベートノード間通信
dns.oracle19c.jpenp0s8192.168.56.254パブリック外部通信

・SCAN 情報

SCAN名IPアドレス用途
scan.oracle19c.jp192.168.56.201SCAN用VIP
192.168.56.202SCAN用VIP
192.168.56.203SCAN用VIP

※クライアントは、SCAN 名で接続します。

仮想マシン準備

仮想マシンを 3 台作成し、RAC 環境を構築します。今回は、新規サーバーを 3 台割り当てられたというシチュエーションで構築してみましょう。

ちなみに、VirtualBox のクローン機能を使用すると OS のインストールや RAC 環境に必要なソフトウェアのインストール要件チェックなどが省ける部分があるので、多少楽です。Oracle 公式サイトのインストールマニュアルで紹介されているので、興味のある方は、ご覧ください。

仮想マシン作成

上記の記事を参考に仮想マシン(rac1、rac2、dns)を作成します。ホスト名やメモリ、ディスク領域などは、「環境 > ゲスト OS」を参照してください。

初期設定は、CentOS と同じなので、上記の記事を参考に Oracle Linux の初期設定を行います。

※インストール作業で root ユーザーで SSH ログインするので、SSH ログイン禁止設定は全ての作業が正常に完了した後に実施します。

DNSサーバー設定

仮想マシン(dns)にて、DNSサーバーの設定を行います。作業は、root ユーザーで行います。

ネットワーク構成

デバイス名メソッドアドレスネットマスクゲートウェイ自動接続用途
enp0s8手動192.168.56.254255.255.255.0オンDNSサーバー
# nmcli c modify enp0s8 ipv4.method manual ipv4.addresses 192.168.56.254/24 connection.autoconnect yes

nmcli コマンドで enp0s8 のネットワーク設定を変更します。

# nmcli d show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:C0:58:81
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         192.168.56.254/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.56.0/24, nh = 0.0.0.0, mt = 101
IP6.ADDRESS[1]:                         fe80::d830:ca2:6a88:39ec/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 101
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
# 

設定内容を確認します。

# vi /etc/hosts

~下記を追記~
192.168.56.101 rac1.oracle19c.jp rac1
192.168.56.102 rac2.oracle19c.jp rac2
192.168.56.111 rac1-vip.oracle19c.jp rac1-vip
192.168.56.112 rac2-vip.oracle19c.jp rac2-vip
192.168.56.201 scan.oracle19c.jp scan
192.168.56.202 scan.oracle19c.jp scan
192.168.56.203 scan.oracle19c.jp scan
192.168.56.254 dns.oracle19c.jp dns

hosts ファイルを修正します。

# nmcli c modify enp0s3 connection.autoconnect no
# nmcli c down enp0s3

仮想マシンの構築が完了したら、enp0s3 は不要なので、自動起動 OFF にして、停止しておきます。

# reboot

設定反映のため再起動します。

DNS起動

dnsmasq を使用して DNS サーバーを構築します。

# systemctl enable dnsmasq.service
# systemctl start dnsmasq.service
# reboot

自動起動を有効化して、dnsmasq を起動します。一旦、再起動します。

# systemctl status dnsmasq.service
● dnsmasq.service - DNS caching server.
   Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)
   Active: active (running) since 水 2019-12-04 21:33:45 JST; 1min 23s ago
 Main PID: 1150 (dnsmasq)
    Tasks: 1
   CGroup: /system.slice/dnsmasq.service
           └─1150 /usr/sbin/dnsmasq -k

12月 04 21:33:45 dns.oracle19c.jp systemd[1]: Started DNS caching server..
12月 04 21:33:45 dns.oracle19c.jp dnsmasq[1150]: started, version 2.76 cachesize 150
12月 04 21:33:45 dns.oracle19c.jp dnsmasq[1150]: compile time options: IPv6 GNU-getopt DB...fy
12月 04 21:33:45 dns.oracle19c.jp dnsmasq[1150]: no servers found in /etc/resolv.conf, wi...ry
12月 04 21:33:45 dns.oracle19c.jp dnsmasq[1150]: read /etc/hosts - 10 addresses
Hint: Some lines were ellipsized, use -l to show in full.
#
# systemctl is-enabled dnsmasq.service
enabled
#

正常に起動していることと自動起動が有効化されていることを確認します。

インストール準備

仮想マシン(rac1、rac2)にて、インストール要件を満たすように構成していきます。

ネットワーク追加

ノード間通信用に VirtualBox にてネットワーク設定を 2 つ追加します。rac1、rac2 両方で下記の設定を行います。

ネットワーク追加1
ネットワーク追加2

アダプター3、4 を有効化して、内部ネットワークを割り当てます。

共有ストレージ追加

仮想マシン(rac1、rac2)で使用可能な共有ストレージを追加します。

今回は、下記の内容でホスト OS 上に仮想ディスクを作成し、ゲスト OS(仮想マシン)のデバイスに対応させます。

配置先(ホストOS)仮想ディスク名(ホストOS)デバイス名(ゲストOS)サイズ
D:\VBox\SharedDiskSharedDisk1.vdisdb50GB
SharedDisk2.vdisdc50GB
SharedDisk3.vdisdd50GB
SharedDisk4.vdisde50GB
SharedDisk5.vdisdf50GB
SharedDisk6.vdisdg50GB

rac1 で仮想ディスクの作成と設定を行い、rac2 では、設定のみ行います。

共有ストレージ追加1

VirtualBox にて rac1 のストレージ設定から「ハードディスクの追加」をクリックします。

共有ストレージ追加2

「新規ディスクの作成」をクリックします。

共有ストレージ追加3

「VDI」を選択し、「次へ」をクリックします。

共有ストレージ追加4

「固定サイズ」を選択し、「次へ」をクリックします。

共有ストレージ追加5

ファイル名とサイズを入力し、「作成」をクリックします。

共有ストレージ追加6

「SharedDisk1.vdi」が作成されていることを確認します。同様の手順で「SharedDisk2.vdi」~「SharedDisk6.vdi」を作成します。

共有ストレージ追加7

VirtualBox の「ファイル>仮想メディアマネージャー」から仮想ディスクのタイプを変更します。「SharedDisk1.vdi」を選択し、タイプを「共有可能」に変更し、「適用」をクリックします。同様に「SharedDisk2.vdi」~「SharedDisk6.vdi」のタイプも変更します。

共有ストレージ追加8

rac1 のストレージ設定で「共有可能」に変更されていることを確認し、変更を反映させるため「OK」をクリックします。

共有ストレージ追加9

rac2 では、「ハードディスクの追加>既存のディスクを選択」で「SharedDisk1.vdi」~「SharedDisk6.vdi」を追加します。まだ、割り当てが「rac1」のみですが、「OK」をクリックすることで「rac2」にも割り当てられます。

共有ストレージ追加10

割り当てが「rac1、rac2」に変更されていることが確認できますね。

Oracle Preinstallation RPM

rac1、rac2 にて、root ユーザーでインストール準備を行います。

Linux ディストリビューションが Oracle Linux または Red Hat Enterprise Linux の場合、「Oracle Preinstallation RPM」を使用して必要な設定を簡略化できます。「Oracle Preinstallation RPM」を使用すると、下記が実行されます。

・Oracle Grid Infrastructure および Oracle Database のインストールに必要な追加の RPM パッケージが自動的にダウンロードおよびインストールされ、依存性が解決されます。
・oracle ユーザーが作成され、そのユーザーの oraInventory(oinstall) および OSDBA(dba) グループが作成されます。
・必要に応じて、sysctl.conf の設定、システム起動パラメータおよびドライバ・パラメータの値が、Oracle Preinstallation RPM プログラムの推奨値に基づいて設定されます。
・ハードリソース制限およびソフトリソース制限を設定します。
・カーネル・バージョンに応じて、他の推奨パラメータを設定します。
・Linux x86_64 マシンのカーネルで numa=off を設定します。

Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Linux:Oracle Preinstallation RPMについて
# yum list oracle-database-preinstall-19c
読み込んだプラグイン:langpacks, ulninfo
利用可能なパッケージ
oracle-database-preinstall-19c.x86_64                              1.0-1.el7                               ol7_latest
# 

oracle-database-preinstall-19c RPM パッケージを確認します。

# yum install oracle-database-preinstall-19c
読み込んだプラグイン:langpacks, ulninfo
ol7_UEKR5                                                                                     | 2.5 kB  00:00:00     
ol7_latest                                                                                    | 2.7 kB  00:00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ oracle-database-preinstall-19c.x86_64 0:1.0-1.el7 を インストール
--> 依存性の処理をしています: compat-libcap1 のパッケージ: oracle-database-preinstall-19c-1.0-1.el7.x86_64
--> 依存性の処理をしています: ksh のパッケージ: oracle-database-preinstall-19c-1.0-1.el7.x86_64
--> 依存性の処理をしています: libaio-devel のパッケージ: oracle-database-preinstall-19c-1.0-1.el7.x86_64
--> 依存性の処理をしています: compat-libstdc++-33 のパッケージ: oracle-database-preinstall-19c-1.0-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ compat-libcap1.x86_64 0:1.10-7.el7 を インストール
---> パッケージ compat-libstdc++-33.x86_64 0:3.2.3-72.el7 を インストール
---> パッケージ ksh.x86_64 0:20120801-139.0.1.el7 を インストール
---> パッケージ libaio-devel.x86_64 0:0.3.109-13.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

=====================================================================================================================
 Package                                  アーキテクチャー バージョン                     リポジトリー          容量
=====================================================================================================================
インストール中:
 oracle-database-preinstall-19c           x86_64           1.0-1.el7                      ol7_latest            18 k
依存性関連でのインストールをします:
 compat-libcap1                           x86_64           1.10-7.el7                     ol7_latest            17 k
 compat-libstdc++-33                      x86_64           3.2.3-72.el7                   ol7_latest           190 k
 ksh                                      x86_64           20120801-139.0.1.el7           ol7_latest           883 k
 libaio-devel                             x86_64           0.3.109-13.el7                 ol7_latest            12 k

トランザクションの要約
=====================================================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 1.1 M
インストール容量: 4.0 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): compat-libcap1-1.10-7.el7.x86_64.rpm                                                   |  17 kB  00:00:05     
(2/5): compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm                                            | 190 kB  00:00:05     
(3/5): libaio-devel-0.3.109-13.el7.x86_64.rpm                                                 |  12 kB  00:00:00     
(4/5): ksh-20120801-139.0.1.el7.x86_64.rpm                                                    | 883 kB  00:00:00     
(5/5): oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm                                    |  18 kB  00:00:00     
---------------------------------------------------------------------------------------------------------------------
合計                                                                                 186 kB/s | 1.1 MB  00:00:06     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : compat-libstdc++-33-3.2.3-72.el7.x86_64                                              1/5 
  インストール中          : compat-libcap1-1.10-7.el7.x86_64                                                     2/5 
  インストール中          : ksh-20120801-139.0.1.el7.x86_64                                                      3/5 
  インストール中          : libaio-devel-0.3.109-13.el7.x86_64                                                   4/5 
  インストール中          : oracle-database-preinstall-19c-1.0-1.el7.x86_64                                      5/5 
  検証中                  : libaio-devel-0.3.109-13.el7.x86_64                                                   1/5 
  検証中                  : ksh-20120801-139.0.1.el7.x86_64                                                      2/5 
  検証中                  : compat-libcap1-1.10-7.el7.x86_64                                                     3/5 
  検証中                  : oracle-database-preinstall-19c-1.0-1.el7.x86_64                                      4/5 
  検証中                  : compat-libstdc++-33-3.2.3-72.el7.x86_64                                              5/5 

インストール:
  oracle-database-preinstall-19c.x86_64 0:1.0-1.el7                                                                  

依存性関連をインストールしました:
  compat-libcap1.x86_64 0:1.10-7.el7    compat-libstdc++-33.x86_64 0:3.2.3-72.el7  ksh.x86_64 0:20120801-139.0.1.el7 
  libaio-devel.x86_64 0:0.3.109-13.el7 

完了しました!
# 

oracle-database-preinstall-19c RPM パッケージをインストールします。

# export LANG=C
# oracle-database-preinstall-19c-verify
# 

oracle-database-preinstall-19c-verify を実行し、設定を行います。

OSユーザー構成

下記 OS ユーザーの作成・設定を行います。

  • grid ユーザー:Oracle Grid Infrastructure 用ユーザー
  • oracle ユーザー:Oracle Database 用ユーザー

OSグループ、OSユーザー、ディレクトリの作成

# groupadd -g 54327 asmdba
# groupadd -g 54328 asmoper
# groupadd -g 54329 asmadmin

必要な OS グループを作成します。

※oinstall、dba、oper、backupdba、dgdba、kmdba、racdba は「Oracle Preinstallation RPM」で作成されています。

# useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,racdba grid
# usermod -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle

grid ユーザー作成と oracle ユーザー修正を行います。

# passwd oracle
# passwd grid

oracle ユーザーと grid ユーザーのパスワードを設定します。

# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba),54327(asmdba)
# 
# id grid
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54330(racdba),54327(asmdba),54328(asmoper),54329(asmadmin)
# 

oracle ユーザーと grid ユーザーの設定を確認します。

# mkdir -p /u01/app/grid
# mkdir -p /u01/app/oracle
# mkdir -p /u01/app/19.3.0/grid
# mkdir -p /u01/app/oraInventory
# mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
# chown -R grid:oinstall /u01
# chown -R oracle:oinstall /u01/app/oracle
# chown -R grid:oinstall /u01/app/oraInventory
# chmod -R 775 /u01

必要なディレクトリを作成します。

# vi /home/oracle/.bash_profile

~下記を追記~
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1

#
# vi /home/grid/.bash_profile

~下記を追記~
umask 022
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid

#

oracle ユーザーと grid ユーザーの.bash_profileの設定もしておきます。

OSユーザーのリソース制限

# vi /etc/security/limits.conf

~下記を追記~
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768

oracle ユーザーと grid ユーザーのリソース制限を設定します。

# vi /etc/pam.d/login

~下記を追記~
session required pam_limits.so

ログインしたときにリソース制限が有効になるように、PAM 認証の設定ファイルも修正します。

サーバー構成

ハードウェア、メモリ、ストレージが要件を満たしているか確認します。

ハードウェア要件

# uname -m
x86_64
# 

プロセッサ・アーキテクチャを確認します。「要件:今回は、64bit 版をインストールするので、x86_64」

# runlevel
N 5
# 

実行レベルを確認します。「要件:3 または、5」

# xrandr
Screen 0: minimum 1 x 1, current 1333 x 866, maximum 8192 x 8192
Virtual1 connected primary 1333x866+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1333x866      60.00*+
   2560x1600     59.99  

~中略~
#

ディスプレイ解像度を確認します。「要件:1024 x 768 以上」

メモリ要件

# grep MemTotal /proc/meminfo
MemTotal:        8156760 kB
# 

物理 RAM サイズを確認します。「要件:8GB以上」

# grep SwapTotal /proc/meminfo
SwapTotal:       7812092 kB
# 

スワップ領域を確認します。「要件:RAM サイズと同等」

# free -m
              total        used        free      shared  buff/cache   available
Mem:           7965         692        6352          24         920        7001
Swap:          7628           0        7628
# 

free コマンドでメモリの空き容量を確認します。

ストレージ要件

# df -hT /tmp
ファイルシス   タイプ サイズ  使用  残り 使用% マウント位置
/dev/sda1      xfs    47G  7.4G   40G  16% /
# 

一時領域を確認します。「要件:1GB 以上」

# df -hT /dev/shm
ファイルシス   タイプ サイズ  使用  残り 使用% マウント位置
tmpfs          tmpfs  3.9G     0  3.9G   0% /dev/shm
# 

共有メモリーを確認します。データベースで自動メモリ管理する場合の上限値になります。

# df -hT
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs       devtmpfs  3.9G     0  3.9G   0% /dev
tmpfs          tmpfs     3.9G     0  3.9G   0% /dev/shm
tmpfs          tmpfs     3.9G  9.5M  3.9G   1% /run
tmpfs          tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1      xfs        47G  7.4G   40G  16% /
/dev/sda3      xfs        26G   39M   26G   1% /home
tmpfs          tmpfs     797M  4.0K  797M   1% /run/user/42
tmpfs          tmpfs     797M   24K  797M   1% /run/user/0
# 

ストレージの空き容量を確認します。「要件:Oracle Grid Infrastructure 用:12GB 以上、Oracle Database Enterprise Edition 用:10GB 以上」

OS構成

Oracle Linux 7 の要件を確認していきます。

SSH要件

# yum list installed | grep ssh
libssh2.x86_64                         1.8.0-3.el7                 @anaconda/7.7
openssh.x86_64                         7.4p1-21.el7                @anaconda/7.7
openssh-clients.x86_64                 7.4p1-21.el7                @anaconda/7.7
openssh-server.x86_64                  7.4p1-21.el7                @anaconda/7.7
# 

OpenSSHがインストールされているか確認します。

# yum -y install openssh-server

インストールされていない場合は、上記でインストールします。

Linuxディストリビューション要件

# uname -a
Linux rac1.oracle19c.jp 4.14.35-1902.7.3.1.el7uek.x86_64 #2 SMP Tue Nov 12 13:19:18 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
# 

ディストリビューションを確認します。「要件:4.14.35-1818.1.6.el7uek.x86_64 以上 」

パッケージ要件

必要なパッケージは、公式サイトを参照してください。

yum list installed | grep -i bc.x86_64
yum list installed | grep -i binutils.x86_64
yum list installed | grep -i compat-libcap1.x86_64
yum list installed | grep -i compat-libstdc++-33.x86_64
yum list installed | grep -i dtrace-modules
yum list installed | grep -i dtrace-modules-headers
yum list installed | grep -i dtrace-modules-provider-headers
yum list installed | grep -i dtrace-utils.x86_64
yum list installed | grep -i elfutils-libelf.x86_64
yum list installed | grep -i elfutils-libelf-devel.x86_64
yum list installed | grep -i fontconfig-devel.x86_64
yum list installed | grep -i glibc.x86_64
yum list installed | grep -i glibc-devel.x86_64
yum list installed | grep -i ksh.x86_64
yum list installed | grep -i libaio.x86_64
yum list installed | grep -i libaio-devel.x86_64
yum list installed | grep -i libdtrace-ctf-devel.x86_64
yum list installed | grep -i libXrender.x86_64
yum list installed | grep -i libXrender-devel.x86_64
yum list installed | grep -i libX11.x86_64
yum list installed | grep -i libXau.x86_64
yum list installed | grep -i libXi.x86_64
yum list installed | grep -i libXtst.x86_64
yum list installed | grep -i libgcc.x86_64
yum list installed | grep -i librdmacm-devel
yum list installed | grep -i libstdc++.x86_64
yum list installed | grep -i libstdc++-devel.x86_64
yum list installed | grep -i libxcb.x86_64
yum list installed | grep -i make.x86_64
yum list installed | grep -i net-tools.x86_64
yum list installed | grep -i nfs-utils.x86_64
yum list installed | grep -i python.x86_64
yum list installed | grep -i python-configshell.noarch
yum list installed | grep -i python-rtslib.noarch
yum list installed | grep -i python-six.noarch
yum list installed | grep -i targetcli.noarch
yum list installed | grep -i smartmontools.x86_64
yum list installed | grep -i sysstat.x86_64

「Oracle Preinstallation RPM」を使用しているため、必要なパッケージはインストールされているはずなので、上記のコマンドで確認します。

yum -y install bc.x86_64 binutils.x86_64 compat-libcap1.x86_64 compat-libstdc++-33.x86_64 \
dtrace-modules dtrace-modules-headers dtrace-modules-provider-headers dtrace-utils.x86_64 \
elfutils-libelf.x86_64 elfutils-libelf-devel.x86_64 fontconfig-devel.x86_64 glibc.x86_64 \
glibc-devel.x86_64 ksh.x86_64 libaio.x86_64 libaio-devel.x86_64 libdtrace-ctf-devel.x86_64 \
libXrender.x86_64 libXrender-devel.x86_64 libX11.x86_64 libXau.x86_64 libXi.x86_64 \
libXtst.x86_64 libgcc.x86_64 librdmacm-devel libstdc++.x86_64 libstdc++-devel.x86_64 \
libxcb.x86_64 make.x86_64 net-tools.x86_64 nfs-utils.x86_64 python.x86_64 python-configshell.noarch \
python-rtslib.noarch python-six.noarch targetcli.noarch smartmontools.x86_64 sysstat.x86_64

不足しているパッケージがあれば、上記のようなコマンドでインストールします。インストール済みのパッケージは、除外されます。

カーネル・パラメータ要件

カーネル・パラメータの最小設定は、公式サイトを参照してください。

sysctl -a | grep sem
sysctl -a | grep shm
sysctl -a | grep file-max
sysctl -a | grep ip_local_port_range
sysctl -a | grep rmem_default
sysctl -a | grep rmem_max
sysctl -a | grep wmem_default
sysctl -a | grep wmem_max
sysctl -a | grep aio-max-nr
sysctl -a | grep panic_on_oops

「Oracle Preinstallation RPM」で設定されているので、上記のコマンドで確認します。

システム時刻同期設定

クラスタ内のすべてのノード間でシステム時刻を同期させる必要があります。下記の方法のどちらかで同期させることができます。

  • Cluster Time Synchronization Service(CTSS)
  • Network Time Protocol(NTP)

今回は、クラスタ内の同期なので、CTSS(クラスタ時刻同期化サービス)を使用してシステム時刻を同期させます。クラスタ外とも同期させる場合は、NTP を使用します。

NTP が設定されていない場合に、CTSS がクラスタ内の時刻を同期させるので、NTP を停止し、構成を削除します。なお、時刻同期で chrony を設定している場合は、chrony を停止し、構成を削除します。

chrony

# systemctl status chronyd.service
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since 金 2019-12-06 23:44:32 JST; 11min ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
 Main PID: 1070 (chronyd)
    Tasks: 1
   CGroup: /system.slice/chronyd.service
           └─1070 /usr/sbin/chronyd

12月 06 23:44:31 rac1.oracle19c.jp systemd[1]: Starting NTP client/server...
12月 06 23:44:31 rac1.oracle19c.jp chronyd[1070]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK...UG)
12月 06 23:44:32 rac1.oracle19c.jp chronyd[1070]: Frequency 509.267 +/- 124.600 ppm read from /var/lib...ift
12月 06 23:44:32 rac1.oracle19c.jp systemd[1]: Started NTP client/server.
12月 06 23:44:46 rac1.oracle19c.jp chronyd[1070]: Selected source 133.243.238.244
Hint: Some lines were ellipsized, use -l to show in full.
# 

chronyd サービスのステータスを確認します。

# systemctl stop chronyd.service
# systemctl disable chronyd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
# 

chronyd サービスを停止し、自動起動も無効化しておきます。

# systemctl status chronyd.service
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:chronyd(8)
           man:chrony.conf(5)

12月 06 23:44:31 rac1.oracle19c.jp systemd[1]: Starting NTP client/server...
12月 06 23:44:31 rac1.oracle19c.jp chronyd[1070]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK...UG)
12月 06 23:44:32 rac1.oracle19c.jp chronyd[1070]: Frequency 509.267 +/- 124.600 ppm read from /var/lib...ift
12月 06 23:44:32 rac1.oracle19c.jp systemd[1]: Started NTP client/server.
12月 06 23:44:46 rac1.oracle19c.jp chronyd[1070]: Selected source 133.243.238.244
12月 06 23:55:48 rac1.oracle19c.jp chronyd[1070]: chronyd exiting
12月 06 23:55:48 rac1.oracle19c.jp systemd[1]: Stopping NTP client/server...
12月 06 23:55:48 rac1.oracle19c.jp systemd[1]: Stopped NTP client/server.
Hint: Some lines were ellipsized, use -l to show in full.
# 
# systemctl is-enabled chronyd.service
disabled
# 

chronyd サービスの停止と自動起動の無効化を確認します。

# ll /etc/chrony.conf*
-rw-r--r--. 1 root root 1110 12月  6 21:39 /etc/chrony.conf
#
# mv /etc/chrony.conf /etc/chrony.conf.org
#
# ll /etc/chrony.conf*
-rw-r--r--. 1 root root 1110 12月  6 21:39 /etc/chrony.conf.org
# 

chrony.conf を削除 or リネームします。

NTP

# systemctl status ntpdate.service
● ntpdate.service - Set time via NTP
   Loaded: loaded (/usr/lib/systemd/system/ntpdate.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
#
# systemctl is-enabled ntpdate.service
disabled
# 
# systemctl status ntpd.service
Unit ntpd.service could not be found.
# 
# ll /etc/ntp.conf
ls: /etc/ntp.conf にアクセスできません: そのようなファイルやディレクトリはありません
# 

NTP の停止を確認しています。※起動している場合は、chrony と同じ手順で停止させます。

ネットワーク構成

・rac1

デバイス名メソッドアドレスネットマスクゲートウェイ自動接続DNSサーバー用途
enp0s8手動192.168.56.101255.255.255.0オン192.168.56.254外部通信
enp0s9手動192.168.100.101255.255.255.0オンノード間通信
enp0s10手動192.168.200.101255.255.255.0オンノード間通信

・rac2

デバイス名メソッドアドレスネットマスクゲートウェイ自動接続DNSサーバー用途
enp0s8手動192.168.56.102255.255.255.0オン192.168.56.254外部通信
enp0s9手動192.168.100.102255.255.255.0オンノード間通信
enp0s10手動192.168.200.102255.255.255.0オンノード間通信

rac1、rac2 で上記の通りネットワーク設定を行います。例えば、rac1 では下記のように設定します。

# nmcli device
DEVICE      TYPE      STATE     CONNECTION 
enp0s3      ethernet  接続済み  enp0s3     
virbr0      bridge    接続済み  virbr0     
enp0s10     ethernet  切断済み  --         
enp0s8      ethernet  切断済み  --         
enp0s9      ethernet  切断済み  --         
lo          loopback  管理無し  --         
virbr0-nic  tun       管理無し  --            
# 

nmcli コマンドでデバイス名を確認します。

# nmcli d show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:F3:32:24
GENERAL.MTU:                            1500
GENERAL.STATE:                          30 (切断済み)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               オン
# 
# nmcli d show enp0s9
GENERAL.DEVICE:                         enp0s9
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:23:6D:5B
GENERAL.MTU:                            1500
GENERAL.STATE:                          30 (切断済み)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               オン
# 
# nmcli d show enp0s10
GENERAL.DEVICE:                         enp0s10
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:73:FE:C9
GENERAL.MTU:                            1500
GENERAL.STATE:                          30 (切断済み)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               オン
# 

enp0s8、enp0s9、enp0s10 デバイスの詳細を確認します。「GENERAL.HWADDR」が VirtualBox の 「ネットワーク > MAC アドレス」と紐づいています。

# nmcli c show
NAME    UUID                                  TYPE      DEVICE 
enp0s3  718f8a20-819e-4f56-8f66-44cdfb3dd263  ethernet  enp0s3 
virbr0  0b924a0c-645e-4050-92a0-202eaae29cee  bridge    virbr0 
enp0s8  b015b85e-4656-4ad4-a6b6-b28423a828f6  ethernet  --     
# 

コネクションを確認します。enp0s8 の修正と enp0s9、enp0s10 の追加を行います。

# nmcli c modify enp0s8 ipv4.method manual ipv4.addresses 192.168.56.101/24 ipv4.dns 192.168.56.254 connection.autoconnect yes

enp0s8 を修正します。

# nmcli c add type ethernet ifname enp0s9 con-name enp0s9 ipv4.method manual ipv4.addresses 192.168.100.101/24 connection.autoconnect yes
接続 'enp0s9' (632ea955-1599-4cdb-8969-fe24ae991dcb) が正常に追加されました。
# 
# nmcli c add type ethernet ifname enp0s10 con-name enp0s10 ipv4.method manual ipv4.addresses 192.168.200.101/24 connection.autoconnect yes
接続 'enp0s10' (62018b6b-3e02-497f-bf08-53f7559a1e09) が正常に追加されました。
# 

enp0s9、enp0s10 を追加します。

# nmcli c show
NAME     UUID                                  TYPE      DEVICE  
enp0s3   718f8a20-819e-4f56-8f66-44cdfb3dd263  ethernet  enp0s3  
enp0s10  62018b6b-3e02-497f-bf08-53f7559a1e09  ethernet  enp0s10 
enp0s8   b015b85e-4656-4ad4-a6b6-b28423a828f6  ethernet  enp0s8  
enp0s9   632ea955-1599-4cdb-8969-fe24ae991dcb  ethernet  enp0s9  
virbr0   0b924a0c-645e-4050-92a0-202eaae29cee  bridge    virbr0  
# 
# nmcli d show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:F3:32:24
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         192.168.56.101/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.56.0/24, nh = 0.0.0.0, mt = 101
IP4.DNS[1]:                             192.168.56.254
IP6.ADDRESS[1]:                         fe80::c688:aa21:9f27:466e/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 101
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
# 
# nmcli d show enp0s9
GENERAL.DEVICE:                         enp0s9
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:23:6D:5B
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     enp0s9
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/5
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         192.168.100.101/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.100.0/24, nh = 0.0.0.0, mt = 102
IP6.ADDRESS[1]:                         fe80::fd16:f88e:f12b:5cea/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 102
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
# 
# nmcli d show enp0s10
GENERAL.DEVICE:                         enp0s10
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:73:FE:C9
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     enp0s10
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         192.168.200.101/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.200.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]:                         fe80::5dc4:ae98:a06:4e84/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
# 

設定内容を確認します。

# vi /etc/sysctl.d/99-sysctl.conf

~下記を記載~
net.ipv4.conf.enp0s9.rp_filter = 2
net.ipv4.conf.enp0s10.rp_filter = 2

複数プライベート・ネットワークを使用する場合、rp_filter パラメータの設定が必要です。2(緩慢モード)に設定します。

# sysctl --system

変更した値を反映させます。

# vi /etc/hosts

~下記を記載~
192.168.56.101 rac1.oracle19c.jp rac1
192.168.56.102 rac2.oracle19c.jp rac2
192.168.56.111 rac1-vip.oracle19c.jp rac1-vip
192.168.56.112 rac2-vip.oracle19c.jp rac2-vip

名前解決のため、hosts ファイルを修正します。

# nmcli c modify enp0s3 connection.autoconnect no
# nmcli c down enp0s3

仮想マシンの構築が完了したら、enp0s3 は不要なので、自動起動 OFF にして、停止しておきます。

同様に rac2 でもネットワーク設定を行います。

共有ストレージ構成

※ ルールファイル作成以外は、rac1 でのみ実施します。

# lsblk -p
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
/dev/sda      8:0    0   80G  0 disk 
├─/dev/sda2   8:2    0  7.5G  0 part [SWAP]
├─/dev/sda3   8:3    0   26G  0 part /home
└─/dev/sda1   8:1    0 46.6G  0 part /
/dev/sdb      8:16   0   50G  0 disk 
/dev/sdc      8:32   0   50G  0 disk 
/dev/sdd      8:48   0   50G  0 disk 
/dev/sde      8:64   0   50G  0 disk 
/dev/sdf      8:80   0   50G  0 disk 
/dev/sdg      8:96   0   50G  0 disk 
/dev/sr0     11:0    1 1024M  0 rom  
/dev/sr1     11:1    1 1024M  0 rom  
# 

ブロックデバイス一覧を確認します。VirtualBox で追加した「/dev/sdb」~「/dev/sdg」に単一パーティションを作成します。

# fdisk /dev/sdb
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 0xd62e1365.

コマンド (m でヘルプ): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
パーティション番号 (1-4, default 1): 1
最初 sector (2048-104857599, 初期値 2048): 
初期値 2048 を使います
Last sector, +sectors or +size{K,M,G} (2048-104857599, 初期値 104857599): 
初期値 104857599 を使います
Partition 1 of type Linux and of size 50 GiB is set

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
# 

fdisk コマンドで単一パーティションを作成します。「最初 sector」と「Last sector」は、初期値を使用するので、入力せずに「Enter」を押下します。「/dev/sdb」~「/dev/sdg」まで実施します。

# reboot

設定反映のため再起動します。

# vi /etc/udev/rules.d/99-oracle.rules

~下記を記載~
KERNEL=="sd[b-z]1",ACTION=="add|change",OWNER="grid",GROUP="asmadmin",MODE="0660"

ルールファイルを作成し、各ディスク・デバイスに対するアクセス権限や所有者などを設定します。

# reboot

設定反映のため再起動します。

# ls -l /dev/sd*1
brw-rw---- 1 root disk     8,  1 12月  4 23:20 /dev/sda1
brw-rw---- 1 grid asmadmin 8, 17 12月  4 23:20 /dev/sdb1
brw-rw---- 1 grid asmadmin 8, 33 12月  4 23:20 /dev/sdc1
brw-rw---- 1 grid asmadmin 8, 49 12月  4 23:20 /dev/sdd1
brw-rw---- 1 grid asmadmin 8, 65 12月  4 23:20 /dev/sde1
brw-rw---- 1 grid asmadmin 8, 81 12月  4 23:20 /dev/sdf1
brw-rw---- 1 grid asmadmin 8, 97 12月  4 23:20 /dev/sdg1
# 

所有者などを確認します。

Oracle Grid Infrastructureをインストールする

ソフトウェア準備

VirtualBox の共有フォルダー機能を使用して、インストールする Oracle ソフトウェアをゲスト OS 側で使用できるようにします。仮想マシン(rac1)をシャットダウンして設定します。

共有フォルダ1

Oracle VM VirtualBox マネージャーで rac1 の「共有フォルダー」をクリックします。

共有フォルダ2

「共有フォルダーを追加」をクリックします。

共有フォルダ3

下記を設定して、「OK」をクリックします。

フォルダーのパスホストOSの共有したいフォルダー(Oracleソフトウェアが配置されているフォルダー)
フォルダー名ゲストOSでマウントするときの名前

設定が完了したら、仮想マシン(rac1)を起動し、grid ユーザーでログインします。

$ su -
パスワード:
最終ログイン: 2019/12/04 (水) 23:21:45 JST日時 :0
# 

共有フォルダーをマウントするので、root ユーザーに切り替えます。

# mkdir /opt/image
# mount -t vboxsf oracle19c /opt/image

マウント先ディレクトリを作成して、共有フォルダーをマウントします。

# cd /opt/image
# ll
合計 5809468
-rwxrwxrwx 1 root root 3059705302 12月  1 23:28 LINUX.X64_193000_db_home.zip
-rwxrwxrwx 1 root root 2889184573 12月  1 23:43 LINUX.X64_193000_grid_home.zip
# 

Oracle ソフトウェアが配置されているディレクトリに移動し、ファイルを確認します。root ユーザーでの作業は終わりなので、grid ユーザーに戻っておきます。

Oracle Grid Infrastructureインストール

仮想マシン(rac1、rac2、dns) を起動しておきます。

$ hostname
rac1.oracle19c.jp
$ 
$ id
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54327(asmdba),54328(asmoper),54329(asmadmin),54330(racdba)
$ 

rac1 にて、grid ユーザーでインストールします。

$ env|grep ORA
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/19.3.0/grid
$ 
$ cd $ORACLE_HOME
$ pwd
/u01/app/19.3.0/grid
$ 
$ unzip /opt/image/LINUX.X64_193000_grid_home.zip

~中略~

$ ls
OPatch      css          env.ora        inventory  network  owm       rhp             sqlpatch  welcome.html
QOpatch     cv           evm            javavm     nls      perl      root.sh         sqlplus   wlm
addnode     dbjava       gpnp           jdbc       opmn     plsql     root.sh.old     srvm      wwg
assistants  dbs          gridSetup.sh   jdk        oracore  precomp   root.sh.old.1   suptools  xag
bin         deinstall    has            jlib       ord      qos       rootupgrade.sh  tomcat    xdk
cha         demo         hs             ldap       ords     racg      runcluvfy.sh    ucp
clone       diagnostics  install        lib        oss      rdbms     sdk             usm
crs         dmu          instantclient  md         oui      relnotes  slax            utl
$ 

grid ユーザーの ORACLE_HOME に移動し、unzip コマンドで「LINUX.X64_193000_grid_home.zip」を展開します。

$ /u01/app/19.3.0/grid/gridSetup.sh

OUI を起動します。

oracle19c-rac-giインストール1

「新しいクラスタ用のOracle Grid Infrastructureの構成」を選択し、「次へ」をクリックします。

oracle19c-rac-giインストール2

「Oracle スタンドアロン・クラスタの構成」を選択し、「次へ」をクリックします。

oracle19c-rac-giインストール3

「ローカル SCAN の作成」を選択し、下記を入力し、「次へ」をクリックします。GNS は構成しないので、「GNS の構成」のチェックは、外しておきます。

クラスタ名rac-cluster
SCAN名scan-oracle19c.jp
SCANポート1521
oracle19c-rac-giインストール4

rac1 の情報は、表示されているので、「追加」をクリックして、rac2 の情報を追加します。

oracle19c-rac-giインストール5

「単一ノードを追加」を選択し、下記を入力し、「OK」をクリックします。

パブリック・ホスト名rac2.oracle19c.jp
仮想ホスト名rac2-vip.oracle19c.jp
oracle19c-rac-giインストール6

ノード間でパスワード不要の SSH 接続ができるように「SSH 接続」をクリックします。

oracle19c-rac-giインストール7

grid ユーザーのパスワードを入力し、「設定」をクリックします。

oracle19c-rac-giインストール8

SSH 接続の確立に成功したので、「OK」をクリックします。

oracle19c-rac-giインストール9

設定が完了したので、「次へ」をクリックします。

oracle19c-rac-giインストール10

下記を設定し、「次へ」をクリックします。

インタフェース名用途
enp0s8パブリック
enp0s9ASMおよびプライベート
enp0s10ASMおよびプライベート
virbr0使用しない
oracle19c-rac-giインストール11

「Oracle Flex ASM を記憶域として使用」を選択し、「次へ」をクリックします。

oracle19c-rac-giインストール12

今回は、管理リポジトリの構成はしないので、「いいえ」を選択し、「次へ」をクリックします。

oracle19c-rac-giインストール13

ASM ディスク・グループを下記の通り設定し、「次へ」をクリックします。

ディスク・グループ名DATA
冗長性標準
割当て単位サイズ1MB
ディスク・パス/dev/sdb1
/dev/sdc1
/dev/sdd1
oracle19c-rac-giインストール14

ASM 管理者パスワードを設定し、「次へ」をクリックします。

oracle19c-rac-giインストール15

「はい」をクリックします。本番環境などでは、ちゃんとしたパスワードを設定しましょう。

oracle19c-rac-giインストール16

「Intelligent Platform Management Interface (IPMI) を使用しない」を選択し、「次へ」をクリックします。

oracle19c-rac-giインストール17

「Enterprise Manager (EM) Cloud Control への登録」のチェックは外しておきます。

oracle19c-rac-giインストール18

ASM に対する OS グループを設定し、「次へ」をクリックします。

ASM管理者グループasmadmin
ASM DBAグループasmdba
ASMオペレータグループasmoper
oracle19c-rac-giインストール19

Oracle ベースに「/u01/app/grid」が設定されていることを確認し、「次へ」をクリックします。

oracle19c-rac-giインストール20

インベントリ・ディレクトリに「/u01/app/oraInventory」が設定されていることを確認し、「次へ」をクリックします。

oracle19c-rac-giインストール21

ソフトウェア構成中に root ユーザーで実行するスクリプトは、手動で実行するので、「構成スクリプトを自動的に実行」のチェックを外し、「次へ」をクリックします。

oracle19c-rac-giインストール22

前提条件チェックが完了するのを待ちます。

oracle19c-rac-giインストール23

チェックに失敗すると、失敗した内容が表示されます。今回は、「cvuqdisk パッケージ」が未インストールであるため、失敗内容が表示されています。

「修正および再チェック」をクリックし、OUI によって生成される修正スクリプトを実行し、パッケージをインストールします。

oracle19c-rac-giインストール24

rac1、rac2 それぞれで root ユーザーで修正スクリプトを実行します。

# id
uid=0(root) gid=0(root) groups=0(root)
# 
# /tmp/GridSetupActions2019-12-07_02-25-54AM/CVU_19.0.0.0.0_grid/runfixup.sh
All Fix-up operations were completed successfully.
# 
oracle19c-rac-giインストール25

rac1、rac2 で修正スクリプトの実行が完了したら、「OK」をクリックします。

oracle19c-rac-giインストール26
oracle19c-rac-giインストール27

今回は、インターネット接続を切っているため「RPM Package Manager データベース」のチェックに失敗していますが、そのままインストールを続けます。「すべて無視」をチェックし、「次へ」をクリックします。

oracle19c-rac-giインストール28

「はい」をクリックします。

oracle19c-rac-giインストール29

サマリーを確認し、「インストール」をクリックします。

oracle19c-rac-giインストール30

インストールが始まります。

oracle19c-rac-giインストール31

root ユーザーによる構成スクリプト実行を求められます。上から順に rac1、rac2 で実行します。

# /u01/app/oraInventory/orainstRoot.sh
権限を変更中 /u01/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。

グループ名の変更 /u01/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。
# 

まず、「/u01/app/oraInventory/orainstRoot.sh」を rac1、rac2 で実行します。

# /u01/app/19.3.0/grid/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/19.3.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19.3.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/rac1/crsconfig/rootcrs_rac1_2019-12-07_02-47-19AM.log
2019/12/07 02:47:32 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2019/12/07 02:47:32 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2019/12/07 02:47:32 CLSRSC-363: User ignored prerequisites during installation
2019/12/07 02:47:32 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2019/12/07 02:47:36 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2019/12/07 02:47:36 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2019/12/07 02:47:36 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2019/12/07 02:47:37 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2019/12/07 02:48:03 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2019/12/07 02:48:05 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2019/12/07 02:48:07 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2019/12/07 02:48:17 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2019/12/07 02:48:18 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2019/12/07 02:48:23 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2019/12/07 02:48:23 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2019/12/07 02:48:54 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2019/12/07 02:48:59 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2019/12/07 02:49:05 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2019/12/07 02:49:10 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.

ASMは正常に作成され、起動されました。

[DBT-30001] ディスク・グループは正常に作成されました。詳細は、/u01/app/grid/cfgtoollogs/asmca/asmca-191207午前024945.logを参照してください。

2019/12/07 02:50:49 CLSRSC-482: Running command: '/u01/app/19.3.0/grid/bin/ocrconfig -upgrade grid oinstall'
CRS-4256: プロファイルを更新しています
投票ディスクd0ed6cac5bfe4f4dbfd266f52968df47が正常に追加されました。
投票ディスク33f7f04cdbda4fc3bf92861f42e86be5が正常に追加されました。
投票ディスクfe80b595b9434f64bf48d18bc06a3ceaが正常に追加されました。
投票ディスク・グループは+DATAと正常に置換されました。
CRS-4256: プロファイルを更新しています
CRS-4266: 投票ファイルが正常に置換されました
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   d0ed6cac5bfe4f4dbfd266f52968df47 (/dev/sdb1) [DATA]
 2. ONLINE   33f7f04cdbda4fc3bf92861f42e86be5 (/dev/sdc1) [DATA]
 3. ONLINE   fe80b595b9434f64bf48d18bc06a3cea (/dev/sdd1) [DATA]
3の投票ディスクを検出しました。
2019/12/07 02:52:34 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2019/12/07 02:53:41 CLSRSC-343: Successfully started Oracle Clusterware stack
2019/12/07 02:53:41 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2019/12/07 02:55:31 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2019/12/07 02:56:00 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
# 

次に「/u01/app/19.3.0/grid/root.sh」を rac1 → rac2 の順で実行します。

oracle19c-rac-giインストール32

構成スクリプトの実行が完了したら、「OK」をクリックします。

oracle19c-rac-giインストール33

インストールが正常に完了したので、「閉じる」をクリックして OUI を終了します。

$ /u01/app/19.3.0/grid/bin/crsctl status resource -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.ASMNET2LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet2.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rac1                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rac1                     STABLE
--------------------------------------------------------------------------------
$ 

インストール後の作業として、crsctl コマンドで Oracle Clusterware のリソース稼働状況を確認しておきます。

Oracle Databaseをインストールする

Oracle Databaseインストール

$ hostname
rac1.oracle19c.jp
$ 
$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54330(racdba)
$ 

rac1 にて、oracle ユーザーでインストールします。

$ env|grep ORA
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
$ 
$ cd $ORACLE_HOME
$ pwd
/u01/app/oracle/product/19.3.0/dbhome_1
$ 
$ unzip /opt/image/LINUX.X64_193000_db_home.zip

~中略~

$ ls
OPatch      crs        demo         install        lib      oracore  precomp        schagent.conf  suptools
QOpatch     css        diagnostics  instantclient  md       ord      racg           sdk            ucp
R           ctx        dmu          inventory      mgw      ords     rdbms          slax           usm
addnode     cv         drdaas       javavm         network  oss      relnotes       sqldeveloper   utl
apex        data       dv           jdbc           nls      oui      root.sh        sqlj           wwg
assistants  dbjava     env.ora      jdk            odbc     owm      root.sh.old    sqlpatch       xdk
bin         dbs        has          jlib           olap     perl     root.sh.old.1  sqlplus
clone       deinstall  hs           ldap           opmn     plsql    runInstaller   srvm
$ 

oracle ユーザーの ORACLE_HOME に移動し、unzip コマンドで「LINUX.X64_193000_db_home.zip」を展開します。

$ ./runInstaller

OUI を起動します。

oracle19c-rac-dbインストール1

「ソフトウェアのみの設定」を選択し、「次へ」をクリックします。

oracle19c-rac-dbインストール2

「Oracle Real Application Clusters データベースのインストール」を選択し、「次へ」をクリックします。

oracle19c-rac-dbインストール3

rac1、rac2 が選択されていることを確認し、ノード間でパスワード不要の SSH 接続ができるように「SSH 接続」をクリックします。

oracle19c-rac-dbインストール4

oracle ユーザーのパスワードを入力し、「設定」をクリックします。

oracle19c-rac-dbインストール5

SSH 接続の確立に成功したので、「OK」をクリックします。

oracle19c-rac-dbインストール6

設定が完了したので、「次へ」をクリックします。

oracle19c-rac-dbインストール7

「Enterprise Edition」を選択し、「次へ」をクリックします。

oracle19c-rac-dbインストール8

Oracle ベースに「/u01/app/oracle」が設定されていることを確認し、「次へ」をクリックします。

oracle19c-rac-dbインストール9

データベースに対する OS グループを設定し、「次へ」をクリックします。

データベース管理者グループdba
データベース・オペレータグループoper
データベースのバックアップおよびリカバリグループbackupdba
Data Guard管理グループdgdba
暗号化鍵管理グループkmdba
Real Application Cluster管理グループracdba
oracle19c-rac-dbインストール10

ソフトウェア構成中に root ユーザーで実行するスクリプトは、手動で実行するので、「構成スクリプトを自動的に実行」のチェックを外し、「次へ」をクリックします。

oracle19c-rac-dbインストール11

前提条件チェックが完了するのを待ちます。

oracle19c-rac-dbインストール12

サマリーを確認し、「インストール」をクリックします。

oracle19c-rac-dbインストール13

インストールが始まります。

oracle19c-rac-dbインストール14

root ユーザーによる構成スクリプト実行を求められます。rac1、rac2 で実行します。

# id
uid=0(root) gid=0(root) groups=0(root)
# 
# /u01/app/oracle/product/19.3.0/dbhome_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19.3.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
# 

「/u01/app/oracle/product/19.3.0/dbhome_1/root.sh」を rac1、rac2 で実行します。

oracle19c-rac-dbインストール15

構成スクリプトの実行が完了したら、「OK」をクリックします。

oracle19c-rac-dbインストール16

インストールが正常に完了したので、「閉じる」をクリックして OUI を終了します。

データベースを作成する

ASMCAを使用したASMディスク・グループ作成

Automatic Storage Management Configuration Assistant(ASMCA)を使用して、高速リカバリ領域(Fast Recovery Area)用の ASM ディスク・グループを作成します。

$ id
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54327(asmdba),54328(asmoper),54329(asmadmin),54330(racdba)
$ 
$ /u01/app/19.3.0/grid/bin/asmca

grid ユーザーで ASMCA を起動します。

oracle19c-rac-ASMディスク・グループ作成1

「ディスク・グループ」をクリックします。

oracle19c-rac-ASMディスク・グループ作成2

「作成」をクリックします。

oracle19c-rac-ASMディスク・グループ作成3

ASM ディスク・グループを下記の通り設定し、「OK」をクリックします。

ディスク・グループ名FRA
冗長性標準
割当て単位サイズ1MB
ディスク・パス/dev/sde1
/dev/sdf1
/dev/sdg1
oracle19c-rac-ASMディスク・グループ作成4

状態でマウントされていることを確認し、「終了」をクリックします。

DBCAを使用したデータベースの作成

Database Configuration Assistant(DBCA)を使用してデータベースを作成します。

$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54330(racdba)
$ 
$ /u01/app/oracle/product/19.3.0/dbhome_1/bin/dbca

oracle ユーザーで DBCA を起動します。

oracle19c-rac-データベース作成1

「データベースの作成」を選択し、「次へ」をクリックします。

oracle19c-rac-データベース作成2

「拡張構成」を選択し、「次へ」をクリックします。

oracle19c-rac-データベース作成3

下記を選択し、「次へ」をクリックします。

データベース・タイプOracle Real Application Cluster (RAC) データベース
構成タイプ管理されたポリシー
データベースのテンプレート汎用またはトランザクション処理
oracle19c-rac-データベース作成4

「このデータベースのサーバー・プールの新規作成」を選択し、下記のサーバー・プールをカーディナリティ「2」で設定し、「次へ」をクリックします。

サーバー・プール名srvpool1
パラレル問合わせサーバー・プール名parapool1
oracle19c-rac-データベース作成5

下記を設定し、「次へ」をクリックします。

グローバル・データベース名orcl.oracle19c.jp
コンテナ・データベースとして作成オン
PDB用のローカルUNDO表領域の使用オン
1つ以上のPDBを含むコンテナ・データベースの作成オン
PDBの数2
PDB名前接頭辞pdb
oracle19c-rac-データベース作成6

下記を設定し、「次へ」をクリックします。

データベース記憶域属性に次を使用オン
データベース・ファイルの記憶域タイプ自動ストレージ管理(ASM)
データベース・ファイルの位置+DATA/{DB_UNIQUE_NAME}
Oracle Managed Fileの使用(OMF)オン
oracle19c-rac-データベース作成7

下記を設定し、「次へ」をクリックします。

高速リカバリ領域の指定オン
リカバリ・ファイルの記憶域タイプ自動ストレージ管理(ASM)
高速リカバリ領域+FRA
高速リカバリ領域のサイズ30GB
アーカイブ有効化オン
oracle19c-rac-データベース作成8

今回は、Oracle Data Vault の構成はしないので、そのまま「次へ」をクリックします。

oracle19c-rac-データベース作成9

「自動共有メモリー管理」を設定します。

oracle19c-rac-データベース作成10

サイズ設定は、デフォルトです。

oracle19c-rac-データベース作成11

下記の設定を確認します。

データベース・キャラクタ・セットUnicode(AL32UTF8)を使用
各国語文字セットAL16UTF16 – Unicode UTF-16汎用キャラクタ・セット
デフォルト言語日本語
デフォルト地域日本
oracle19c-rac-データベース作成12

「専用サーバー・モード」を選択して、「次へ」をクリックします。

oracle19c-rac-データベース作成13

「クラスタ検証ユーティリティ(CVU)・チェックを定期的に実行」と「Enterprise Manager(EM)Database Expressの構成」を設定し、「次へ」をクリックします。

oracle19c-rac-データベース作成14

「ユーザー・アカウントのパスワード」を設定し、「次へ」をクリックします。

oracle19c-rac-データベース作成15

「はい」をクリックします。本番環境などでは、ちゃんとしたパスワードを設定しましょう。

oracle19c-rac-データベース作成16

「データベースの作成」を選択し、「次へ」をクリックします。

oracle19c-rac-データベース作成17

前提条件チェックが完了するのを待ちます。

oracle19c-rac-データベース作成18

サマリーを確認して、「終了」をクリックします。

oracle19c-rac-データベース作成19

データベース作成が開始されるので、しばらく待ちます。

oracle19c-rac-データベース作成20

データベース作成が完了したら、「閉じる」をクリックします。

環境変数の設定

grid ユーザーと oracle ユーザーの環境変数を設定します。rac1、rac2 それぞれで設定します。

rac1:gridユーザー

$ su - grid
$ 
$ id
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54327(asmdba),54328(asmoper),54329(asmadmin),54330(racdba)
$ 
$ mkdir $HOME/tmp
$ 

grid ユーザーのホームディレクトリ配下に、tmp ディレクトリを作成します。

$ ps -ef | grep pmon
grid      4585     1  0 14:44 ?        00:00:00 asm_pmon_+ASM1
oracle    8845     1  0 17:05 ?        00:00:00 ora_pmon_orcl_2
grid     22001 20168  0 17:30 pts/0    00:00:00 grep --color=auto pmon
$ 

ノードで起動しているプロセスモニター(PMON)より、ORACLE_SID に設定する値を確認します。

$ vi .bash_profile

~下記を追記~
export TMPDIR=$HOME/tmp
export TEMP=$HOME/tmp
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:${PATH}
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=JAPANESE_JAPAN.UTF8
export LANG=ja_JP.UTF-8
export ORACLE_SID=+ASM1

「.bash_profile」を修正します。

$ . .bash_profile

「.bash_profile」の修正を反映させます。

rac1:oracleユーザー

$ su - oracle
$ 
$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54330(racdba)
$ 
$ mkdir $HOME/tmp
$ 

oracle ユーザーのホームディレクトリ配下に、tmp ディレクトリを作成します。

$ ps -ef | grep pmon
grid      4585     1  0 14:44 ?        00:00:00 asm_pmon_+ASM1
oracle    8845     1  0 17:05 ?        00:00:00 ora_pmon_orcl_2
grid     22001 20168  0 17:30 pts/0    00:00:00 grep --color=auto pmon
$ 

ノードで起動しているプロセスモニター(PMON)より、ORACLE_SID に設定する値を確認します。

$ vi .bash_profile

~下記を追記~
export TMPDIR=$HOME/tmp
export TEMP=$HOME/tmp
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:${PATH}
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=JAPANESE_JAPAN.UTF8
export LANG=ja_JP.UTF-8
export ORACLE_SID=orcl_2

「.bash_profile」を修正します。

$ . .bash_profile

「.bash_profile」の修正を反映させます。

同様に rac2 でも環境変数の設定を行います。

データベースの稼働確認

$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 日 12月 8 17:43:44 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> 
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

SQL> 
SQL> set lin 1000
SQL> set pages 100
SQL> col name for a20
SQL> SELECT inst_id, con_id, name, open_mode
  2  FROM gv$database
  3  ORDER BY inst_id, con_id
  4  ;

   INST_ID     CON_ID NAME                 OPEN_MODE
---------- ---------- -------------------- ------------
         1          0 ORCL                 READ WRITE
         2          0 ORCL                 READ WRITE

SQL> 
SQL> col instance_name for a20
SQL> SELECT inst_id, con_id, instance_name, status
  2  FROM gv$instance
  3  ORDER BY inst_id, con_id
  4  ;

   INST_ID     CON_ID INSTANCE_NAME        STATUS
---------- ---------- -------------------- ---------
         1          0 orcl_1               OPEN
         2          0 orcl_2               OPEN

SQL> 
SQL> SELECT inst_id, con_id, name, open_mode
  2  FROM gv$pdbs
  3  ORDER BY inst_id, con_id
  4  ;

   INST_ID     CON_ID NAME                 OPEN_MODE
---------- ---------- -------------------- ----------------
         1          2 PDB$SEED             READ ONLY
         1          3 PDB1                 READ WRITE
         1          4 PDB2                 READ WRITE
         2          2 PDB$SEED             READ ONLY
         2          3 PDB1                 READ WRITE
         2          4 PDB2                 READ WRITE

6行が選択されました。

SQL> 

ORCL と PDB1、PDB2 が OPEN していることを確認します。

$ sqlplus system/[PASSWORD]@scan.oracle19c.jp:1521/orcl.oracle19c.jp

SQL*Plus: Release 19.0.0.0.0 - Production on 日 12月 8 17:55:08 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> 
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

SQL> 

SCAN を使用した ORCL への接続確認。

$ sqlplus system/[PASSWORD]@scan.oracle19c.jp:1521/pdb1.oracle19c.jp

SQL*Plus: Release 19.0.0.0.0 - Production on 日 12月 8 17:55:52 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

最終正常ログイン時間: 日 12月 08 2019 17:55:08 +09:00


Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL>  
SQL> show con_name

CON_NAME
------------------------------
PDB1

SQL> 

SCAN を使用した PDB1 への接続確認。

まとめ

Oracle RAC 環境を構築することにより、高可用性および拡張性を実現することができます。パッチ適用に関しても、ローリング方式で適用できるパッチについては、インスタンスを全停止することなくメンテナンスできます。

メリットが多い Oracle RAC ですが、環境構築・運用管理が難しいイメージがあると思います。

本記事を参考に自由に触れる RAC 環境を構築し、いろいろと試すことで理解を深めていただければ幸いです。

Oracle LinuxにOracle Real Application Clusters 19c Enterprise Editionをインストールする
最新情報をチェックしよう!