A DockerでのOracle Grid InfrastructureおよびOracle RACのインストールの例
Dockerをプロビジョニングしたら、この例を使用してOracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)のインストール方法を確認します
- クライアント・マシン構成
DockerコンテナへのOracle Real Application Clusters (Oracle RAC)のリモート・ベースのグラフィック・ユーザー・インタフェース(GUI)インストールに使用されるクライアント・マシンでは、この構成を使用しました。 - Oracle Grid InfrastructureおよびOracle RACのインストール
DockerコンテナでOracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)を設定するには、次のステップを実行します。 - Oracle Grid Infrastructureインストーラの実行
Oracle Grid InfrastructureをDockerにインストールするには、次の手順を実行します。 - Oracle RACデータベース・インストーラの実行
Oracle Real Application Clusters (Oracle RAC)をインストールするには、Oracle RACインストーラを実行します。 - DBCAを使用したOracle RACデータベースの作成
コンテナでOracle Real Application Clusters (Oracle RAC)データベースを作成するには、Database Configuration Assistant (DBCA)を使用して次のステップを実行します。
クライアント・マシン構成
DockerコンテナへのOracle Real Application Clusters (Oracle RAC)のリモート・ベースのグラフィック・ユーザー・インタフェース(GUI)インストールに使用されるクライアント・マシンでは、この構成を使用しました。
- クライアント:
user-client-1 - CPUコア: 1ソケット1コア、各コアに2つのスレッド。Intel®Xeon® Platinum 8167 M CPU (2.00 GHz)
- メモリー
- RAM: 8 GB
- スワップ・メモリー: 8 GB
- ネットワーク・カードおよびIP:
ens3、10.0.20.57/24 - Linuxオペレーティング・システム: Unbreakable Enterprise Kernel 5: 4.14.35-2047.501.2el7uek.x86_64を使用するOracle Linux 7.9 (Linux-x86-64)
- パッケージ:
- X Window System
- Gnome
Oracle Grid InfrastructureおよびOracle RACのインストール
DockerコンテナでOracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)を設定するには、次のステップを実行します。
- Oracle Grid Infrastructureインストール用のDockerコンテナの設定
Oracle Real Application Clusters (Oracle RAC)を準備するには、Dockerコンテナで次のステップを実行します。 - インストールのためのリモート・ディスプレイの構成
Oracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)のリモート・ディスプレイをインストールに使用するには、次の構成ステップを実行する必要があります。
Oracle Grid Infrastructureインストール用のDockerコンテナの設定
Oracle Real Application Clusters (Oracle RAC)を準備するには、Dockerコンテナで次のステップを実行します。
- パスの作成と権限の変更
クラスタの必要に応じてディレクトリ・パスを作成して権限を変更するには、この一連のコマンドをDockerホストで実行します。 - クラスタ用のSSHの構成
インストールを開始する前に、Oracle Real Application Clusters (Oracle RAC)ソフトウェア所有者(oracle)とOracle Grid Infrastructureソフトウェア所有者(grid)の両方のためにSSHを構成する必要があります。
パスの作成と権限の変更
クラスタの必要に応じてディレクトリ・パスを作成して権限を変更するには、この一連のコマンドをDockerホストで実行します。
rootとして、次のコマンドをracnode1に対して実行します。
# docker exec racnode1 /bin/bash -c "mkdir -p /u01/app/oraInventory"
# docker exec racnode1 /bin/bash -c "mkdir -p /u01/app/grid"
# docker exec racnode1 /bin/bash -c "mkdir -p /u01/app/19c/grid"
# docker exec racnode1 /bin/bash -c "chown -R grid:oinstall /u01/app/grid"
# docker exec racnode1 /bin/bash -c "chown -R grid:oinstall /u01/app/19c/grid"
# docker exec racnode1 /bin/bash -c "chown -R grid:oinstall /u01/app/oraInventory"
# docker exec racnode1 /bin/bash -c "mkdir -p /u01/app/oracle"
# docker exec racnode1 /bin/bash -c "mkdir -p /u01/app/oracle/product/19c/dbhome_1"
# docker exec racnode1 /bin/bash -c "chown -R oracle:oinstall /u01/app/oracle"
# docker exec racnode1 /bin/bash -c "chown -R oracle:oinstall /u01/app/oracle/product/19c/dbhome_1"
racnode2に対してコマンドを繰り返します。# docker exec racnode2 /bin/bash -c "mkdir -p /u01/app/oraInventory"
# docker exec racnode2 /bin/bash -c "mkdir -p /u01/app/grid"
# docker exec racnode2 /bin/bash -c "mkdir -p /u01/app/19c/grid"
# docker exec racnode2 /bin/bash -c "chown -R grid:oinstall /u01/app/grid"
# docker exec racnode2 /bin/bash -c "chown -R grid:oinstall /u01/app/19c/grid"
# docker exec racnode2 /bin/bash -c "chown -R grid:oinstall /u01/app/oraInventory"
# docker exec racnode2 /bin/bash -c "mkdir -p /u01/app/oracle"
# docker exec racnode2 /bin/bash -c "mkdir -p /u01/app/oracle/product/19c/dbhome_1"
# docker exec racnode2 /bin/bash -c "chown -R oracle:oinstall /u01/app/oracle"
# docker exec racnode2 /bin/bash -c "chown -R oracle:oinstall /u01/app/oracle/product/19c/dbhome_1"クラスタ用のSSHの構成
インストールを開始する前に、Oracle Real Application Clusters (Oracle RAC)ソフトウェア所有者(oracle)とOracle Grid Infrastructureソフトウェア所有者(grid)の両方のためにSSHを構成する必要があります。
gridとoracle用に個別に構成します。
DockerホストからOracle RACコンテナにログインし、gridユーザーとoracleユーザーのパスワードをリセットします。
# docker exec -i -t racnode1 /bin/bash
# passwd grid
# passwd oracle
# docker exec -i -t racnode2 /bin/bash
# passwd grid
# passwd oracle
クラスタ・ノードでのSSHの構成の詳細は、Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Linuxを参照して、コンテナ内でgridユーザーとoracleユーザーに対してユーザー等価を設定する方法を確認してください。
インストールのためのリモート・ディスプレイの構成
Oracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)のリモート・ディスプレイをインストールに使用するには、次の構成ステップを実行する必要があります。
Dockerブリッジを使用している場合は、IPアドレスを使用してDockerホストからOracle RACコンテナに到達できます。ただし、MACVLAN Dockerネットワーク・ブリッジを使用している場合は、同じサブネットを使用している他のクライアント・マシンを使用して、コンテナに接続できます。
- sshd_configの変更
DockerでOracle Real Application Clusters (Oracle RAC)のインストールを実行するには、X11転送が有効になるように構成ファイルsshd_configを変更する必要があります。 - Enable Remote Display
クライアントでインストール・ウィンドウを表示できるようにするには、Docker環境でOracle Real Application Clusters (Oracle RAC)のリモート・ディスプレイ制御を有効にする必要があります。
sshd_configの変更
DockerでOracle Real Application Clusters (Oracle RAC)のインストールを実行するには、X11転送が有効になるように構成ファイルsshd_configを変更する必要があります。
racnode1でのみ次を実行します。
sshd構成ファイル/etc/ssh/sshd_configをVIMエディタを使用して開き、次のパラメータを設定します。
X11Forwarding yes
X11UseLocalhost no
X11DisplayOffset 10
これらの変更を含むsshd_configファイルを保存します。
sshdを再起動します。
# systemctl daemon-reload
# systemctl restart sshd
racnode2でこれらのステップを繰り返す必要はありません。
親トピック: インストールのためのリモート・ディスプレイの構成
リモート・ディスプレイの有効化
クライアントでインストール・ウィンドウを表示できるようにするには、Docker環境でOracle Real Application Clusters (Oracle RAC)のリモート・ディスプレイ制御を有効にする必要があります。
-
クライアント・マシンから、
xhostを起動します(ここではuser-client-1)。# hostname # xhost + 10.0.20.150ノート:
10.0.20.150は、1つ目のOracle RACコンテナ(racnode1)のIPアドレスです。このIPアドレスは、クライアント・マシンから到達可能です。 -
クライアントからSSHを使用して、
gridユーザーとしてOracle RACコンテナ(racnode1)にログインします。# ssh -X grid@10.0.20.150 -
パスワードの入力を求められたら、
gridユーザーのパスワードを指定し、racnode1コンテナ内のディスプレイをクライアントにエクスポートします(display_computerはクライアント・システム、portはディスプレイ用のポートです)。$ export DISPLAY=display_computer:portノート:
クライアントのプライベートIPアドレスは、DISPLAYのエクスポート・ターゲットとしてのみ使用できます。
親トピック: インストールのためのリモート・ディスプレイの構成
Oracle Grid Infrastructureインストーラの実行
Oracle Grid InfrastructureをDockerにインストールするには、次の手順を実行します。
- Oracle Grid Infrastructureファイルの抽出
gridユーザーとしてDockerコンテナへのクライアント接続から、Oracle Grid Infrastructureイメージ・ファイルをOracle RACコンテナの1つのGridホームに抽出します。 - Oracle Grid Infrastructureインストーラの起動
この手順を使用して、Oracle Grid Infrastructureインストーラを起動し、構成に関する情報を指定します。
Oracle Grid Infrastructureファイルの抽出
gridユーザーとしてDockerコンテナへのクライアント接続から、Oracle Grid Infrastructureイメージ・ファイルをOracle RACコンテナの1つのGridホームに抽出します。
また、2021年10月以降の最新リリース更新(RU)をダウンロードして抽出します。例: Grid Infrastructureリリース更新19.16 (パッチ34130714)。
たとえば:
- Gridユーザーが、Oracle RACノード1コンテナのソフトウェア・ステージ・ホーム(この例では
/software/stage)で読取り/書込み/実行権限を持っていることを確認します。 -
Oracle Grid InfrastructureおよびOracle Databaseリリース19c (19.3)に必要なファイルの他、パッチ・ファイルをダウンロードしてステージングしていることを確認します。Oracle RACノード1コンテナ内のパス
/software/stage下にステージングされたOracle Grid InfrastructureおよびOracle Real Application Clusters (Oracle RAC)ソフトウェアを確認できる必要があります。$ ls -l /software/stage/*.zip -rw-r--r--. 1 root 1001 3059705302 Feb 3 09:29 /software/stage/LINUX.X64_193000_db_home.zip -rw-r--r--. 1 root 1001 2889184573 Feb 3 09:30 /software/stage/LINUX.X64_193000_grid_home.zip -rw-r--r--. 1 root root 1006462657 Jul 29 20:36 /software/stage/p32869666_1916000ACFSRU_Linux-x86-64.zip -rw-r--r--. 1 root root 2814622872 Jul 28 09:13 /software/stage/p34130714_190000_Linux-x86-64.zip -rw-r--r--. 1 root root 275787541 Jul 28 19:52 /software/stage/p34339952_1916000OCWRU_Linux-x86-64.zip -rw-r--r--. 1 root 1001 124109254 Jun 3 01:46 /software/stage/p6880880_190000_Linux-x86-64.zip -
gridユーザーとして、目的の場所でファイルを解凍します。たとえば:
$ cd /u01/app/19c/grid $ unzip -q /software/stage/LINUX.X64_193000_grid_home.zip $ cd /software/stage $ unzip -q p34130714_190000_Linux-x86-64.zip $ unzip -q p34339952_1916000OCWRU_Linux-x86-64.zip $ unzip -q p32869666_1916000ACFSRU_Linux-x86-64.zip -
gridユーザーとして、Oracle Grid Infrastructureホームで新しいOPatchバージョンを解凍して、既存のバージョンを置き換えます。たとえば、
OPATCH-patch-zip-fileはOPatch zipファイルです。$ cd /u01/app/19c/grid $ mv OPatch OPatch_19.3 $ unzip -q /software/stage/OPATCH-patch-zip-fileたとえば、製品Oracle Global Lifecycle Management OPatchユーティリティのOPatch 12.2.0.1.32 for DB 19.0.0.0.0 (Jul 2022)の場合、次のようにします。
$ cd /u01/app/19c/grid $ mv OPatch OPatch_19.3 $ unzip -q /software/stage/p6880880_190000_Linux-x86-64.zip
OPatch zipファイルを解凍したら、OPatch_19.3ディレクトリを削除できます。
Oracle Grid Infrastructureインストーラの起動
この手順を使用して、Oracle Grid Infrastructureインストーラを起動し、構成に関する情報を指定します。
ノート:
パッチ・ノート『Oracle Database Patch 34130714 - GI Release Update 19.16.0.0.220719』の指示には、opatchautoを使用してパッチをインストールするよう記載されています。ただし、このパッチは、Oracle Grid Infrastructureインストーラで-applyRU引数を使用して適用する必要があります
-
racnode1のGridユーザーとしてDockerコンテナへのクライアント接続から、次のコマンドを使用してインストーラを起動します。/u01/app/19c/grid/gridSetup.sh -applyRU /software/stage/34130714 \ -applyOneOffs /software/stage/34339952,/software/stage/32869666 -
新しいクラスタ用のグリッド・インフラストラクチャの構成オプションを選択して、「次へ」をクリックします。
「クラスタ構成の選択」ウィンドウが表示されます。
- 「Oracleスタンドアロン・クラスタの構成」オプションを選択し、「次へ」をクリックします。
-
「クラスタ名」フィールドと「SCAN名」フィールドに、エンタープライズ・ネットワーク全体で一意のクラスタの名前およびクラスタの単一クライアント・アクセス名(SCAN)の名前を入力します。この例では、次の名前を使用しました。
- クラスタ名:
raccluster01 - SCAN名:
racnode-scan - SCANポート:
1521
- クラスタ名:
-
GNSの仮想IPアドレス名の解決に送信するようにドメイン・ネーム・サーバー(DNS)を構成している場合、「サブドメインGNSサーバー用のGNSリクエストの構成」を選択できます。「次へ」をクリックします。
-
クラスタ・ノードの表の「パブリック・ホスト名」列で、次の値が設定されていることを確認します。
- パブリック・ホスト名:
racnode1.example.inforacnode2.example.info
- 仮想ホスト名:
racnode1-vip.example.inforacnode2-vip.example.info
- パブリック・ホスト名:
-
「SSH接続」をクリックし、
racnode1とracnode2の間にSSHを設定します。SSHが構成されている場合は、「次へ」をクリックします。
- 「ネットワーク・インタフェースの使用方法」ウィンドウで、次を選択します。
- パブリック・ネットワークの場合、
eth0 10.0.20.0 - 1つ目のOracle ASMおよびプライベート・ネットワークの場合、
eth1 192.168.17.0 - 2つ目のOracle ASMおよびプライベート・ネットワークの場合、
eth2 192.168.18.0
これらの選択が完了したら、「次へ」をクリックします。
- パブリック・ネットワークの場合、
- 「記憶域オプション」ウィンドウで、「Oracle Flex ASMを記憶域として使用」を選択し、「次へ」をクリックします。
- 「GIMRオプション」ウィンドウで、デフォルトの選択のままにして(「いいえ」)、「次」をクリックします。
- 「ASMディスク・グループの作成」ウィンドウで、「検出パスの変更」をクリックし、「ディスク検出パス」の値を
/dev/asm*に設定し、「OK」をクリックします。次の値を入力します。- ディスク・グループ名:
DATA - 冗長性:
外部 - デフォルトの「割当て単位サイズ」を選択します。
- 「ディスク」を選択し、次の値を指定します。
/dev/asm-disk1/dev/asm-disk2
これらの値を入力したら、次をクリックします。「次へ」
- ディスク・グループ名:
- 「ASMパスワード」ウィンドウで、
SYSユーザーおよびASMSNMPユーザーのパスワードを指定し、「次へ」をクリックします。 - 「障害の分離」ウィンドウでデフォルトを選択し、「次へ」をクリックします。
- 「管理オプション」ウィンドウでデフォルトを選択し、「次へ」をクリックします。
- 「オペレーティング・システム・グループ」ウィンドウでデフォルトを選択し、「次へ」をクリックします。
- 「インストール場所」ウィンドウの「Oracleベース」で、パス
/u01/app/gridを入力し、「次へ」をクリックします。 - Oracle Inventoryウィンドウの「インベントリ・ディレクトリ」で、
/u01/app/oraInventoryと入力し、「次へ」をクリックします。 - 「rootスクリプトの実行構成」ウィンドウで、「構成スクリプトを自動的に実行」の選択を解除したまま、「次」をクリックします。
-
「前提条件のチェック」ウィンドウの「検証の結果」に、
Systemdステータス警告が表示される場合があります。この警告は無視して、続行してかまいません。予期しない警告が表示された場合は、My Oracle Support ID 2488326.1の既知の問題を参照してください。
- 「前提条件のチェック」ウィンドウで、
cvuqdisk-1.0.10-1がないことを示す警告が表示され、失敗メッセージ「"ASMのデバイス・チェック"に失敗しました」が表示される可能性があります。この警告が表示された場合は、両方のコンテナにパッケージcvuqdisk-1.0.10-1をインストールする必要があります。この場合は、次のようにします。- 「修正および再チェック」ボタンが無効になっているので、パッケージを手動でインストールする必要があります。次のステップを実行します。
-
端末を開き、
rootとしてracnode1 /bin/bashにログインします。 -
次のコマンドを実行して
cvuqdiskRPMパッケージをインストールします。rpm -ivh /tmp/GridSetupActions*/CVU_*/cvuqdisk-1.0.10-1.rpm -
「再チェック」をクリックします。
-
ステップaおよびbを繰り返して、RPMを
racnode2にインストールします。
これ以上の警告または失敗メッセージは表示されません。インストーラは自動的に次のウィンドウに進みます。
-
- 「修正および再チェック」ボタンが無効になっているので、パッケージを手動でインストールする必要があります。次のステップを実行します。
-
「インストール」をクリックします。
-
プロンプトが表示されたら、
racnode1およびracnode2でorainstRoot.shとroot.shを実行します。 - インストールが完了したら、CRSスタックが稼働していることを確認します。
$ORACLE_HOME/bin/crsctl stat res -t
Oracle RACデータベース・インストーラの実行
Oracle Real Application Clusters (Oracle RAC)をインストールするには、Oracle RACインストーラを実行します。
- Oracle Real Application Clustersファイルの抽出
インストールの準備をするには、Oracleソフトウェア所有者アカウント(oracle)としてracnode1にログインし、ソフトウェアを抽出します。 - Oracle RACインストーラの実行
Oracle Real Application Clusters (Oracle RAC)インストーラの画面ワークフローを進むには、インストーラを実行し、プロンプトに従って質問に答えます。
Oracle Real Application Clustersファイルの抽出
インストールの準備をするには、Oracleソフトウェア所有者アカウント(oracle)としてracnode1にログインし、ソフトウェアを抽出します。
-
クライアントからSSHを使用して、
oracleユーザーとしてOracle RACコンテナ(racnode1)にログインします。# ssh -X oracle@10.0.20.150 -
パスワードの入力を求められたら、
oracleユーザーのパスワードを指定し、racnode1コンテナ内のディスプレイをクライアントにエクスポートします(display_computerはクライアント・システム、portはディスプレイ用のポートです)。$ export DISPLAY=display_computer:port -
次のコマンドを使用して、Oracle Databaseファイルを解凍します。
$ cd /u01/app/oracle/product/19c/dbhome_1 $ unzip -q /software/stage/LINUX.X64_193000_db_home.zip -
Oracleユーザーとして、Oracle Database (Oracleホーム)で新しいOPatchバージョンを解凍して、既存のバージョンを置き換えます。たとえば、
OPATCH-patch-zip-fileはOPatch zipファイルです。$ cd /u01/app/oracle/product/19c/dbhome_1 $ mv OPatch OPatch_19.3 $ unzip -q /software/stage/OPATCH-patch-zip-fileたとえば、製品Oracle Global Lifecycle Management OPatchユーティリティのOPatch 12.2.0.1.32 for DB 19.0.0.0.0 (Jul 2022)の場合、次のようにします。
$ cd /u01/app/oracle/product/19c/dbhome_1 $ mv OPatch OPatch_19.3 $ unzip -q /software/stage/p6880880_190000_Linux-x86-64.zipOPatch zipファイルを解凍したら、
OPatch_19.3ディレクトリを削除できます。
親トピック: Oracle RACデータベース・インストーラの実行
Oracle RACインストーラの実行
Oracle Real Application Clusters (Oracle RAC)インストーラの画面ワークフローを進むには、インストーラを実行し、プロンプトに従って質問に答えます。
親トピック: Oracle RACデータベース・インストーラの実行