Hitachi

高信頼化システム監視機能 HAモニタ kit for Oracle


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 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が管理するディスクを接続するための処理

次の順で処理します。

  1. Oracle Restartを起動する。

  2. Oracle Restartによる「Oracle ASMインスタンス」の自動起動を有効にする。※1

  3. Oracle ASMインスタンスを起動する。

  4. Oracle ASMディスクグループの起動完了を待ち合わせる。※2

  5. Oracle Restartによる「Oracle ASMインスタンス」の自動起動を無効にする。※1

  6. ユーザコマンドの終了コードを0としてexitする。

「環境設定」に記載のOracle ASM用ユーザコマンドでは,asm_start関数が該当の処理を実施します。

Oracle ASMが管理するディスクを切り離すための処理

次の順で処理します。

  1. Oracle ASMインスタンスを正常停止する。※3

  2. Oracle ASMインスタンスが正常停止しない場合は,強制停止する。※2

  3. Oracle Restartを停止する。

  4. 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部分に記載されている個所は,編集しないでください。