Bare Metal Solution に Oracle RAC をインストールする
このページでは、Bare Metal Solution サーバーに Oracle Real Application Clusters(RAC)をインストールする方法について説明します。
デプロイ
このガイドでは、Bare Metal Solution サーバーにインストールされた Oracle RAC 19c を含むデプロイを作成します。データベースを含む 2 ノードの RAC を構築します。
準備
- RAC に必要なインフラストラクチャをプロビジョニングしていることを確認します。これには、Oracle ホーム ディレクトリをホストする 2 つのノード、共有ストレージ、専用ボリュームが含まれます。
- このガイドでは、GUI インストール プロセスを使用します。GUI のインストール プロセスを使用する場合は、Oracle VNC 設定ガイドに沿って、いずれかのノードで Virtual Network Computing(VNC)を構成します。
- Oracle のホーム ディレクトリと Grid のホーム ディレクトリをホストするローカル マウント ポイント
/apps
を作成します。
RAC をインストールする
Bare Metal Solution に RAC をインストールする手順は次のとおりです。
RAC インストール用にノードを準備する
特に指定のない限り、両方のノードで次の手順を行います。
RAC 用に、次の IP アドレスで
/etc/hosts
ファイルを更新します。- パブリック 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
仮想 IP アドレスと SCAN 仮想 IP アドレスの DNS 解決を行います。
Cloud DNS を使用して、仮想 IP アドレスと SCAN の仮想 IP アドレスを解決します。手順については、Cloud DNS を使用して SCAN を構成するをご覧ください。
カーネル パラメータで
/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
カーネル パラメータの更新を適用します。
/sbin/sysctl -p
/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
必要なユーザーとグループを追加します。
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
Oracle プリインストール パッケージをインストールします。
このガイドでは、Oracle リポジトリが設定済みであることを前提としています。
yum install oracle-database-preinstall-19c
oracle-database-preinstall-19c
パッケージにより、必要なパッケージがインストールされ、oracle
ユーザーと/etc/sysctl.conf
ファイルにエントリが作成されます。oracle
ユーザーのパスワードを再設定します。passwd oracle
Oracle ASM 用の次のパッケージをインストールします。
oracleasm-support
kmod-oracleasm
yum install oracleasm-support yum install kmod-oracleasm
/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
ファイアウォールを停止して無効にします。
systemctl stop firewalld.service systemctl disable firewalld
NTP を構成します。
NTP パッケージをインストールします。
yum install ntp
ntpd
サービスを起動します。systemctl start ntpd
/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
NTP サーバーを更新して同期を開始します。
ntpdate -qu SERVER_NAME
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)
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/
1 番目のノードで、次の操作を行います。
- Oracle Grid Infrastructure のイメージ ファイルをダウンロードします。
Oracle
ユーザーとして、ダウンロードしたファイルを Grid ホーム ディレクトリにコピーします。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
いずれかのノードで、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
いずれかのノードで、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 ユーザーとして次の手順を行います。
いずれかのノードで、Oracle ASM に使用するすべての共有 LUNS を特定します。
multipath -ll
どちらのノードでも、
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
partprobe
を実行して、すべての新しいパーティションを表示します。partprobe
両方のノードで 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
両方のノードで、パラメータ
ORACLEASM_SCANORDER
の値をdm
に、ORACLEASM_SCANEXCLUDE
の値をsd
に設定します。これは Bare Metal Solution サーバーはマルチパス デバイスを使用するためです。vi /etc/sysconfig/oracleasm ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd"
両方のノードで、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"
両方のノードで
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
両方のノードで、
oracleasm
のステータスを確認します。oracleasm status Checking if ASM is loaded: yes Checking if /dev/oracleasm is mounted: yes
どちらのノードでも、マルチパス パーティション分割デバイスに 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
最初のノードで、ディスク名を一覧表示します。
oracleasm listdisks
出力例は次のとおりです。
DATA01 DATA02 DATA03 DATA04 DATA05 DATA06 FRA01 FRA02 FRA03 OCR
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"
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 のイメージ ファイルをダウンロードして解凍した最初のノードで、次の手順を行います。
- VNC Viewer を使用して Bare Metal Solution サーバーに接続します。
gridSetup.sh
スクリプトを実行する- [構成オプションの選択] ページで、[新しいクラスタ用の Oracle Grid Infrastructure] を選択し、[次へ] をクリックします。
- [クラスタ構成の選択] ページで、[Oracle スタンドアロン クラスタを構成する] を選択して [次へ] をクリックします。
[グリッド プラグ アンド プレイの情報] ページで、次の操作を行います。
- [ローカル SCAN の作成] を選択します。
- クラスタ名を入力します。15 文字未満にしてください。
- SCAN 名を入力します。
- SCAN ポートを入力します。
- [次へ] をクリックします。
2 番目のノードを追加するには、[追加] をクリックして、次の操作を行います。
- 2 番目のノードのパブリックホスト名を入力します。
- 2 番目のノードの仮想ホスト名を入力します。
- [OK] をクリックします。
[ネットワーク インターフェースの使用の指定] ページで、次の操作を行います。
- インターフェースごとに、[用途] 列で使用タイプを選択します。プライベート インターフェースには、[ASM & Private] を選択します。
- [次へ] をクリックします。
[ストレージ オプション情報] ページで、Oracle ASM に OCR ファイルを保存し、投票ディスク ファイルを格納するために [Oracle Flex ASM for storage] を選択し、[次へ] をクリックします。
[Grid Infrastructure 管理リポジトリの作成] で、[はい] を選択し、[次へ] をクリックします。
この手順では、Grid Infrastructure Management Repository(GIMR)を作成します。
GIMR 用の別のディスク グループを作成しないので、[Grid Infrastructure 管理リポジトリオプション] ページで、[いいえ] を選択します。
[ASM ディスク グループの作成] ページで、次の操作を行います。
- ディスク グループの名前を入力します。
[検出パスを変更] をクリックし、Oracle ASM ディスクへの正しい検出パスを入力します。
1 つのパスがダウンしても Oracle ASM ディスクが稼働するように、デバイスがマルチパスにマッピングされるようにしてください。
[ASM パスワードの設定] ページで、次の操作を行います。
- [これらのアカウントに同じパスワードを使用する] を選択します。
- パスワードを入力して確認します。
- [次へ] をクリックします。
[エラーの分離のサポート] ページで、[Intelligent Platform Management Interface(IPMI) を使用しない] を選択して、[次へ] をクリックします。
Oracle Enterprise Manager では Oracle Grid Infrastructure を構成しないため、[管理オプションの設定] ページで [次へ] をクリックします。
[特権が必要なオペレーティング システム グループ] ページで、次の操作を行います。
- すべての Oracle ASM 権限については、[oinstall] を選択します。asmdba と asmoper も使用できます。
- [次へ] をクリックします。
[インストール先を設定] ページで、Oracle ベースを指定して [次へ] をクリックします。
root パスワードがある場合、または
oracle
ユーザーに sudo 権限がある場合は、root スクリプトの実行を自動的に実行できます。ただし、このガイドではスクリプトを手動で実行します。したがって、[ルート スクリプトの実行] ページで、[次へ] をクリックします。[前提条件の確認を行う] ページで、次の操作を行います。
表示されたエラーを修正します。
インストール前のチェックを実行するの説明に沿って、
runcluvfy.sh
スクリプトの実行で発生したすべてのエラーを修正した場合は、クリーン インストールを想定できます。エラーを修正したら、[再度確認する] をクリックして、失敗のステータスを [完了] に更新します。
[次へ] をクリックします。
概要を確認して [インストール] をクリックします。
インストール プロンプトが表示され、両方のノードでルート スクリプトを実行するように求められます。まず、1 番目のノードでスクリプトを実行し、次に 2 番目のノードでスクリプトを実行します。
/apps/grid/oraInventory/orainstRoot.sh /apps/grid/19.3.0/gridhome_11/grid/root.sh
[終了] ウィンドウが表示されたら、[閉じる] をクリックします。
インストール後の手順を実施する
Oracle Grid Infrastructure のインストールが完了したら、次の手順を行います。
Oracle データベース ソフトウェアをインストールして構成します。
RAC インストールの場合は、[ソフトウェアのみ] インストール オプションを選択します。
Oracle データベース ソフトウェアのインストール手順については、ブログ: RAC データベース用の Oracle 19c バイナリのインストールと構成の手順をご覧ください。
Oracle ASM ディスク グループを作成します。
/etc/oratab
ファイルに Oracle ASM インスタンスのエントリを作成します。vi /etc/oratab +ASM1:/apps/grid/19.3.0/gridhome_1:N
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
追加するディスクの
HEADER_STATUS
がPROVISIONED
であることを確認します。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
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
もう一方のノードで、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
Oracle Database Configuration Assistant(DBCA)を使用して RAC データベースを作成します。
[データベース タイプ] に [Real Application Cluster データベース] が選択されていることを確認します。
手順については、Oracle のドキュメントをご覧ください。
RAC データベースのインストールが完了し、使用できるようになりました。