計算サーバーの再イメージ化
計算サーバーが復旧不可能なダメージを負った場合は、そのサーバーを交換して、交換したサーバーを再イメージ化します。再イメージ化手順の実行中に、クラスタ内の他の計算サーバーは使用できます。クラスタに新しいサーバーを追加する際、作業中の計算サーバーから新しいサーバーにソフトウェアをコピーします。
次のタスクは計算サーバーの再イメージ化の方法を示しています:
Oracleサポート・サービスへの連絡
Oracleサポート・サービスでサポート・リクエストを開きます。サポート・エンジニアが障害が発生したサーバーを確認し、交換サーバーを送ります。サポート・エンジニアは、作業中の計算サーバーから実行したimagehistory
コマンドの出力結果も要求します。出力結果により、元の計算サーバーのイメージ化に使用され、システムのリストアに使用されるcomputeImageMaker
ファイルへのリンクが提供されます。
クラスタの障害が発生した計算サーバーの削除
障害が発生した計算サーバーは、Oracle Real Application Clusters (Oracle RAC)から削除する必要があります。
このステップで、working_serverはクラスタ内の動作している計算サーバー、failed_serverは交換される計算サーバー、replacement_serverは新規サーバーです。
障害が発生した計算サーバーをOracle RACクラスタから削除するには、次のようにします。
-
oracleユーザーとして、
working_server
にログインします。 -
障害が発生したサーバーで実行されているリスナーを無効化します。
$ srvctl disable listener -n failed_server $ srvctl stop listener -n failed_server
-
インベントリからOracleホーム・ディレクトリを削除します。
$ cd $ORACLE_HOME/oui/bin $ ./runInstaller -updateNodeList ORACLE_HOME= \ /u01/app/oracle/product/12.1.0/dbhome_1 "CLUSTER_NODES=list_of_working_servers"
前述のコマンドのlist_of_working_serversは、
ra01db02
やra01db03
などのクラスタで動作している計算サーバーのリストです。 -
障害が発生したサーバーがクラスタから削除された(つまり、ピン解除された)ことを確認します。
$ olsnodes -s -t ra01db01 Inactive Unpinned ra01db02 Active Unpinned
-
障害が発生した計算サーバーの仮想IP (VIP)リソースを停止して削除します。
# srvctl stop vip -i failed_server-vip PRCC-1016 : failed_server-vip.example.com was already stopped # srvctl remove vip -i failed_server-vip Please confirm that you intend to remove the VIPs failed_server-vip (y/[n]) y
-
クラスタから計算サーバーを削除します。
# crsctl delete node -n failed_server CRS-4661: Node failed_server successfully deleted.
次のようなエラー・メッセージを受領したら、投票ディスクを移動します。
CRS-4662: Error while trying to delete node ra01db01. CRS-4000: Command Delete failed, or completed with errors.
投票ディスクを移動するには、次のようにします。
-
投票ディスクの現在の場所を特定します。出力例では現在の場所がDBFS_DGであると示されています。
# crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- ---------- 1. ONLINE 123456789abab (o/192.168.73.102/DATA_CD_00_ra01cel07) [DBFS_DG] 2. ONLINE 123456789cdcd (o/192.168.73.103/DATA_CD_00_ra01cel08) [DBFS_DG] 3. ONLINE 123456789efef (o/192.168.73.100/DATA_CD_00_ra01cel05) [DBFS_DG] Located 3 voting disk(s).
-
投票ディスクを別のディスク・グループに移動します。
# ./crsctl replace votedisk +DATA Successful addition of voting disk 2345667aabbdd. ... CRS-4266: Voting file(s) successfully replaced
-
投票ディスクを元の場所に戻します。この例ではDBFS_DGに戻されています。
# ./crsctl replace votedisk +DBFS_DG
-
crsctl
コマンドを繰り返してクラスタからサーバーを削除します。
-
-
Oracleインベントリを更新します。
$ cd $ORACLE_HOME/oui/bin $ ./runInstaller -updateNodeList ORACLE_HOME=/u01/app/12.1.0/grid \ "CLUSTER_NODES=list_of_working_servers" CRS=TRUE
-
サーバーが正常に削除されたことを確認します。
$ cluvfy stage -post nodedel -n failed_server -verbose Performing post-checks for node removal Checking CRS integrity... The Oracle clusterware is healthy on node "ra01db02" CRS integrity check passed Result: Node removal check passed Post-check for node removal was successful.
関連項目:
計算サーバーのクラスタからの削除の詳細は、Oracle Real Application Clusters管理およびデプロイメント・ガイドを参照してください
イメージ化に使用するUSBフラッシュ・ドライブの準備
USBフラッシュ・ドライブを使用して、イメージを新しい計算サーバーにコピーします。
使用するUSBフラッシュ・ドライブを準備するには、次のようにします。
新規計算サーバーへのイメージのコピー
次の手順を実行する前に、障害のあった計算サーバーを新しいサーバーに交換します。「ストレージ・サーバーの追加によるリカバリ・アプライアンス・ラックの拡張」を参照してください。
イメージを交換サーバー上にロードするには、次のようにします。
-
交換サーバーのUSBポートにUSBフラッシュ・ドライブを挿入します。
-
サービス・プロセッサを使用してコンソールにログインし、進捗状況をモニターします。
-
電源ボタンを押すか、Oracle ILOMを使用することで、計算サーバーの電源を投入します。
-
マザーボードを交換した場合:
-
BIOS中に[F2]を押します
-
「BIOS Setup」を選択します
-
USBフラッシュ・ドライブを最初に設定してから、RAIDコントローラを設定します。
そうでない場合は、BIOS中に[F8]を押して、ワンタイム起動選択メニューを選択してからUSBフラッシュ・ドライブを選択します。
-
-
システムを起動できるようにします。
システムが起動すると、CELLUSBINSTALLメディアが検出されます。イメージ化プロセスには、2つのフェーズがあります。両方のフェーズを完了してから次のステップに進んでください。
イメージ化プロセスの1つ目のフェーズでは、古いBIOSまたはファームウェアを識別し、イメージに対応するレベルにコンポーネントをアップグレードします。コンポーネントがアップグレードまたはダウングレードされると、システムは自動的に再起動します。
イメージ化プロセスの2つ目のフェーズでは、交換計算サーバーの工場出荷時のイメージをインストールします。
-
システムで要求された場合、USBフラッシュ・ドライブを取り外します。
-
[Enter]を押してサーバーの電源を切断します。
交換計算サーバーの構成
交換計算サーバーには、ホスト名、IPアドレス、DNSまたはNTP設定がありません。このタスクは、交換計算サーバーの構成方法を示しています。
情報はリカバリ・アプライアンス内のすべての計算サーバーで同じである必要があります。IPアドレスはDNSから取得できます。初期インストールからインストレーション・テンプレートのコピーも取得する必要があります。
交換計算サーバーを構成するには、次のようにします。
ノート:
-
計算サーバーがすべてのネットワーク・インタフェースを使用していない場合は、構成プロセスが停止し、いずれかのネットワーク・インタフェースが切断されているという警告が出されます。検出プロセスを再試行するかどうかの確認を求められます。環境に応じて、
yes
またはno
と入力します。 -
収集ネットワークにボンディングが使用される場合、この時点でデフォルトのアクティブ/パッシブ・モードに設定されます。
クラスタの交換計算サーバーの準備
リカバリ・アプライアンスの初期インストールでは各種ファイルが変更されました。
交換計算サーバー上のファイルを変更するには、次のようにします。
-
クラスタ内の動作している計算サーバーから、次のファイルの内容をレプリケートします。
-
/etc/security/limits.conf
ファイルをコピーします。 -
/etc/hosts
ファイルの内容をマージします。 -
/etc/oracle/cell/network-config/cellinit.ora
ファイルをコピーします。 -
交換計算サーバーのBONDIB0インタフェースのIPアドレスでIPアドレスを更新します。
-
/etc/oracle/cell/network-config/cellip.ora
ファイルをコピーします。 -
10GbEなど、追加ネットワーク要件を構成します。
-
/etc/modprobe.conf
ファイルをコピーします。 -
/etc/sysctl.conf
ファイルをコピーします。 -
計算サーバーを再起動し、ネットワーク変更を有効にします。
-
-
ユーザー名を1つ以上のグループに追加して、交換計算サーバーのOracleソフトウェア所有者を設定します。所有者は通常、
oracle
ユーザーです。-
動作している計算サーバーから現在のグループ情報を取得します。
# id oracle uid=1000(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba),1003(oper),1004(asmdba)
-
groupadd
コマンドを使用して、グループ情報を交換計算サーバーに追加します。この例では、前のステップで識別されたグループが追加されます。# groupadd –g 1001 oinstall # groupadd –g 1002 dba # groupadd –g 1003 oper # groupadd –g 1004 asmdba
-
動作している計算サーバーから現在のユーザー情報を取得します。
# id oracle uid=1000(oracle) gid=1001(oinstall) \ groups=1001(oinstall),1002(dba),1003(oper),1004(asmdba)
-
ユーザー情報を交換計算サーバーに追加します。この例では、前のステップのグループIDが
oracle
ユーザーIDに追加されます。# useradd -u 1000 -g 1001 -G 1001,1002,1003,1004 -m -d /home/oracle -s \ /bin/bash oracle
-
ORACLE_BASE
およびGrid Infrastructureディレクトリを作成します。この例では、/u01/app/oracle
および/u01/app/12.1.0/grid
が作成されます。# mkdir -p /u01/app/oracle # mkdir -p /u01/app/12.1.0/grid # chown -R oracle:oinstall /u01/app
-
cellip.ora
およびcellinit.ora
ファイルの所有権を変更します。所有者は通常、oracle:dba
です。# chown -R oracle:dba /etc/oracle/cell/network-config
-
リストアされた計算サーバーの安全を確保します。
$ chmod u+x /opt/oracle.SupportTools/harden_passwords_reset_root_ssh $ /opt/oracle.SupportTools/harden_passwords_reset_root_ssh
計算サーバーが再起動します。
-
root
ユーザーとしてログインします。新しいパスワードを要求されたら、他の計算サーバーのroot
パスワードと一致するように設定します。 -
Oracleソフトウェア所有者のパスワードを設定します。所有者は通常、
oracle
です。# passwd oracle
-
-
oracle
アカウントにSSHを設定します。-
交換計算サーバー上の
oracle
アカウントに変更します。# su - oracle
-
Oracleクラスタのサーバーをリストする交換計算サーバーの
dcli
グループ・ファイルを作成します。 -
交換計算サーバーで
setssh-Linux.sh
スクリプトを実行します。この例ではスクリプトがインタラクティブに実行されます。$ /opt/oracle.SupportTools/onecommand/setssh-Linux.sh -s
スクリプトによってサーバーの
oracle
パスワードが要求されます。-s
オプションにより、スクリプトはサイレント・モードで実行されます。 -
交換計算サーバー上の
oracle
ユーザーに変更します。# su - oracle
-
SSHの同等性を検証します:
$ dcli -g dbs_group -l oracle date
-
-
動作している計算サーバーから交換計算サーバーにカスタム・ログイン・スクリプトを設定またはコピーします。
$ scp .bash* oracle@replacement_server:.
前述のコマンドのreplacement_serverは、
ra01db01
などの新しいサーバーの名前です。
交換計算サーバーへのパッチ・バンドルの適用
オラクル社では、リカバリ・アプライアンス用のソフトウェアのパッチ・バンドルを定期的にリリースしています。動作している計算サーバーにcomputeImageMaker
ファイルのリリースよりも新しいパッチ・バンドルがある場合、パッチ・バンドルを交換計算サーバーに適用する必要があります。
パッチ・バンドルが適用されたかどうか判断するには、imagehistory
コマンドを使用します。交換計算サーバーの情報を、動作している計算サーバーの情報と比較します。動作しているデータベースのリリースが新しい場合、ストレージ・サーバー・パッチ・バンドルを交換計算サーバーに適用します。
Oracle Grid Infrastructureのクローニング
次の手順では、交換計算サーバーにOracle Grid Infrastructureをクローニングする方法について説明します。コマンドのworking_serverは動作している計算サーバー、replacement_serverは交換計算サーバーです。
Oracle Grid Infrastructureをクローニングするには、次のようにします。
-
root
として、クラスタの動作している計算サーバーにログインします。 -
クラスタ検証ユーティリティ(
cluvfy
)を使用して、ハードウェアおよびオペレーティング・システムのインストールを検証します。$ cluvfy stage -post hwos -n replacement_server,working_server –verbose
レポートの最後に
Post-check for hardware and operating system setup was successful
のフレーズが表示されます。 -
ピア互換性を検証します:
$ cluvfy comp peer -refnode working_server -n replacement_server \ -orainv oinstall -osdba dba | grep -B 3 -A 2 mismatched
次に、出力の例を示します。
Compatibility check: Available memory [reference node: ra01db02] Node Name Status Ref. node status Comment ------------ ----------------------- ----------------------- ---------- ra01db01 31.02GB (3.2527572E7KB) 29.26GB (3.0681252E7KB) mismatched Available memory check failed Compatibility check: Free disk space for "/tmp" [reference node: ra01db02] Node Name Status Ref. node status Comment ------------ ----------------------- ---------------------- ---------- ra01db01 55.52GB (5.8217472E7KB) 51.82GB (5.4340608E7KB) mismatched Free disk space check failed
障害が発生したコンポーネントだけが物理メモリー、スワップ領域およびディスク領域に関連している場合は、手順を継続できます。
-
サーバーを追加するために必要な確認を行います。
-
GRID_HOME
/network/admin/samples
ディレクトリの権限が750に設定されていることを確認します。 -
計算サーバーの追加を検証します。
$ cluvfy stage -ignorePrereq -pre nodeadd -n replacement_server \ -fixup -fixupdir /home/oracle/fixup.d
障害が発生したコンポーネントだけがスワップ領域に関連している場合は、手順を継続できます。
次のように、投票ディスクにエラーが発生する場合があります。
ERROR: PRVF-5449 : Check of Voting Disk location "o/192.168.73.102/ \ DATA_CD_00_ra01cel07(o/192.168.73.102/DATA_CD_00_ra01cel07)" \ failed on the following nodes: Check failed on nodes: ra01db01 ra01db01:No such file or directory ... PRVF-5431 : Oracle Cluster Voting Disk configuration check failed
このエラーが発生する場合は、次のステップで
addnode
スクリプトの実行時に-ignorePrereq
オプションを使用します。
-
-
交換計算サーバーをクラスタに追加します。
$ cd /u01/app/12.1.0/grid/addnode/ $ ./addnode.sh -silent "CLUSTER_NEW_NODES={replacement_server}" \ "CLUSTER_NEW_VIRTUAL_HOSTNAMES={replacement_server-vip}"[-ignorePrereq]
addnode
スクリプトでは、Oracle Universal InstallerによってOracle Clusterwareソフトウェアが交換計算サーバーにコピーされます。次のようなメッセージが表示されます。WARNING: A new inventory has been created on one or more nodes in this session. However, it has not yet been registered as the central inventory of this system. To register the new inventory please run the script at '/u01/app/oraInventory/orainstRoot.sh' with root privileges on nodes 'ra01db01'. If you do not register the inventory, you may not be able to update or patch the products you installed. The following configuration scripts need to be executed as the "root" user in each cluster node: /u01/app/oraInventory/orainstRoot.sh #On nodes ra01db01 /u01/app/12.1.0/grid/root.sh #On nodes ra01db01
-
構成スクリプトを実行します。
-
端末のウィンドウを開きます。
-
root
ユーザーとしてログインします。 -
各クラスタ・サーバーでスクリプトを実行します。
スクリプトの実行後、次のメッセージが表示されます。
The Cluster Node Addition of /u01/app/12.1.0/grid was successful. Please check '/tmp/silentInstall.log' for more details.
-
-
orainstRoot.sh
およびroot.sh
スクリプトを実行します。# /u01/app/oraInventory/orainstRoot.sh Creating the Oracle inventory pointer file (/etc/oraInst.loc) Changing permissions of /u01/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /u01/app/oraInventory to oinstall. The execution of the script is complete. # /u01/app/12.1.0/grid/root.sh
/u01/app/12.1.0/grid/install/
のログ・ファイルで、root.sh
スクリプトの出力結果を確認します。出力ファイルで、交換した計算サーバーのリスナー・リソースの起動が失敗したことが報告されます。これは予測される出力の例です。/u01/app/12.1.0/grid/bin/srvctl start listener -n ra01db01 \ ...Failed /u01/app/12.1.0/grid/perl/bin/perl \ -I/u01/app/12.1.0/grid/perl/lib \ -I/u01/app/12.1.0/grid/crs/install \ /u01/app/12.1.0/grid/crs/install/rootcrs.pl execution failed
-
「クラスタの障害が発生した計算サーバーの削除」で停止したリスナー・リソースを再有効化します。
# GRID_HOME/grid/bin/srvctl enable listener -l LISTENER \ -n replacement_server # GRID_HOME/grid/bin/srvctl start listener -l LISTENER \ -n replacement_server
関連項目:
クローニングの詳細は、Oracle Real Application Clusters管理およびデプロイメント・ガイドを参照してください。