3.2.7 Oracleが使用する共有リソースの設定
Oracleのセットアップ・データベースの構築が完了したら,Oracleが使用する共有リソースを設定します。次の項目を設定してください。
(1) LANの状態設定ファイルの設定
クライアント接続用のIPアドレスをHAモニタで切り替えができるように,IPアドレスを使用するサーバごとにLANの状態設定ファイルを作成します。詳細については,マニュアル「HAモニタ Linux(R)編」の「LANの状態設定ファイルの設定」を参照してください。
(2) 共有ディスクの設定(Oracle ASMを使用しない場合)
共有ディスクをHAモニタが制御するための設定をします。詳細については,マニュアル「HAモニタ Linux(R)編」の「共有ディスクの設定」の説明を参照してください。
(3) 共有ディスクの設定(Oracle ASMを使用する場合)
Oracle ASMが管理するディスクを制御するための,HAモニタのユーザコマンドの設定方法について説明します。
HAモニタがOracle ASMが管理するディスクを制御するためには,次のようにユーザコマンドを設定します。
-
OracleインスタンスとOracleリスナーに対応するサーバが実行サーバとして起動する前に,Oracle ASMが管理するディスクを接続する
-
実行サーバが停止したあとに,Oracle ASMが管理するディスクを切り離す
Oracle ASM用ユーザコマンドは,HAモニタ kitのサンプルファイル用ディレクトリの下に,サンプルファイル(usrcommand_asm)が格納されています。「3.2.3 構築に必要な設定項目の対応と設定の概要」に従って,コピーしてください。
Oracle ASM用ユーザコマンドの発行タイミング,処理内容,および環境設定について次に示します。
- 発行タイミング
-
発行タイミングについては,マニュアル「HAモニタ Linux(R)編」の「ユーザコマンドの作成方法」もあわせて参照してください。
- Oracle ASMが管理するディスクを接続するタイミング
-
次に示すユーザコマンドの発行タイミングで,Oracle ASMが管理するディスクを接続しています。
-
実行サーバの起動時(-s start)(サーバ種別:online)
-
待機サーバの系切り替え処理開始時
・実行系で系障害が発生(-h start)(サーバ種別:standby)
・実行系から待機系に計画系切り替えを実行(-w start)(サーバ種別:standby)
-
- Oracle ASMが管理するディスクを切り離すタイミング
-
次に示すユーザコマンドの発行タイミングで,Oracle ASMが管理するディスクを切り離しています。
-
実行サーバの終了時
・実行系から待機系に計画系切り替えを実行(-w start)(サーバ種別:online)
・実行サーバでサーバ障害が発生(系切り替え不可)(-o start)(サーバ種別:online)
・実行サーバが正常終了(-e start)(サーバ種別:online)
・待機サーバの系切り替え失敗時(-f start)(サーバ種別:standby)
・待機サーバの系切り替え失敗時(-f start)(サーバ種別:standby)
-
- 処理内容
-
Oracle ASMが管理するディスクは,Oracle ASMインスタンスの起動によって接続され,Oracle ASMインスタンスの停止によって切り離されます。また,Oracle ASMインスタンスの起動・停止のためにはOracle Restartを起動する必要があります。
- Oracle ASMが管理するディスクを接続するための処理
-
次の順で処理します。
-
Oracle Restartを起動する。
-
Oracle Restartによる「Oracle ASMインスタンス」の自動起動を有効にする。※1
-
Oracle ASMインスタンスを起動する。
-
Oracle ASMディスクグループの起動完了を待ち合わせる。※2
-
Oracle Restartによる「Oracle ASMインスタンス」の自動起動を無効にする。※1
-
ユーザコマンドの終了コードを0としてexitする。
「環境設定」に記載のOracle ASM用ユーザコマンドでは,asm_start関数が該当の処理を実施します。
-
- Oracle ASMが管理するディスクを切り離すための処理
-
次の順で処理します。
-
Oracle ASMインスタンスを正常停止する。※3
-
Oracle ASMインスタンスが正常停止しない場合は,強制停止する。※2
-
Oracle Restartを停止する。
-
Oracle ASMインスタンスの停止を確認できれば,ユーザコマンドの終了コードを0としてexitする。停止を確認できなければ,ユーザコマンドの終了コードを0以外としてexitする。
「環境設定」に記載のOracle ASM用ユーザコマンドでは,asm_stop関数が該当の処理を実施します。
-
- 注※1
-
Oracle Restart上では,Oracle ASMインスタンスは,srvctlコマンドで起動します。srvctlコマンドを実行可能とするため,Oracle RestartによるOracle ASMインスタンスの自動起動を一度有効とします。Oracle ASMインスタンス起動後は,自動起動を無効とします。
- 注※2
-
Oracle ASMインスタンスを起動すると,データベース・インスタンスなどが使用するOracle ASMディスクグループは自動的にマウントされます。ただし,Oracle ASMインスタンスの起動完了とディスクグループのマウント完了は非同期です。ユーザコマンドの実行完了後,データベース・インスタンスなどを起動するまでにディスクグループのマウントが完了していることを確実にするため,待ち合わせます。
- 注※3
-
Oracle ASMインスタンスの停止は,SQL*PLUSで実行します。srvctlコマンドでは,ASMディスクグループの使用状況によってコマンドがリターンしないおそれがあるため,SQL*PLUSでの停止を推奨します。
- 環境設定
-
Oracle ASM用ユーザコマンド(usrcommand_asm)を次に示します。
#! /bin/sh #set -x # environment variables PATH=/bin:/usr/bin:/sbin export PATH # The definition of server SERV="orasrv" # ORACLE_HOME and ORACLE_SID of the Grid user ORACLE_HOME=/u01/app/grid/product/12.1.0/grid ORACLE_SID=+ASM # ASM disk group List and check parameter DG_LIST='DATA01 DATA02 DATA03' CHECK_COUNT=300 CHECK_INTER=3 ############################################################################### # functions ############################################################################### :functions部分は,編集しないこと。 ############################################################################### # main ############################################################################### # initialization RTCD=0 # Processing of the server if [ "$2" = "${SERV}" ] then if [ "$4" = "online" ] then case "$5" in "-s" ) asm_start ;; "-e" | "-o" | "-w" ) asm_stop RTCD=$? ;; esac else case "$5" in "-h" | "-w" ) asm_start ;; "-f" ) asm_stop RTCD=$? ;; esac fi fi exit ${RTCD}Oracle ASM用ユーザコマンド内で設定している変数のうち,SERV,ORACLE_HOME,ORACLE_SID,DG_LISTについては環境に合わせて設定してください。
変数の設定内容は次のとおりです。
- SERV
-
Oracleインスタンスを制御するサーバのサーバ識別名を指定してください。なお,OracleASMをリソースサーバで制御する場合は,リソースサーバのサーバ識別名を指定してください。
- ORACLE_HOME
-
gridユーザの環境変数ORACLE_HOMEを指定してください。
- ORACLE_SID
-
gridユーザの環境変数ORACLE_SIDを指定してください。
次の変数は,ASMインスタンス起動時のASMディスクグループ起動完了待ちの処理に使用します。変数の設定内容は次のとおりです。
- DG_LIST
-
ASMインスタンス起動時に,起動完了を待ち合わせるASMディスクグループをスペース区切りで指定します。データベース・インスタンスなどが使用するディスクグループをすべて指定してください。
- CHECK_COUNT
-
DG_LISTに指定したディスクグループの起動完了確認をする回数を指定します。
- CHECK_INTER
-
DG_LISTに指定したディスクグループの起動完了確認をする間隔(秒)を指定します。
ユーザコマンド内に,ユーザ独自の処理を追加する場合は,次の注意事項に従って追加してください。
-
次のシェル変数名を変更しないでください。
SERV
ORACLE_HOME
ORACLE_SID
DG_LIST
CHECK_COUNT
CHECK_INTER
RTCD
-
シェル変数を追加する場合は,コマンド内を検索し,すでに使用されていないことを確認してから追加してください。
-
RTCD変数が,ユーザコマンドの終了コードになります。変数の値に影響を与えないようにしてください。
-
ユーザコマンド内のfunctions部分に記載されている個所は,編集しないでください。