Web-AP-DB連携検証(DBノード障害)
検証概要
APサーバ#2のAGLについてだけですがAP-DB間連携の正常系(SQLリクエストのバランシング)は前回検証したので今回は異常系、つまりDB障害について検証します。
APサーバ#1のマルチ・データ・ソース(MDS)とAPサーバ#2のActive GridLink(AGL)はDB障害(ノード障害)に対する制御が別物です。MDSは汎用データ・ソースを束ねたものなのでDB側に障害が起きたときにどう動くのかある程度イメージできますがAGLはFANイベントによる制御、これがドキュメントを読む限りなんとなく凄そうだけれどもMDSと比較してどれだけすごいのか今イチよくわかりません。
そこで実際にノード障害を発生させて各データ・ソースごとにどのようなシステム影響が生じるか、またこれに対してどのような挙動を示すのかを検証してみたいと思います。
また、WebサーバにはWebLogic Proxy Plug-Inを実装してAPサーバと連携しているのでノード障害によってこの連携に影響があるのかどうか、投稿のタイトルには入っていませんんがクライアントPCへの影響有無についてもついでに確認します。

事前準備
MDS設定変更(APサーバ#1)
APサーバ構築時に作成したMDSには基本的な設定しか入れていないのでノード障害検証に先立ってOracleさんの推奨設定を追加したり、ここはちょっと直した方がいいかな、という箇所をいじっておこうと思います。
ビジー時のフェイルオーバー・リクエスト
まずは「ビジー時のフェイルオーバー・リクエスト」です。「Oracle WebLogic Server JDBCデータ・ソースの管理 14c (14.1.2.0.0)」には以下のように記述されています。
マルチ・データ・ソース内のビジー状態の汎用データ・ソースのフェイルオーバーの有効化
デフォルトでは、フェイルオーバー・アルゴリズムを使用するマルチ・データ・ソースの場合、データベース接続に対するリクエスト数が、マルチ・データ・ソース内の現在の汎用データ・ソースにある利用可能な接続数を超過すると、以降の接続リクエストが失敗します。
現在の汎用データ・ソースのすべての接続が使用されている場合にマルチ・データ・ソースがフェイルオーバーできるようにするには、WebLogicリモート・コンソールで「ビジー時はリクエストをフェイルオーバー」オプションを有効にします。
こちらの環境ではMDSのアルゴリズム・タイプを「ロード・バランシング」にしてます。リクエストは各ノード均等に振り分けられるので各ノードでセッションの使用状況に多少の偏りは生じてもどちらかが枯渇してもう片方はあまりまくっているという状況はなかなか想像がつきません。
なので私はこの設定を入れても効果がないんじゃないかと考えておりましたが、今回の検証に際して念のためちゃっぴいに訊ねたら「実際にそうした状況が発生する可能性は低いだろうが安全策として入れておいた方が良かろう」という回答でした。まあ確かにその通りなのでこの設定をオンにします。

接続作成の再試行間隔
このブログを始める前の話です。MDSをロード・バランシングで構成して各汎用DSのURLにフェイルオーバーを設定したらAGLと似たような動き(ラウンド・ロビンとフェイル・オーバーのコンボ)になるんじゃなかろうかとバカげたことを思いつきいろいろ試したことがあります。
それで得た結論は「接続のフェイル・オーバーにやたら時間が掛り即応性がまったく無し。かえってセッションの管理が煩雑になる。シンプルにダウン・ノードに紐づく汎用DSの無効化で生存ノードにリクエストを片寄せさせた方がマシ」というものです。
ところがですね。このブログでMDSを構成するときに過去、自分がまとめた資料を参考にしたのですがそのときのバカげた設定の一部をうっかり取り込んでしまっておりまして、その項目が「接続作成の再試行間隔」です。
これは名前のまんまDB接続に失敗したらリトライしてくれるという汎用DSの設定ですが、なにしろ当時私はフェイルオーバー最速を目指していたのでここに2秒というとことん攻めた値を入れておりました。しかしこの秒数はこの秒数を実際のシステムにそのまま設定してしまうと非常にマズいことになってしまいます。
どうマズいことになるかというと、ノード障害が起きればそのノード向けの汎用DSは2秒間隔でDBに再接続しようとします。しかしダウンしているノードに繋ぎに行ってら当然エラーが返される。するとその2秒後にまた再接続を試行して……を延々繰り返し、そのたびに標準出力ログにORA-12514による例外(×セッション数)が書き込まれるという非常にカオスな状態に陥ります。
【接続作成の再試行間隔が短すぎるとこれが大量に…】
<2026/02/20 20時28分28,027秒 日本標準時> <Notice> <StdErr> <BEA-000000> <2月 20, 2026 8:28:28 午後 oracle.jdbc.driver.PhysicalConnection connect
情報: throwing
java.sql.SQLRecoverableException: ORA-12514: データベースに接続できません。サー ビスonline_srvは、host prsdb01-con.exsample.lan port 1521のリスナーに登録されて いません。 (CONNECTION_ID=o0KWuv3DQ7iN8exOHRRv3g==)
https://docs.oracle.com/error-help/db/ora-12514/
at oracle.jdbc.driver.T4CConnection.handleLogonNetException(T4CConnection.java:1617)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:1139)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:1206)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:105)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:886)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:693)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection0(ConnectionEnvFactory.java:321)
at weblogic.jdbc.common.internal.ConnectionEnvFactory$1.run(ConnectionEnvFactory.java:219)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:571)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(ConnectionEnvFactory.java:216)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.setConnection(ConnectionEnvFactory.java:143)
at weblogic.jdbc.common.internal.JDBCResourceFactoryImpl.createResource(JDBCResourceFactoryImpl.java:207)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResource(ResourcePoolImpl.java:1573)
at weblogic.jdbc.common.internal.ConnectionPool.makeResource(ConnectionPool.java:763)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1432)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1375)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1331)
at weblogic.common.resourcepool.ResourcePoolImpl.recreateDeadResources(ResourcePoolImpl.java:2502)
at weblogic.common.resourcepool.ResourcePoolImpl$ResourcePoolMaintanenceTask.timerExpired(ResourcePoolImpl.java:3284)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:301)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:721)
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:58)
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:695)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:430)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:370)
Caused by: oracle.net.ns.NetException: ORA-12514: データベースに接続できません。サービスonline_srvは、host prsdb01-con.exsample.lan port 1521のリスナーに登録さ れていません。 (CONNECTION_ID=o0KWuv3DQ7iN8exOHRRv3g==)
https://docs.oracle.com/error-help/db/ora-12514/
…
同一メッセージの大量出力は「ログ・モニタリング・スロットルしきい値」設定である程度まとめるてくれるのですが、この値がデフォルト設定(30秒)だと2秒間隔でドカドカ吐かれるORA-12514にまったく対応してくれません。
ノード障害が起きてもMDSはダウン・ノードへのSQLリクエストの振り分けを停止して生存ノードに全部りするので業務サービスは継続します。しかしその裏では大量の例外が標準出力ログに出力され続け、やがてディスクの空き領域を使い果たして最悪サービス停止ということに…。
実はMDSはもともとダウン・ノード復旧後に接続を再作成してくれる機能を実装してるので汎用DSに「接続作成の再試行間隔」を設定しても何のメリットもありません。それどころかこのようなトラブルの原因となってしまうので「接続作成の再試行間隔」を0(接続再作成無効)に修正します。

初期容量/最大容量/最小容量
上に書いた通りMDSでラウンド・ロビン、汎用DSにフェイル・オーバーの組み合わせならAGLと同じような動きになるんじゃなかろうかとバカげたことを以前は考えていたわけですが、この考えを捨てたのなら当然容量の設定も変わります。ところがこれも直していませんでした。
現在、各ノードのセッション数を100としていますがこれは汎用DSの接続フェイル・オーバーを前提とした本数です。汎用DSで接続フェイル・オーバーをしないのであればどちらのノードにもこの倍のセッション数を積んでおかなければなりませんので各汎用DSの容量(初期/最大/最小)を100から200に修正します。

その他
他にも設定をざっと見て直しておいた方が良さげなところはこの際なのでついでに設定を修正してしまいます。
【MDS設定修正箇所】
| 場所 | 対象 | タブ | 設定項目 | 修正内容 |
| 環境/サーバー | AdminServer prs_ap01 | ロギング/一般 | 保存するファイル数 | 100→10 |
| 環境/サーバー | AdminServer prs_ap01 | ロギング/HTTP | 保存するファイル数 | 100→10 |
| 環境/サーバー | AdminServer prs_ap01 | ロギング/データ・ソース | 保存するファイル数 | 100→10 |
| サービス/データ・ソース | GDS_PDBUSER_11 GDS_PDBUSER_12 | 接続プール/拡張 | 非アクティブ接続タイムアウト | 0→60 |
保存するファイル数はデフォルトの100だと多すぎてログ・ディレクトリがゴチャゴチャしてしまうため数を減らしました。
非アクティブ接続タイムアウトはアプリがコネクションを閉じないまま終了した場合に一定時間経過したらそのコネクションを解放する設定です。本来はアプリがきちんとコネクションを閉じてから終了するべきですが古いJDBCバージョンで作成したアプリにはこれをちゃんとやっていないヤツが混じっていてコネクションの枯渇を引き起こしたりするんで念のため設定しておきます。
AGL設定変更(APサーバ#2)
URL
「Oracle WebLogic Server JDBCデータ・ソースの管理」にはAGLのURLについて以下の推奨事項が記載されています。
【AGLデータソースURLに関する推奨事項(抜粋)】
・すべてのADDRESS_LISTエントリが同じ値を使用するように、DESCRIPTIONレベルで、RETRY_COUNT, RETRY_DELAY, CONNECT_TIMEOUTを入力します。
・RETRY_DELAYは、接続の再試行間の遅延時間(秒)を指定します。この属性はOracle 12.1.0.2リリースの新しい属性です。
・RETRY_COUNT は、接続試行を終了するまでに、ADDRESSリストが横断する回数の指定に使用します。デフォルト値は0です。
・CONNECT_TIMEOUTは、Oracle Net接続の完了に使用する時間全体の指定に使用されます。ログオンの混乱を避けるために、CONNECT_TIMEOUT=90またはそれ以上に設定します。JDBCドライバ12.1.0.2以前では、CONNECT_TIMEOUTは、URLの各アドレスのTCP/IP接続タイムアウトにも使用されていました。TCP/IP接続を考慮する場合、タイムアウト全体の従属的要件ではありますが、短いCONNECT_TIMEOUTの方が適しています。
現在の構成ではこの設定が入っていないのでWRCでAGLのURLを以下の通り修正します。
【データソースのURL】
修正前:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=prsdb01-con.exsample.lan)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=prsdb02-con.exsample.lan)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=online_srv)))
修正後:
jdbc:oracle:thin:@(DESCRIPTION=(RETRY_COUNT=1)(RETRY_DELAY=1)(CONNECT_TIMEOUT=5)(ADDRESS_LIST=(LOAD_BALANCE=on)(FAILOVER=on)(ADDRESS=(PROTOCOL=TCP)(HOST=prsdb01-con.exsample.lan)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=prsdb02-con.exsample.lan)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=online_srv)))
※追記箇所赤字

なお、「Oracle WebLogic Server JDBCデータ・ソースの管理」の推奨事項だとCONNECT_TIMEOUTは「ログオンの混乱を避けるために、CONNECT_TIMEOUT=90またはそれ以上に設定」となっています。
ChatGptによればこの記述は「古いバージョンのJDBCでlogon storm(障害復旧直後、ノード切替直後、接続失敗→即再試行が大量発生といった 特殊状況)を回避することを目的とした設定」で比較的最新のJDBCを使用していて容量が数百程度であれば短めに設定した方が良いとのことなので5秒としています。
接続作成の再試行間隔
恥ずかしながらMDSの設定を反映してAGLでも「接続作成の再試行間隔」を2秒に設定してしまっておりました。MDSでは汎用DSで「接続作成の再試行間隔」を無効化してもMDS側で接続再試行をしてくれますがAGLではそうはいかないので「接続作成の再試行間隔」を無効化ではなく60秒に修正します。
その他
MDSで設定を修正した項目をAGLでも修正します。
【MDS設定修正箇所】
| 場所 | 対象 | タブ | 設定項目 | 修正内容 |
| 環境/サーバー | AdminServer prs_ap02 | ロギング/一般 | 保存するファイル数 | 100→10 |
| 環境/サーバー | AdminServer prs_ap02 | ロギング/HTTP | 保存するファイル数 | 100→10 |
| 環境/サーバー | AdminServer prs_ap02 | ロギング/データ・ソース | 保存するファイル数 | 100→10 |
| サービス/データ・ソース | DS_PDBUSER_10 | 接続プール/拡張 | 非アクティブ接続タイムアウト | 0→60 |
DBノード障害検証用シェル作成
SQLリクエスト疎通確認用シェル
DBノード障害検証を実施するにあたり、障害によるサービスへの影響を定量的に測らねばなりませんのでAPサーバでSQLリクエスト疎通確認用のシェルを作成します。
【prsap01で実行】
----------------------------------------------------------
# oracleユーザにスイッチ
su - oracle
# SQLリクエスト疎通確認シェル格納ディレクトリ作成
mkdir FAIL_TEST
# SQLリクエスト疎通確認シェル(親シェル)作成
vi FAIL_TEST/DB_CON_TEST.sh
# SQLリクエスト疎通確認シェル(子シェル)作成
# 実行権限設定
chmod u+x FAIL_TEST/*,sh
# SQLリクエスト疎通確認シェル配布(APサーバ#2 宛)
scp -r FAIL_TEST/ prsap02:~/
DB_CON_TEST.sh(SQLリクエスト疎通確認シェル・親シェル)
#!/bin/bash
BASE_DIR=$(dirname $0)
CHILD_SHELL=${BASE_DIR}/DB_CON_TEST_SUB.sh
END_FLG=${BASE_DIR}/FLG_DB_CON_TEST
PORT_NO=:7003
LOOP_SEC=300
export LOG_DIR=${BASE_DIR}/log
export LOG_FILE=${LOG_DIR}/DB_CON_TEST_`hostname -s`.log
export PID_LIST=${LOG_DIR}/DB_CON_TEST.pid
export URL_APPL="http://`uname -n`${PORT_NO}/ConnCheck/InstNameGet"
# Argument Check
if [ $# -ne 0 ];then
LOOP_SEC=$1
expr ${LOOP_SEC} / 1 1>/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "Please set the argument to an integer."
exit 1
fi
if [ ${LOOP_SEC} -lt 60 ] ; then
echo "The argument must be an integer greater than or equal to 60."
exit 1
fi
fi
LOOP_CNT=$(expr ${LOOP_SEC} \* 2)
# Base Directory Check
if [ ! -d ${BASE_DIR} ] ; then
echo "BASE_DIR:${BASE_DIR} does not exist"
exit 1
fi
# Sub Sell script Check
if [ ! -f ${CHILD_SHELL} ] ; then
echo "CHILD_SHELL:${CHILD_SHELL} does not exist"
exit 1
fi
# Log Directory Check
if [ ! -d ${LOG_DIR} ] ; then
mkdir ${LOG_DIR}
fi
if [ -f ${LOG_FILE} ]; then
mv ${LOG_FILE} ${LOG_FILE}.$(date +"%Y%m%d%H%M%S")
fi
if [ -f ${PID_LIST} ]; then
mv ${PID_LIST} ${PID_LIST}.old
fi
if [ ! -f "${END_FLG}" ];then
touch ${END_FLG}
fi
# Old Logfile cleanup
rm -f ${LOG_DIR}/*.out ${LOG_DIR}/*.lst ${PID_LIST} 1>/dev/null 2>&1
# Start messages
echo "----------------------------------------------------------------------" | tee -a ${LOG_FILE}
echo "DB node failure test started. -- "$(date "+%Y/%m/%d %H:%M:%S") | tee -a ${LOG_FILE}
echo "Request submission period time:${LOOP_SEC} sec." | tee -a ${LOG_FILE}
echo "------------------------------" | tee -a ${LOG_FILE}
echo "Start of connection check request submission. -- "$(date "+%Y/%m/%d %H:%M:%S") | tee -a ${LOG_FILE}
# Child shell startup
for ((i=1;i<=${LOOP_CNT};i++)) do
# Check the execution continuation flag
if [ ! -f "${END_FLG}" ];then
echo "Force stop by deleting the flag file." | tee -a ${LOG_FILE}
break
else
if [ $((${i} % 10)) -eq 0 ];then
echo -en "Elapsed Time:$(expr ${i} / 2) sec.\\r"
fi
fi
REQ_NO=$(printf "%05d\n" ${i})
# Child shell background execution
${CHILD_SHELL} ${REQ_NO} 2> /dev/null &
echo "PID:${!}-start" >> ${PID_LIST}
sleep 0.5
done
# End messges
echo "End of connection check request submission. -- "$(date "+%Y/%m/%d %H:%M:%S") | tee -a ${LOG_FILE}
# Wait until all chiled shells have finished
echo "Wait for chiled shell to finish." | tee -a ${LOG_FILE}
wait
echo "------------------------------" | tee -a ${LOG_FILE}
echo "DB node failure test completed. -- "$(date "+%Y/%m/%d %H:%M:%S") | tee -a ${LOG_FILE}
echo "" >> ${LOG_FILE}
# Result output
echo "<<Results section>>" >> ${LOG_FILE}
echo "------------------------------" >> ${LOG_FILE}
cat ${LOG_DIR}/*.lst >> ${LOG_FILE}
echo "------------------------------" >> ${LOG_FILE}
exit
DB_CON_TEST_SUB.sh(SQLリクエスト疎通確認シェル・子シェル)
#!/bin/bash
REQ_NO=$1
PROC_ID=$$
RES_OUT=${LOG_DIR}/${REQ_NO}.out
RES_LOG=${LOG_DIR}/${REQ_NO}.lst
STATUS=""
# Start Time setting
EXE_START=$(date +"%s")
EXE_START_TM=$(date -d @${EXE_START} +"%H:%M:%S")
# Servlet Call
curl -sS "$URL_APPL" >> ${RES_OUT}
EXE_END=$(date +"%s")
EXE_END_TM=$(date -d @${EXE_END} +"%H:%M:%S")
ELPS_TM=$(expr ${EXE_END} - ${EXE_START})
# Check results
INST=`awk 'NR==1{print $3}' ${RES_OUT}`
if [ `echo ${INST} | grep -c "prdb[1,2]"` -ne 0 ] ;then
STATUS="OK"
else
INST="none"
STATUS="ERROR"
fi
# End information output
echo "${REQ_NO} START=${EXE_START_TM} END=${EXE_END_TM} INSTANCE=${INST} ELAPSED=${ELPS_TM} STATUS=${STATUS}" > ${RES_LOG}
# PID State Change
sed -i "s/PID:${PROC_ID}-start/PID:${PROC_ID}-finished/g" ${PID_LIST}
exit
SQLリクエスト疎通確認用シェルは0.5秒間隔で600回、時間にして5分間にわたり子シェルをバック・グラウンドで起動し続けます。子シェルの内容はcurlによるDBインスタンス名サーブレット(InstNameGet)のコールです。子シェルは自身が起動された時刻と終了した時刻、DBインスタンス名サーブレットの応答結果をテキスト出力し、最後に親シェルがそれを集計してログに出力します。
なお、親シェルを強制終了すると応答待機中の子シェルの実行結果がログに出力されなくなってしまうので親シェルの実行を中断したい場合は別のTeratermウインドウを立ち上げてシェルと同じディレクトリに生成されたフラグファイル(FLG_DB_CON_TEST)を削除します。
APサーバで作成したシェルをWebサーバにも転送します(Webサーバにoracleユーザは存在しないのでrootユーザ宛)。
【prsap01 / oracleユーザで実行】
----------------------------------------------------------
# リクエスト疎通確認用シェル配布(to Webサーバ)
scp -r FAIL_TEST/ root@172.16.10.61:~/
scp -r FAIL_TEST/ root@172.16.10.62:~/
WebサーバのhttpdからDBインスタンス名サーブレットをコールするには7003ポートではなくhttpのデフォルトである80ポートを使用します。なので親シェルのポート指定を空文字に変更します。
【prswb01 、prswb02で実行】
----------------------------------------------------------
# リクエスト疎通確認用シェル・ポート番号変更
sed -i "s/PORT_NO=:7003/PORT_NO=/g" /root/FAIL_TEST/DB_CON_TEST.sh
ロード・バランサで中継してSQLリクエスト疎通確認用シェルをクライアントPCにも配布します。
【prslb01で実行】
----------------------------------------------------------
# webサーバからリクエスト疎通確認用シェルを取得
scp -r prswb01:/root/FAIL_TEST ./
# リクエスト疎通確認用シェルをクライアントに配布
scp -r FAIL_TEST/ 172.16.130.11:~/
クライアントPCから本番サイトのアプリをコールする場合、URLはロード・バランサが宛先になるので親シェルを以下のように修正します。
【clientpcで実行】
----------------------------------------------------------
# リクエスト疎通確認用シェル(親シェル)修正
vi /root/FAIL_TEST/DB_CON_TEST.sh
(11行目)
export URL_APPL="http://`uname -n`${PORT_NO}/ConnCheck/InstNameGet"
↓
export URL_APPL="http://prsite/ConnCheck/InstNameGet"
DBセッション状況監視用シェル
DBノード障害検証中のセッション状況の監視はAGL検証で作成したDBセッション数集計シェルを使用します。
DBノード障害検証
検証1. PDB障害
検証内容
まずは軽いところから、ということでPDB障害時のデータ・ソースによる接続制御とサービス影響を確認していこうと思います。正直なところ私にはCDBに問題なくPDBだけダウンするような障害の具体例は思い浮かびませんが、念のためやっておいて損はないかと。
PDBの停止によってAPサーバ#1のMDSはダウン・ノードとの接続が失われるだけですがAPサーバ#2のMDSではロストしたセッションを生存ノードに作成しなおして接続プールの最小容量を回復しようとします。このとき、どれぐらいのペースで接続プールの接続を回復するかもついでに確認しておきます。
【検証概要】
- SQLリクエスト疎通確認シェル実行中にDBサーバ#2のPDBを停止
- PDB停止によって生じるサービス影響(SQLリクエスト・エラー、応答遅延等)を確認
- PDB停止による接続喪失で最小容量割れしたAPサーバ#2(AGL)の接続プールの接続が自動的に回復すること、またその回復ペースを確認
【検証手順】
| No. | 作業内容 |
| 1 | DBサーバ#3でDBセッション数集計開始(実行ユーザ oracle) ————————— /home/oracle/RCLB_TEST/RCLB_SESS.sh |
| 2 | DBセッション数集計開始から1分後、SQLリクエスト疎通確認シェル開始 (実行ユーザ APサーバ:oracle、APサーバ以外:root) ————————— $HOME/FAIL_TEST/DB_CON_TEST.sh |
| 3 | SQLリクエスト疎通確認シェル開始から1分後、DBサーバ#2のPDBを停止 (実行ユーザ oracle) ————————— srvctl stop pdb -db prdb -pdb prpdb -node prsdb02 -force |
| 4 | SQLリクエスト疎通確認シェル終了待機 (シェル実行時間 5分) |
| 5 | APサーバ#2(AGL)-DBサーバ#1・接続数最小容量(200本)回復待機 |
| 6 | DBサーバ#3でDBセッション数集計停止 ————————— rm -f /home/oracle/RCLB_TEST/FLG_EXE_RCLB_SESS_COUNT |
検証結果
PDB停止によるサービス影響
【PDB停止・サービス影響(データ・ソース別)】
| 確認項目 | データ・ソース:MDS | データ・ソース:AGL |
| SQLリクエスト・エラー | 0 | 0 |
| SQLリクエスト応答遅延* | 0 | 0 |
*:応答に3秒以上を要したSQLリクエスト数
【prsdb01 PDB停止(対象ノード:prsdb02)】
----------------------------------------------------------------------
while [ `date +"%H:%M"` != "22:21" ];do sleep 1;done; srvctl stop pdb -db prdb -pdb prpdb -node prsdb02
APサーバ#1(prsap01、データソース:MDS)SQLリクエスト疎通確認シェル実行ログ
(前略)
00120 START=22:21:00 END=22:21:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00121 START=22:21:00 END=22:21:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00122 START=22:21:01 END=22:21:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00123 START=22:21:01 END=22:21:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00124 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00125 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★以降、DB#1宛のみ
00126 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00127 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00128 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00130 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00131 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00132 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00133 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00134 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00135 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00136 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00137 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00138 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00139 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00140 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00142 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00143 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00145 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00146 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00147 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00149 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00150 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00151 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00154 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00155 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00158 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00159 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00160 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
APサーバ#2(prsap02、データソース:AGL)SQLリクエスト疎通確認シェル実行ログ
(前略)
00120 START=22:21:00 END=22:21:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00121 START=22:21:01 END=22:21:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00122 START=22:21:01 END=22:21:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00123 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00124 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★以降、DB#1宛のみ
00125 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00126 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00127 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00128 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00130 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00131 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00132 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00133 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00134 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00135 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00136 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00137 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00138 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00139 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00140 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00142 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00143 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00145 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00146 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00147 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00149 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00150 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00151 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00154 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00155 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00158 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00159 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00160 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
Webサーバ#1(prswb01、データソース:MDS)SQLリクエスト疎通確認シェル実行ログ
(前略)
00120 START=22:21:00 END=22:21:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00121 START=22:21:00 END=22:21:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00122 START=22:21:01 END=22:21:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00123 START=22:21:01 END=22:21:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00124 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00125 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★以降、DB#1宛のみ
00126 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00127 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00128 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00130 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00131 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00132 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00133 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00134 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00135 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00136 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00137 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00138 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00139 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00140 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00142 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00143 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00145 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00146 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00147 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00149 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00150 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00151 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00154 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00155 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00158 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00159 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00160 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
Webサーバ#2(prswb02、データソース:AGL)SQLリクエスト疎通確認シェル実行ログ
(前略)
00120 START=22:21:00 END=22:21:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00121 START=22:21:01 END=22:21:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00122 START=22:21:01 END=22:21:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00123 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00124 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★以降、DB#1宛のみ
00125 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00126 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00127 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00128 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00130 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00131 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00132 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00133 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00134 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00135 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00136 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00137 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00138 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00139 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00140 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00142 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00143 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00145 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00146 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00147 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00149 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00150 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00151 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00154 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00155 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00158 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00159 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00160 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:21:21 END=22:21:21 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
クライアントPC(clientpc、データソース:MDS or AGL)SQLリクエスト疎通確認シェル実行ログ
(前略)
00120 START=22:21:00 END=22:21:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00121 START=22:21:01 END=22:21:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00122 START=22:21:01 END=22:21:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00123 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00124 START=22:21:02 END=22:21:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★以降、DB#1宛のみ
00125 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00126 START=22:21:03 END=22:21:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00127 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00128 START=22:21:04 END=22:21:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00130 START=22:21:05 END=22:21:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00131 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00132 START=22:21:06 END=22:21:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00133 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00134 START=22:21:07 END=22:21:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00135 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00136 START=22:21:08 END=22:21:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00137 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00138 START=22:21:09 END=22:21:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00139 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00140 START=22:21:10 END=22:21:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00142 START=22:21:11 END=22:21:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00143 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:21:12 END=22:21:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00145 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00146 START=22:21:13 END=22:21:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00147 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:21:14 END=22:21:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00149 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00150 START=22:21:15 END=22:21:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00151 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:21:16 END=22:21:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00154 START=22:21:17 END=22:21:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00155 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:21:18 END=22:21:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00158 START=22:21:19 END=22:21:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00159 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00160 START=22:21:20 END=22:21:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:21:21 END=22:21:21 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
DBサーバ#2のPDB停止コマンドは”22:00”丁度にDBサーバ#1から実行しています。このコマンドの応答は約10秒後ですがアラート・ログでは22:21:01~22:21:04の間にonline_srvサービスが停止しているのでこの時点でDBサーバ#2のPDBは使用できなくなったと思われます。
すべてのSQLリクエスト疎通確認シェルの実行ログで”22:21:02″あたりからSQLリクエストはDBサーバ#1だけ、つまりダウン・ノードへのSQLリクエスト振り分けが停止されたことが分かります。また、SQLリクエスト・エラーや応答遅延も発生しておらず非常にグッドな結果です。
AGLの接続プール回復状況
【PDB停止・AGL接続プール回復状況】
| 確認項目 | データ・ソース:AGL |
| PDB停止直前の接続プール内接続数 | DBサーバ#1:108 DBサーバ#2:92 |
| 接続プール・最小容量回復所要時間 | 8分 (DBサーバ#1:108->200 所要時間) |
| 接続プール・最小容量回復速度 | 11.5本/分(92本/8分) |
DBサーバ#3 DBセッション数集計シェル・実行ログ
(前略)
2026/03/06 22:21:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:21:01 1 prsap02 Server PDBUSER 108
2026/03/06 22:21:01 2 prsap01 Server PDBUSER 200
2026/03/06 22:21:01 2 prsap02 Server PDBUSER 92★直後にPDB停止
2026/03/06 22:22:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:22:01 1 prsap02 Server PDBUSER 118
2026/03/06 22:23:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:23:01 1 prsap02 Server PDBUSER 129
2026/03/06 22:24:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:24:01 1 prsap02 Server PDBUSER 141
2026/03/06 22:25:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:25:01 1 prsap02 Server PDBUSER 153
2026/03/06 22:26:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:26:01 1 prsap02 Server PDBUSER 165
2026/03/06 22:27:02 1 prsap01 Server PDBUSER 200
2026/03/06 22:27:02 1 prsap02 Server PDBUSER 177
2026/03/06 22:28:02 1 prsap01 Server PDBUSER 200
2026/03/06 22:28:02 1 prsap02 Server PDBUSER 189
2026/03/06 22:29:02 1 prsap01 Server PDBUSER 200
2026/03/06 22:29:02 1 prsap02 Server PDBUSER 200★AGL 最小容量回復
PDB停止直前のタイミングでAPサーバ#2(AGL)からDBサーバ#1(生存ノード)に108本、DBサーバ#2(ダウン・ノード)に92本のセッションが張られています。DBサーバ#2のPDB停止後、このノード向けのセッションがDBサーバ#1に生成されればAGLの接続プールの回復は完了です。
DBセッション数計シェルのログを見てみるとAPサーバ#2(AGL)からDBサーバ#1に張られた108本のセッションが200本になるまで要した時間が8分、1分当たり11.5本なので毎分最小接続容量の6%弱、5秒に1本のペースで接続を生成しています。
ううむ、こんなにチンタラしたペースだとノード障害が発生した場合、AGLの接続動的分散によるセッション数の確保などまったくあてにできません。(私がやってしまったように)「容量=稼働ピーク時の必要セッション数」という設計では稼働ピーク時にノード・ダウンが発生したらセッションが不足してしまいます。
私の個人的な感想ですが、もし実際の業務でAGLのキャパシティを設計するとなれば稼働ピーク時の必要セッション数×2を容量に割り当てておくのが一番無難かなあ、という気がします(今は設定をいじりませんが)。しかし、前回のAGL検証でも考えましたけどセッションを動的に分散させる意味ってはたしてあるんですかね?
【補足 5秒に1本接続のペース】
ここまで書いたところで「しかしこのペース、何とかならんもんかな」と思いながらググってみたらAIのコメントで「接続作成の再試行間隔で調整」とありました。そこで接続作成の再試行間隔を60->30に直して試してみたんですが結果は接続作成の再試行間隔:60の時と変わりなし。しかしAIがこのコメントの根拠にOracleさんのPDF「WebLogic Serverを基礎から学ぶシリーズ第2弾 解説! JDBCデータソースと接続プール」を挙げていたので目を通したところ37ページに「接続プールのテスト機能によるテストが連続失敗して『フラッシュされるまでのテストの失敗数』に達した場合、全ての接続を閉じ5秒間隔で接続の再作成処理が始まり、『最小容量』に達するまでコネクション確立を行う」とありました。5秒1本は固定なんかい…
(ちなみにAIのコメントでは接続作成の再試行間隔が1となっていましたが実際には0です)
検証2. ノード復旧
検証内容
念のためPDB製紙の検証が終わった状態から今度はPDBを起動(ノード復旧)してAPサーバ#1のMDSからDBサーバ#2へのセッションが再接続される状況も確認しておこうと思います。
【検証概要】
- 現在停止しているDBサーバ#2のPDBを起動
- APサーバ#1(データ・ソース:MDS)とDBサーバ#2のセッションの復旧状況を確認
【検証手順】
| No. | 作業内容 |
| 1 | DBサーバ#2のPDBを起動 (実行ユーザ oracle) ————————— srvctl start pdb -db prdb -pdb prpdb -node prsdb02 |
| 2 | 各APサーバ-DBサーバ#2間のセッション状況をモニタリング (APサーバ#1(MDS)-DBサーバ#2のセッション数が200に回復するまで待機 |
| 3 | DBサーバ#3でDBセッション数集計終了(実行ユーザ oracle) ※追加のTeratermウインドウを立ち上げてそちらから実行 ————————— rm -f /home/oracle/RCLB_TEST/FLG_EXE_RCLB_SESS_COUNT |
検証結果
【PDB停止・障害ノート復旧時のセッション再接続状況(MDS)】
| 確認項目 | データ・ソース:MDS |
| 接続プール・最小容量回復所要時間 | 17分 (DBサーバ#2:0->200セッション) |
| 接続プール・最小容量回復速度 | 11.7本/分(200本/17分) |
DBサーバ#3 DBセッション数集計シェル・実行ログ
2026/03/06 22:35:00 1 prsap01 Server PDBUSER 200
2026/03/06 22:35:00 1 prsap02 Server PDBUSER 200
2026/03/06 22:36:00 1 prsap01 Server PDBUSER 200
2026/03/06 22:36:00 1 prsap02 Server PDBUSER 200★直後にPDB起動
2026/03/06 22:37:00 1 prsap01 Server PDBUSER 200
2026/03/06 22:37:00 1 prsap02 Server PDBUSER 145
2026/03/06 22:37:00 2 prsap01 Server PDBUSER 2
2026/03/06 22:37:00 2 prsap02 Server PDBUSER 55
2026/03/06 22:38:00 1 prsap01 Server PDBUSER 200
2026/03/06 22:38:00 1 prsap02 Server PDBUSER 145
2026/03/06 22:38:00 2 prsap01 Server PDBUSER 14
2026/03/06 22:38:00 2 prsap02 Server PDBUSER 55
2026/03/06 22:39:00 1 prsap01 Server PDBUSER 200
2026/03/06 22:39:00 1 prsap02 Server PDBUSER 146
2026/03/06 22:39:00 2 prsap01 Server PDBUSER 26
2026/03/06 22:39:00 2 prsap02 Server PDBUSER 54
2026/03/06 22:40:00 1 prsap01 Server PDBUSER 200
2026/03/06 22:40:00 1 prsap02 Server PDBUSER 148
2026/03/06 22:40:00 2 prsap01 Server PDBUSER 38
2026/03/06 22:40:00 2 prsap02 Server PDBUSER 52
2026/03/06 22:41:00 1 prsap01 Server PDBUSER 200
2026/03/06 22:41:00 1 prsap02 Server PDBUSER 150
2026/03/06 22:41:00 2 prsap01 Server PDBUSER 50
2026/03/06 22:41:00 2 prsap02 Server PDBUSER 50
2026/03/06 22:42:00 1 prsap01 Server PDBUSER 200
2026/03/06 22:42:00 1 prsap02 Server PDBUSER 151
2026/03/06 22:42:00 2 prsap01 Server PDBUSER 62
2026/03/06 22:42:00 2 prsap02 Server PDBUSER 49
2026/03/06 22:43:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:43:01 1 prsap02 Server PDBUSER 152
2026/03/06 22:43:01 2 prsap01 Server PDBUSER 74
2026/03/06 22:43:01 2 prsap02 Server PDBUSER 48
2026/03/06 22:44:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:44:01 1 prsap02 Server PDBUSER 152
2026/03/06 22:44:01 2 prsap01 Server PDBUSER 86
2026/03/06 22:44:01 2 prsap02 Server PDBUSER 48
2026/03/06 22:45:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:45:01 1 prsap02 Server PDBUSER 152
2026/03/06 22:45:01 2 prsap01 Server PDBUSER 98
2026/03/06 22:45:01 2 prsap02 Server PDBUSER 48
2026/03/06 22:46:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:46:01 1 prsap02 Server PDBUSER 153
2026/03/06 22:46:01 2 prsap01 Server PDBUSER 110
2026/03/06 22:46:01 2 prsap02 Server PDBUSER 47
2026/03/06 22:47:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:47:01 1 prsap02 Server PDBUSER 153
2026/03/06 22:47:01 2 prsap01 Server PDBUSER 122
2026/03/06 22:47:01 2 prsap02 Server PDBUSER 47
2026/03/06 22:48:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:48:01 1 prsap02 Server PDBUSER 154
2026/03/06 22:48:01 2 prsap01 Server PDBUSER 134
2026/03/06 22:48:01 2 prsap02 Server PDBUSER 46
2026/03/06 22:49:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:49:01 1 prsap02 Server PDBUSER 156
2026/03/06 22:49:01 2 prsap01 Server PDBUSER 146
2026/03/06 22:49:01 2 prsap02 Server PDBUSER 44
2026/03/06 22:50:01 1 prsap01 Server PDBUSER 200
2026/03/06 22:50:01 1 prsap02 Server PDBUSER 156
2026/03/06 22:50:01 2 prsap01 Server PDBUSER 158
2026/03/06 22:50:01 2 prsap02 Server PDBUSER 44
2026/03/06 22:51:02 1 prsap01 Server PDBUSER 200
2026/03/06 22:51:02 1 prsap02 Server PDBUSER 157
2026/03/06 22:51:02 2 prsap01 Server PDBUSER 170
2026/03/06 22:51:02 2 prsap02 Server PDBUSER 43
2026/03/06 22:52:02 1 prsap01 Server PDBUSER 200
2026/03/06 22:52:02 1 prsap02 Server PDBUSER 158
2026/03/06 22:52:02 2 prsap01 Server PDBUSER 182
2026/03/06 22:52:02 2 prsap02 Server PDBUSER 42
2026/03/06 22:53:02 1 prsap01 Server PDBUSER 200
2026/03/06 22:53:02 1 prsap02 Server PDBUSER 159
2026/03/06 22:53:02 2 prsap01 Server PDBUSER 194
2026/03/06 22:53:02 2 prsap02 Server PDBUSER 41
2026/03/06 22:54:02 1 prsap01 Server PDBUSER 200
2026/03/06 22:54:02 1 prsap02 Server PDBUSER 159
2026/03/06 22:54:02 2 prsap01 Server PDBUSER 200★
2026/03/06 22:54:02 2 prsap02 Server PDBUSER 41
2026/03/06 22:55:02 1 prsap01 Server PDBUSER 200
2026/03/06 22:55:02 1 prsap02 Server PDBUSER 159
2026/03/06 22:55:02 2 prsap01 Server PDBUSER 200
2026/03/06 22:55:02 2 prsap02 Server PDBUSER 41
DBサーバ#1 PDB起動コマンド
【prsdb01 PDB起動(対象ノード:prsdb02)】
----------------------------------------------------------------------
while [ `date +"%H:%M"` != "22:36" ];do sleep 1;done; srvctl
start pdb -db prdb -pdb prpdb -node prsdb02
22:36にPDB起動、22:54にAPサーバ#1(MDS)-DBサーバ#2間のすべてのセッションが再接続されています。MDSを構成する汎用DSの最小容量は200本なので再接続のペースは 200本 / 17分 = 11.7本/分なので約5秒に1本、ってのはAGLがダウン・ノードのセッションを生存ノードに作成するのと同じペースです。
もっともあちらは接続生成ペースが業務サービスにモロ影響しますがこちらの再接続は障害復旧の一環なのでのんびりペースでも全然困りません。普通、ダウン・ノードの復旧作業は業務サービスに影響がないタイミングで実行しますから、場合によってはManaged Serverの再起動ですべての接続を一気に再作成してしまえばいいだけです。ともあれMDSが復旧ノードに再接続するペースは確認できたので次の検証へ進みます。
検証3. DBインスタンス障害(インスタンス・クラッシュ)
検証内容
今度はDBインスタンス障害によるサービス影響を確認します。
PDB障害検証ではPDBだけをクラッシュ状態にする方法が分からなかったのでやむなくsrvctlコマンドで停止しましたがあれでは単なる正常停止ですからね。今度はDBインスタンス丸ごとなのでコマンドを使用したキレイな停止ではなくpmonプロセスをkillしてインスタンスをクラッシュさせてしまいます。
【検証概要】
- SQLリクエスト疎通確認シェル実行中にDBサーバ#1でpmonプロセスをkill
- DBインスタンスのクラッシュによって生じるサービス影響を確認
【検証手順】
| o. | 作業内容 |
| 1 | テスト環境初期化(TEST_DS削除、Managed Server再起動 etc.) |
| 2 | DBサーバ#3でDBセッション数集計開始(実行ユーザ oracle) ————————— /home/oracle/RCLB_TEST/RCLB_SESS.sh |
| 3 | DBセッション数集計開始から1分後、SQLリクエスト疎通確認シェル開始 (実行ユーザ APサーバ:oracle、APサーバ以外:root) ————————— $HOME/FAIL_TEST/DB_CON_TEST.sh |
| 4 | SQLリクエスト疎通確認シェル開始から1分後、DBサーバ#1のpmonプロセス・kill* (実行ユーザ oracle or root) ————————— ps -ef | grep ora_ | wc -l ps -ef | grep ora_ | grep _pmon kill -9 <prdb1のpmonプロセスID>;sleep 1;ps -ef | grep ora_ | wc -l;date;for ((i=0;i<30;i++));do ps -ef | grep ora_ | wc -l;sleep 10;done |
| 5 | SQLリクエスト疎通確認シェル終了待機 (シェル実行時間 5分) |
| 6 | APサーバ#2(AGL)-DBサーバ#1のセッション数が200本に回復するまで待機 |
| 7 | DBサーバ#3でDBセッション数集計停止 ————————— rm -f /home/oracle/RCLB_TEST/FLG_EXE_RCLB_SESS_COUNT |
*現在、RACのDBリソースはダウンしてもCRSによって自動再起動するよう設定しています。killコマンドを流しただけだと後で確認したらいつの間にかDBインスタンスが起動していて「あれ、本当にインスタンス落としたんだっけ?」と混乱しないようkillコマンドの後ろに10秒間隔でoracleプロセス数のカウントをくっつけています。
検証結果
まずはDB側のインスタンス・クラッシュの状況です。
【prsdb01 pmonプロセスkill(インスタンス・クラッシュ)】
----------------------------------------------------------------------
[oracle@prsdb01 ~]$ ps -ef | grep ora_ | wc -l
115
[oracle@prsdb01 ~]$ ps -ef | grep ora_ | grep _pmon
oracle 54127 1 0 23:24 ? 00:00:00 ora_pmon_prdb1
[oracle@prsdb01 ~]$ while [ `date +"%H:%M"` != "23:32" ];do sleep 1;done;kill -9 54127;date;sleep 1;ps -ef | grep ora_ | wc -l;date;for ((i=0;i<30;i++));do ps -ef | grep ora_ | wc -l;sleep 10;done
2026年 3月 10日 火曜日 23:32:01 JST
7 → pmonプロセス・kill 1秒後
2 → pmonプロセス・kill 11秒後
70 → pmonプロセス・kill 21秒後
95 → pmonプロセス・kill 31秒後
99 → pmonプロセス・kill 41秒後
111 → pmonプロセス・kill 51秒後
111
(中略)
110
110
109
[oracle@prsdb01 ~]$
pmonプロセスのkillは23:32:00、その11秒後にoracleプロセス数は2個まで落ち込んだ後で増加に転じ、51秒後に概ね元のプロセス数を回復しています。
このインスタンス・クラッシュによるサービス影響は以下の通りす。
| 確認項目 | AP#1 (MDS) | Web#1 (MDS) | AP#2 (AGL) | Web#2 (AGL) | ClientPC |
| SQLリクエスト・エラー | 1 | 0 | 1 | 0 | 0 |
| SQLリクエスト応答遅延* | 0 | 0 | 1 | 1 | 0 |
| 最長応答遅延時間(s) | – | – | 6 | 7 | – |
| サービス影響解消時間(s) | 0 | 0 | 0 | 0 | 0 |
*:応答に3秒以上を要したSQLリクエスト数
APサーバ#1(prsap01、データソース:MDS)SQLリクエスト疎通確認シェル実行ログ
(前略)
00118 START=23:31:59 END=23:31:59 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00119 START=23:31:59 END=23:31:59 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00120 START=23:32:00 END=23:32:00 INSTANCE=none ELAPSED=0 STATUS=ERROR★DB#1 DOWN
00121 START=23:32:00 END=23:32:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00122 START=23:32:01 END=23:32:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00123 START=23:32:01 END=23:32:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00124 START=23:32:02 END=23:32:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00125 START=23:32:02 END=23:32:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00126 START=23:32:03 END=23:32:03 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00127 START=23:32:03 END=23:32:03 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00128 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00129 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00130 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00131 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
(中略)
00348 START=23:33:54 END=23:33:54 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00349 START=23:33:55 END=23:33:55 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00350 START=23:33:55 END=23:33:56 INSTANCE=prdb1 ELAPSED=1 STATUS=OK★DB#1復活
00351 START=23:33:56 END=23:33:56 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00352 START=23:33:56 END=23:33:57 INSTANCE=prdb2 ELAPSED=1 STATUS=OK
(後略)
APサーバ#2(prsap02、データソース:AGL)SQLリクエスト疎通確認シェル実行ログ
----------------------------------------------------------------------
DB node failure test started. -- 2026/03/10 23:31:00
Request submission period time:300 sec.
------------------------------
Start of connection check request submission. -- 2026/03/10 23:31:00
End of connection check request submission. -- 2026/03/10 23:36:01
Wait for chiled shell to finish.
------------------------------
DB node failure test completed. -- 2026/03/10 23:36:01
<<Results section>>
------------------------------
00001 START=23:31:00 END=23:31:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00002 START=23:31:00 END=23:31:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00003 START=23:31:01 END=23:31:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00004 START=23:31:01 END=23:31:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(中略)
00118 START=23:31:59 END=23:31:59 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00119 START=23:31:59 END=23:31:59 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00120 START=23:32:00 END=23:32:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00121 START=23:32:00 END=23:32:00 INSTANCE=none ELAPSED=0 STATUS=ERROR★DB#1ダウン
00122 START=23:32:01 END=23:32:07 INSTANCE=prdb2 ELAPSED=6 STATUS=OK
00123 START=23:32:01 END=23:32:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00124 START=23:32:02 END=23:32:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00125 START=23:32:02 END=23:32:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00126 START=23:32:03 END=23:32:03 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00127 START=23:32:03 END=23:32:03 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00128 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00129 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00130 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00131 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
(中略)
00176 START=23:32:28 END=23:32:28 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00177 START=23:32:28 END=23:32:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★DB#1復活
00178 START=23:32:29 END=23:32:29 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00179 START=23:32:29 END=23:32:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00180 START=23:32:30 END=23:32:30 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
(後略)
Webサーバ#1(prswb01、データソース:MDS)SQLリクエスト疎通確認シェル実行ログ
(前略)
00118 START=23:31:59 END=23:31:59 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00119 START=23:31:59 END=23:31:59 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00120 START=23:31:59 END=23:31:59 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00121 START=23:32:00 END=23:32:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK★★DB#1 DOWN
00122 START=23:32:00 END=23:32:01 INSTANCE=prdb2 ELAPSED=1 STATUS=OK
00123 START=23:32:01 END=23:32:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00124 START=23:32:01 END=23:32:02 INSTANCE=prdb2 ELAPSED=1 STATUS=OK
00125 START=23:32:02 END=23:32:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00126 START=23:32:02 END=23:32:03 INSTANCE=prdb2 ELAPSED=1 STATUS=OK
00127 START=23:32:03 END=23:32:03 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00128 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00129 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00130 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00131 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
(中略)
00349 START=23:33:55 END=23:33:55 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00350 START=23:33:55 END=23:33:55 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00351 START=23:33:56 END=23:33:56 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★DB#1復活
00352 START=23:33:56 END=23:33:56 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00353 START=23:33:57 END=23:33:57 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
(後略)
Webサーバ#2(prswb02、データソース:AGL)SQLリクエスト疎通確認シェル実行ログ
(前略)
00118 START=23:31:59 END=23:31:59 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00119 START=23:32:00 END=23:32:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK★★DB#1 DOWN
00120 START=23:32:00 END=23:32:07 INSTANCE=prdb2 ELAPSED=7 STATUS=OK
00121 START=23:32:01 END=23:32:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00122 START=23:32:01 END=23:32:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00123 START=23:32:02 END=23:32:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00124 START=23:32:02 END=23:32:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00125 START=23:32:03 END=23:32:03 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00126 START=23:32:03 END=23:32:03 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00127 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00128 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00129 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00130 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00131 START=23:32:06 END=23:32:06 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
(中略)
00175 START=23:32:28 END=23:32:28 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00176 START=23:32:28 END=23:32:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★DB#1復活
00177 START=23:32:29 END=23:32:29 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00178 START=23:32:29 END=23:32:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00179 START=23:32:30 END=23:32:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
クライアントPC(clientpc、データソース:MDS or AGL)SQLリクエスト疎通確認シェル実行ログ
(前略)
00118 START=23:31:59 END=23:31:59 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00119 START=23:31:59 END=23:31:59 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00120 START=23:32:00 END=23:32:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK★★DB#1 DOWN
00121 START=23:32:00 END=23:32:01 INSTANCE=prdb2 ELAPSED=1 STATUS=OK
00122 START=23:32:01 END=23:32:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00123 START=23:32:01 END=23:32:02 INSTANCE=prdb2 ELAPSED=1 STATUS=OK
00124 START=23:32:02 END=23:32:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00125 START=23:32:02 END=23:32:03 INSTANCE=prdb2 ELAPSED=1 STATUS=OK
00126 START=23:32:03 END=23:32:03 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00127 START=23:32:03 END=23:32:04 INSTANCE=prdb2 ELAPSED=1 STATUS=OK
00128 START=23:32:04 END=23:32:04 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00129 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00130 START=23:32:05 END=23:32:05 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00131 START=23:32:06 END=23:32:06 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
(中略)
00178 START=23:32:29 END=23:32:29 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00179 START=23:32:30 END=23:32:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★DB#1復活
00180 START=23:32:30 END=23:32:30 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00181 START=23:32:31 END=23:32:31 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
(後略)
さすがにDBインスタンス・クラッシュだと直後に実行したSQLリクエストはエラーとなりましたがそれも各APサーバで1回だけ。他にAPサーバ#2とWebサーバ#2で6~7秒の応答遅延が発生しているもののそれ以外のサービス影響はまったく出ていません。PDB停止に続いてこれまた非常にグッドな結果となりました(応答遅延については次の検証で掘り下げます)。
ということで次はDBサーバ障害の検証です。
検証4. DBサーバ障害(DBサーバ 電源断)
検証内容
先程の検証はDBインスタンスのクラッシュですが今度はDBサーバそのものを停止します。
今回も突発的なノード・ダウンということでDBサーバを電源断(仮想マシンのパワー・オフ)で停止、これによりどんなサービス影響が生じるかを確認します。

【検証概要】
- SQLリクエスト疎通確認シェル実行中にESXiコンソールからDBサーバ#2の仮想マシンを電源断(パワー・オフ)
- DBサーバ#2停止によって生じるサービス影響を確認
【検証手順】
| o. | 作業内容 |
| 1 | テスト環境初期化(Managed Server再起動) |
| 2 | DBサーバ#3でDBセッション数集計開始(実行ユーザ oracle) ————————— /home/oracle/RCLB_TEST/RCLB_SESS.sh |
| 3 | DBセッション数集計開始から1分後、SQLリクエスト疎通確認シェル開始 (実行ユーザ APサーバ:oracle、APサーバ以外:root) ————————— $HOME/FAIL_TEST/DB_CON_TEST.sh |
| 4 | ESXiコンソールからDBサーバ#2(prsdb02)をパワー・オフ* |
| 5 | SQLリクエスト疎通確認シェル終了待機 (シェル実行時間 5分) |
| 6 | DBサーバ#3でDBセッション数集計停止 ————————— rm -f /home/oracle/RCLB_TEST/FLG_EXE_RCLB_SESS_COUNT |
*運が悪ければDBサーバのパワーオフでDBセッション数集計シェルのSQLが「行1でエラーが発生しました。:ORA-12805: パラレル問合せサーバーが突然停止しました。」となります。
検証結果:サマリ
やはりDBサーバのダウンは被害が桁違い。PDB停止やDBインスタンス・クラッシュではサービスに影響らしい影響は出ませんでしたが今回は応答遅延やSQLリクエスト・エラーがガンガン出まくりです。
以下、DBサーバ 電源断によって各クライアントに生じたサービス影響です。
| 確認項目 | AP#1 (MDS) | AP#2 (AGL) | Web#1 (MDS) | Web#2 (AGL) | ClientPC |
| SQLリクエスト・エラー | 1 | 3 | 0 | 3 | 38 |
| SQLリクエスト応答遅延*1 | 30 | 52 | 30 | 53 | 41 |
| 最長応答時間 | 32秒 | 53秒 | 31秒 | 52秒 | 5秒 |
| サービス影響解消時間*2 | 約30秒 | 約50秒 | 約30秒 | 約50秒 | 約50秒 |
*1:応答に3秒以上を要したSQLリクエスト数。SQLリクエストがエラーの場合も含む
*2:障害発生を0としてサービス影響が解消されるまでに要した時間(10秒単位)
APサーバ#1(prsap01、データソース:MDS)SQLリクエスト疎通確認シェル実行ログ
(前略)
00121 START=22:42:00 END=22:42:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00122 START=22:42:00 END=22:42:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00123 START=22:42:01 END=22:42:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00124 START=22:42:01 END=22:42:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00125 START=22:42:02 END=22:42:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00126 START=22:42:02 END=22:42:34 INSTANCE=none ELAPSED=32 STATUS=ERROR★DB#2 DOWN
00127 START=22:42:03 END=22:42:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00128 START=22:42:03 END=22:42:04 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00129 START=22:42:04 END=22:42:34 INSTANCE=prdb1 ELAPSED=30 STATUS=OK
00130 START=22:42:05 END=22:42:34 INSTANCE=prdb1 ELAPSED=29 STATUS=OK
00131 START=22:42:05 END=22:42:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00132 START=22:42:06 END=22:42:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00133 START=22:42:06 END=22:42:34 INSTANCE=prdb1 ELAPSED=28 STATUS=OK
00134 START=22:42:07 END=22:42:34 INSTANCE=prdb1 ELAPSED=27 STATUS=OK
00135 START=22:42:07 END=22:42:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00136 START=22:42:08 END=22:42:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00137 START=22:42:08 END=22:42:34 INSTANCE=prdb1 ELAPSED=26 STATUS=OK
00138 START=22:42:09 END=22:42:34 INSTANCE=prdb1 ELAPSED=25 STATUS=OK
00139 START=22:42:09 END=22:42:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00140 START=22:42:10 END=22:42:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:42:10 END=22:42:34 INSTANCE=prdb1 ELAPSED=24 STATUS=OK
00142 START=22:42:11 END=22:42:34 INSTANCE=prdb1 ELAPSED=23 STATUS=OK
00143 START=22:42:11 END=22:42:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:42:12 END=22:42:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00145 START=22:42:12 END=22:42:34 INSTANCE=prdb1 ELAPSED=22 STATUS=OK
00146 START=22:42:13 END=22:42:34 INSTANCE=prdb1 ELAPSED=21 STATUS=OK
00147 START=22:42:13 END=22:42:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:42:14 END=22:42:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00149 START=22:42:14 END=22:42:46 INSTANCE=prdb1 ELAPSED=32 STATUS=OK
00150 START=22:42:15 END=22:42:46 INSTANCE=prdb1 ELAPSED=31 STATUS=OK
00151 START=22:42:15 END=22:42:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:42:16 END=22:42:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:42:16 END=22:42:48 INSTANCE=prdb1 ELAPSED=32 STATUS=OK
00154 START=22:42:17 END=22:42:48 INSTANCE=prdb1 ELAPSED=31 STATUS=OK
00155 START=22:42:17 END=22:42:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:42:18 END=22:42:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:42:18 END=22:42:50 INSTANCE=prdb1 ELAPSED=32 STATUS=OK
00158 START=22:42:19 END=22:42:34 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00159 START=22:42:19 END=22:42:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00160 START=22:42:20 END=22:42:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:42:20 END=22:42:35 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00162 START=22:42:21 END=22:42:36 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00163 START=22:42:21 END=22:42:21 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00164 START=22:42:22 END=22:42:22 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00165 START=22:42:22 END=22:42:38 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00166 START=22:42:23 END=22:42:38 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00167 START=22:42:23 END=22:42:23 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00168 START=22:42:24 END=22:42:24 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00169 START=22:42:24 END=22:42:40 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00170 START=22:42:25 END=22:42:40 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00171 START=22:42:25 END=22:42:25 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00172 START=22:42:26 END=22:42:26 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00173 START=22:42:26 END=22:42:42 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00174 START=22:42:27 END=22:42:34 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00175 START=22:42:27 END=22:42:27 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00176 START=22:42:28 END=22:42:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00177 START=22:42:28 END=22:42:35 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00178 START=22:42:29 END=22:42:36 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00179 START=22:42:29 END=22:42:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00180 START=22:42:30 END=22:42:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00181 START=22:42:30 END=22:42:37 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00182 START=22:42:31 END=22:42:34 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00183 START=22:42:31 END=22:42:31 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00184 START=22:42:32 END=22:42:32 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00185 START=22:42:32 END=22:42:35 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00186 START=22:42:33 END=22:42:34 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00187 START=22:42:33 END=22:42:33 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★サービス影響解消
00188 START=22:42:34 END=22:42:34 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00189 START=22:42:34 END=22:42:34 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00190 START=22:42:35 END=22:42:35 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00191 START=22:42:35 END=22:42:35 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
APサーバ#2(prsap02、データソース:AGL)SQLリクエスト疎通確認シェル実行ログ
(前略)
00120 START=22:42:00 END=22:42:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00121 START=22:42:00 END=22:42:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00122 START=22:42:01 END=22:42:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00123 START=22:42:01 END=22:42:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00124 START=22:42:02 END=22:42:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00125 START=22:42:02 END=22:42:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★DB#2 DOWN
00126 START=22:42:03 END=22:42:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00127 START=22:42:03 END=22:42:56 INSTANCE=none ELAPSED=53 STATUS=ERROR
00128 START=22:42:04 END=22:42:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:42:04 END=22:42:56 INSTANCE=prdb1 ELAPSED=52 STATUS=OK
00130 START=22:42:05 END=22:42:56 INSTANCE=prdb1 ELAPSED=51 STATUS=OK
00131 START=22:42:05 END=22:42:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00132 START=22:42:06 END=22:42:56 INSTANCE=none ELAPSED=50 STATUS=ERROR
00133 START=22:42:06 END=22:42:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00134 START=22:42:07 END=22:42:56 INSTANCE=prdb1 ELAPSED=49 STATUS=OK
00135 START=22:42:07 END=22:42:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00136 START=22:42:08 END=22:42:56 INSTANCE=prdb1 ELAPSED=48 STATUS=OK
00137 START=22:42:08 END=22:42:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00138 START=22:42:09 END=22:42:56 INSTANCE=prdb1 ELAPSED=47 STATUS=OK
00139 START=22:42:09 END=22:42:56 INSTANCE=prdb1 ELAPSED=47 STATUS=OK
00140 START=22:42:10 END=22:42:56 INSTANCE=prdb1 ELAPSED=46 STATUS=OK
00141 START=22:42:10 END=22:42:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00142 START=22:42:11 END=22:42:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00143 START=22:42:11 END=22:42:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:42:12 END=22:42:56 INSTANCE=none ELAPSED=44 STATUS=ERROR
00145 START=22:42:12 END=22:42:56 INSTANCE=prdb1 ELAPSED=44 STATUS=OK
00146 START=22:42:13 END=22:42:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00147 START=22:42:13 END=22:42:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:42:14 END=22:42:56 INSTANCE=prdb1 ELAPSED=42 STATUS=OK
00149 START=22:42:14 END=22:42:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00150 START=22:42:15 END=22:42:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00151 START=22:42:15 END=22:42:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:42:16 END=22:42:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:42:16 END=22:42:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00154 START=22:42:17 END=22:42:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00155 START=22:42:17 END=22:42:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:42:18 END=22:42:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:42:18 END=22:42:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00158 START=22:42:19 END=22:42:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00159 START=22:42:19 END=22:42:20 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00160 START=22:42:20 END=22:42:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:42:20 END=22:42:21 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00162 START=22:42:21 END=22:42:21 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00163 START=22:42:22 END=22:42:22 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00164 START=22:42:22 END=22:42:22 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00165 START=22:42:23 END=22:42:23 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00166 START=22:42:23 END=22:42:23 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00167 START=22:42:24 END=22:42:24 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00168 START=22:42:24 END=22:42:24 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00169 START=22:42:25 END=22:42:25 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00170 START=22:42:25 END=22:42:25 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00171 START=22:42:26 END=22:42:26 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00172 START=22:42:26 END=22:42:26 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00173 START=22:42:27 END=22:42:27 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00174 START=22:42:27 END=22:42:27 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00175 START=22:42:28 END=22:42:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00176 START=22:42:28 END=22:42:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00177 START=22:42:29 END=22:42:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00178 START=22:42:29 END=22:42:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00179 START=22:42:30 END=22:42:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00180 START=22:42:30 END=22:42:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00181 START=22:42:31 END=22:42:31 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00182 START=22:42:31 END=22:42:31 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00183 START=22:42:32 END=22:42:32 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00184 START=22:42:32 END=22:42:32 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00185 START=22:42:33 END=22:42:33 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00186 START=22:42:33 END=22:42:56 INSTANCE=prdb1 ELAPSED=23 STATUS=OK
00187 START=22:42:34 END=22:42:56 INSTANCE=prdb1 ELAPSED=22 STATUS=OK
00188 START=22:42:34 END=22:42:56 INSTANCE=prdb1 ELAPSED=22 STATUS=OK
00189 START=22:42:35 END=22:42:56 INSTANCE=prdb1 ELAPSED=21 STATUS=OK
00190 START=22:42:35 END=22:42:56 INSTANCE=prdb1 ELAPSED=21 STATUS=OK
00191 START=22:42:36 END=22:42:56 INSTANCE=prdb1 ELAPSED=20 STATUS=OK
00192 START=22:42:36 END=22:42:56 INSTANCE=prdb1 ELAPSED=20 STATUS=OK
00193 START=22:42:37 END=22:42:56 INSTANCE=prdb1 ELAPSED=19 STATUS=OK
00194 START=22:42:37 END=22:42:56 INSTANCE=prdb1 ELAPSED=19 STATUS=OK
00195 START=22:42:38 END=22:42:56 INSTANCE=prdb1 ELAPSED=18 STATUS=OK
00196 START=22:42:38 END=22:42:56 INSTANCE=prdb1 ELAPSED=18 STATUS=OK
00197 START=22:42:39 END=22:42:56 INSTANCE=prdb1 ELAPSED=17 STATUS=OK
00198 START=22:42:39 END=22:42:56 INSTANCE=prdb1 ELAPSED=17 STATUS=OK
00199 START=22:42:40 END=22:42:56 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00200 START=22:42:40 END=22:42:56 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00201 START=22:42:41 END=22:42:56 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00202 START=22:42:41 END=22:42:56 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00203 START=22:42:42 END=22:42:56 INSTANCE=prdb1 ELAPSED=14 STATUS=OK
00204 START=22:42:42 END=22:42:56 INSTANCE=prdb1 ELAPSED=14 STATUS=OK
00205 START=22:42:43 END=22:42:56 INSTANCE=prdb1 ELAPSED=13 STATUS=OK
00206 START=22:42:43 END=22:42:56 INSTANCE=prdb1 ELAPSED=13 STATUS=OK
00207 START=22:42:44 END=22:42:56 INSTANCE=prdb1 ELAPSED=12 STATUS=OK
00208 START=22:42:44 END=22:42:56 INSTANCE=prdb1 ELAPSED=12 STATUS=OK
00209 START=22:42:45 END=22:42:56 INSTANCE=prdb1 ELAPSED=11 STATUS=OK
00210 START=22:42:45 END=22:42:56 INSTANCE=prdb1 ELAPSED=11 STATUS=OK
00211 START=22:42:46 END=22:42:56 INSTANCE=prdb1 ELAPSED=10 STATUS=OK
00212 START=22:42:46 END=22:42:56 INSTANCE=prdb1 ELAPSED=10 STATUS=OK
00213 START=22:42:47 END=22:42:56 INSTANCE=prdb1 ELAPSED=9 STATUS=OK
00214 START=22:42:47 END=22:42:56 INSTANCE=prdb1 ELAPSED=9 STATUS=OK
00215 START=22:42:48 END=22:42:56 INSTANCE=prdb1 ELAPSED=8 STATUS=OK
00216 START=22:42:48 END=22:42:56 INSTANCE=prdb1 ELAPSED=8 STATUS=OK
00217 START=22:42:49 END=22:42:56 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00218 START=22:42:49 END=22:42:56 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00219 START=22:42:50 END=22:42:56 INSTANCE=prdb1 ELAPSED=6 STATUS=OK
00220 START=22:42:50 END=22:42:56 INSTANCE=prdb1 ELAPSED=6 STATUS=OK
00221 START=22:42:51 END=22:42:56 INSTANCE=prdb1 ELAPSED=5 STATUS=OK
00222 START=22:42:51 END=22:42:56 INSTANCE=prdb1 ELAPSED=5 STATUS=OK
00223 START=22:42:52 END=22:42:56 INSTANCE=prdb1 ELAPSED=4 STATUS=OK
00224 START=22:42:52 END=22:42:56 INSTANCE=prdb1 ELAPSED=4 STATUS=OK
00225 START=22:42:53 END=22:42:56 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00226 START=22:42:53 END=22:42:56 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00227 START=22:42:54 END=22:42:56 INSTANCE=prdb1 ELAPSED=2 STATUS=OK
00228 START=22:42:54 END=22:42:56 INSTANCE=prdb1 ELAPSED=2 STATUS=OK
00229 START=22:42:55 END=22:42:56 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00230 START=22:42:55 END=22:42:56 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00231 START=22:42:56 END=22:42:56 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00232 START=22:42:56 END=22:42:57 INSTANCE=prdb1 ELAPSED=1 STATUS=OK★サービス影響解消
00233 START=22:42:57 END=22:42:57 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00234 START=22:42:57 END=22:42:57 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
Webサーバ#1(prswb01、データソース:MDS)SQLリクエスト疎通確認シェル実行ログ
(前略)
00119 START=22:42:00 END=22:42:00 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00120 START=22:42:00 END=22:42:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00121 START=22:42:01 END=22:42:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00122 START=22:42:01 END=22:42:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00123 START=22:42:02 END=22:42:02 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00124 START=22:42:02 END=22:42:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★DB#2 DOWN
00125 START=22:42:03 END=22:42:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00126 START=22:42:03 END=22:42:34 INSTANCE=prdb1 ELAPSED=31 STATUS=OK
00127 START=22:42:04 END=22:42:34 INSTANCE=prdb1 ELAPSED=30 STATUS=OK
00128 START=22:42:04 END=22:42:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:42:05 END=22:42:05 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00130 START=22:42:05 END=22:42:34 INSTANCE=prdb1 ELAPSED=29 STATUS=OK
00131 START=22:42:06 END=22:42:34 INSTANCE=prdb1 ELAPSED=28 STATUS=OK
00132 START=22:42:06 END=22:42:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00133 START=22:42:07 END=22:42:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00134 START=22:42:07 END=22:42:34 INSTANCE=prdb1 ELAPSED=27 STATUS=OK
00135 START=22:42:08 END=22:42:34 INSTANCE=prdb1 ELAPSED=26 STATUS=OK
00136 START=22:42:08 END=22:42:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00137 START=22:42:09 END=22:42:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00138 START=22:42:09 END=22:42:34 INSTANCE=prdb1 ELAPSED=25 STATUS=OK
00139 START=22:42:10 END=22:42:34 INSTANCE=prdb1 ELAPSED=24 STATUS=OK
00140 START=22:42:10 END=22:42:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:42:11 END=22:42:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00142 START=22:42:11 END=22:42:34 INSTANCE=prdb1 ELAPSED=23 STATUS=OK
00143 START=22:42:12 END=22:42:34 INSTANCE=prdb1 ELAPSED=22 STATUS=OK
00144 START=22:42:12 END=22:42:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00145 START=22:42:13 END=22:42:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00146 START=22:42:13 END=22:42:45 INSTANCE=prdb1 ELAPSED=32 STATUS=OK
00147 START=22:42:14 END=22:42:45 INSTANCE=prdb1 ELAPSED=31 STATUS=OK
00148 START=22:42:14 END=22:42:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00149 START=22:42:15 END=22:42:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00150 START=22:42:15 END=22:42:47 INSTANCE=prdb1 ELAPSED=32 STATUS=OK
00151 START=22:42:16 END=22:42:47 INSTANCE=prdb1 ELAPSED=31 STATUS=OK
00152 START=22:42:16 END=22:42:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:42:17 END=22:42:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00154 START=22:42:17 END=22:42:49 INSTANCE=prdb1 ELAPSED=32 STATUS=OK
00155 START=22:42:18 END=22:42:49 INSTANCE=prdb1 ELAPSED=31 STATUS=OK
00156 START=22:42:18 END=22:42:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:42:19 END=22:42:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00158 START=22:42:19 END=22:42:34 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00159 START=22:42:20 END=22:42:35 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00160 START=22:42:20 END=22:42:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:42:21 END=22:42:21 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00162 START=22:42:21 END=22:42:37 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00163 START=22:42:22 END=22:42:37 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00164 START=22:42:22 END=22:42:22 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00165 START=22:42:23 END=22:42:23 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00166 START=22:42:23 END=22:42:39 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00167 START=22:42:24 END=22:42:39 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00168 START=22:42:24 END=22:42:24 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00169 START=22:42:25 END=22:42:25 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00170 START=22:42:25 END=22:42:41 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00171 START=22:42:26 END=22:42:41 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00172 START=22:42:26 END=22:42:26 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00173 START=22:42:27 END=22:42:27 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00174 START=22:42:27 END=22:42:34 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00175 START=22:42:28 END=22:42:35 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00176 START=22:42:28 END=22:42:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00177 START=22:42:29 END=22:42:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00178 START=22:42:29 END=22:42:36 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00179 START=22:42:30 END=22:42:37 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00180 START=22:42:30 END=22:42:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00181 START=22:42:31 END=22:42:31 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00182 START=22:42:31 END=22:42:34 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00183 START=22:42:32 END=22:42:35 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00184 START=22:42:32 END=22:42:32 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00185 START=22:42:33 END=22:42:33 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00186 START=22:42:33 END=22:42:34 INSTANCE=prdb1 ELAPSED=1 STATUS=OK★サービス影響解消
00187 START=22:42:34 END=22:42:34 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00188 START=22:42:34 END=22:42:34 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00189 START=22:42:35 END=22:42:35 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00190 START=22:42:35 END=22:42:35 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00191 START=22:42:36 END=22:42:36 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00192 START=22:42:36 END=22:42:36 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00193 START=22:42:37 END=22:42:37 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00194 START=22:42:37 END=22:42:37 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00195 START=22:42:38 END=22:42:38 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00196 START=22:42:38 END=22:42:38 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
Webサーバ#2(prswb02、データソース:AGL)SQLリクエスト疎通確認シェル実行ログ
(前略)
00121 START=22:42:00 END=22:42:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00122 START=22:42:00 END=22:42:01 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00123 START=22:42:01 END=22:42:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00124 START=22:42:01 END=22:42:02 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00125 START=22:42:02 END=22:42:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★DB#2 DOWN
00126 START=22:42:03 END=22:42:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00127 START=22:42:03 END=22:42:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00128 START=22:42:04 END=22:42:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:42:04 END=22:42:56 INSTANCE=none ELAPSED=52 STATUS=ERROR
00130 START=22:42:05 END=22:42:56 INSTANCE=prdb1 ELAPSED=51 STATUS=OK
00131 START=22:42:05 END=22:42:56 INSTANCE=prdb1 ELAPSED=51 STATUS=OK
00132 START=22:42:06 END=22:42:56 INSTANCE=none ELAPSED=50 STATUS=ERROR
00133 START=22:42:06 END=22:42:56 INSTANCE=none ELAPSED=50 STATUS=ERROR
00134 START=22:42:07 END=22:42:07 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00135 START=22:42:07 END=22:42:56 INSTANCE=prdb1 ELAPSED=49 STATUS=OK
00136 START=22:42:08 END=22:42:56 INSTANCE=prdb1 ELAPSED=48 STATUS=OK
00137 START=22:42:08 END=22:42:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00138 START=22:42:09 END=22:42:56 INSTANCE=prdb1 ELAPSED=47 STATUS=OK
00139 START=22:42:09 END=22:42:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00140 START=22:42:10 END=22:42:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:42:10 END=22:42:56 INSTANCE=prdb1 ELAPSED=46 STATUS=OK
00142 START=22:42:11 END=22:42:56 INSTANCE=prdb1 ELAPSED=45 STATUS=OK
00143 START=22:42:11 END=22:42:11 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:42:12 END=22:42:56 INSTANCE=prdb1 ELAPSED=44 STATUS=OK
00145 START=22:42:12 END=22:42:56 INSTANCE=prdb1 ELAPSED=44 STATUS=OK
00146 START=22:42:13 END=22:42:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00147 START=22:42:13 END=22:42:13 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:42:14 END=22:42:56 INSTANCE=prdb1 ELAPSED=42 STATUS=OK
00149 START=22:42:14 END=22:42:56 INSTANCE=prdb1 ELAPSED=42 STATUS=OK
00150 START=22:42:15 END=22:42:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00151 START=22:42:15 END=22:42:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:42:16 END=22:42:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:42:16 END=22:42:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00154 START=22:42:17 END=22:42:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00155 START=22:42:17 END=22:42:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:42:18 END=22:42:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:42:18 END=22:42:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00158 START=22:42:19 END=22:42:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00159 START=22:42:19 END=22:42:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00160 START=22:42:20 END=22:42:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:42:20 END=22:42:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00162 START=22:42:21 END=22:42:21 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00163 START=22:42:21 END=22:42:21 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00164 START=22:42:22 END=22:42:22 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00165 START=22:42:22 END=22:42:22 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00166 START=22:42:23 END=22:42:23 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00167 START=22:42:23 END=22:42:23 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00168 START=22:42:24 END=22:42:24 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00169 START=22:42:24 END=22:42:24 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00170 START=22:42:25 END=22:42:25 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00171 START=22:42:25 END=22:42:25 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00172 START=22:42:26 END=22:42:26 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00173 START=22:42:26 END=22:42:26 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00174 START=22:42:27 END=22:42:27 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00175 START=22:42:27 END=22:42:27 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00176 START=22:42:28 END=22:42:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00177 START=22:42:28 END=22:42:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00178 START=22:42:29 END=22:42:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00179 START=22:42:29 END=22:42:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00180 START=22:42:30 END=22:42:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00181 START=22:42:30 END=22:42:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00182 START=22:42:31 END=22:42:31 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00183 START=22:42:31 END=22:42:31 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00184 START=22:42:32 END=22:42:32 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00185 START=22:42:32 END=22:42:32 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00186 START=22:42:33 END=22:42:33 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00187 START=22:42:33 END=22:42:56 INSTANCE=prdb1 ELAPSED=23 STATUS=OK
00188 START=22:42:34 END=22:42:56 INSTANCE=prdb1 ELAPSED=22 STATUS=OK
00189 START=22:42:34 END=22:42:56 INSTANCE=prdb1 ELAPSED=22 STATUS=OK
00190 START=22:42:35 END=22:42:56 INSTANCE=prdb1 ELAPSED=21 STATUS=OK
00191 START=22:42:35 END=22:42:56 INSTANCE=prdb1 ELAPSED=21 STATUS=OK
00192 START=22:42:36 END=22:42:56 INSTANCE=prdb1 ELAPSED=20 STATUS=OK
00193 START=22:42:36 END=22:42:56 INSTANCE=prdb1 ELAPSED=20 STATUS=OK
00194 START=22:42:37 END=22:42:56 INSTANCE=prdb1 ELAPSED=19 STATUS=OK
00195 START=22:42:37 END=22:42:56 INSTANCE=prdb1 ELAPSED=19 STATUS=OK
00196 START=22:42:38 END=22:42:56 INSTANCE=prdb1 ELAPSED=18 STATUS=OK
00197 START=22:42:38 END=22:42:56 INSTANCE=prdb1 ELAPSED=18 STATUS=OK
00198 START=22:42:39 END=22:42:56 INSTANCE=prdb1 ELAPSED=17 STATUS=OK
00199 START=22:42:39 END=22:42:56 INSTANCE=prdb1 ELAPSED=17 STATUS=OK
00200 START=22:42:40 END=22:42:56 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00201 START=22:42:40 END=22:42:56 INSTANCE=prdb1 ELAPSED=16 STATUS=OK
00202 START=22:42:41 END=22:42:56 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00203 START=22:42:41 END=22:42:56 INSTANCE=prdb1 ELAPSED=15 STATUS=OK
00204 START=22:42:42 END=22:42:56 INSTANCE=prdb1 ELAPSED=14 STATUS=OK
00205 START=22:42:42 END=22:42:56 INSTANCE=prdb1 ELAPSED=14 STATUS=OK
00206 START=22:42:43 END=22:42:56 INSTANCE=prdb1 ELAPSED=13 STATUS=OK
00207 START=22:42:43 END=22:42:56 INSTANCE=prdb1 ELAPSED=13 STATUS=OK
00208 START=22:42:44 END=22:42:56 INSTANCE=prdb1 ELAPSED=12 STATUS=OK
00209 START=22:42:44 END=22:42:56 INSTANCE=prdb1 ELAPSED=12 STATUS=OK
00210 START=22:42:45 END=22:42:56 INSTANCE=prdb1 ELAPSED=11 STATUS=OK
00211 START=22:42:45 END=22:42:56 INSTANCE=prdb1 ELAPSED=11 STATUS=OK
00212 START=22:42:46 END=22:42:56 INSTANCE=prdb1 ELAPSED=10 STATUS=OK
00213 START=22:42:46 END=22:42:56 INSTANCE=prdb1 ELAPSED=10 STATUS=OK
00214 START=22:42:47 END=22:42:56 INSTANCE=prdb1 ELAPSED=9 STATUS=OK
00215 START=22:42:47 END=22:42:56 INSTANCE=prdb1 ELAPSED=9 STATUS=OK
00216 START=22:42:48 END=22:42:56 INSTANCE=prdb1 ELAPSED=8 STATUS=OK
00217 START=22:42:48 END=22:42:56 INSTANCE=prdb1 ELAPSED=8 STATUS=OK
00218 START=22:42:49 END=22:42:56 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00219 START=22:42:49 END=22:42:56 INSTANCE=prdb1 ELAPSED=7 STATUS=OK
00220 START=22:42:50 END=22:42:56 INSTANCE=prdb1 ELAPSED=6 STATUS=OK
00221 START=22:42:50 END=22:42:56 INSTANCE=prdb1 ELAPSED=6 STATUS=OK
00222 START=22:42:51 END=22:42:56 INSTANCE=prdb1 ELAPSED=5 STATUS=OK
00223 START=22:42:51 END=22:42:56 INSTANCE=prdb1 ELAPSED=5 STATUS=OK
00224 START=22:42:52 END=22:42:56 INSTANCE=prdb1 ELAPSED=4 STATUS=OK
00225 START=22:42:52 END=22:42:56 INSTANCE=prdb1 ELAPSED=4 STATUS=OK
00226 START=22:42:53 END=22:42:56 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00227 START=22:42:53 END=22:42:56 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00228 START=22:42:54 END=22:42:56 INSTANCE=prdb1 ELAPSED=2 STATUS=OK
00229 START=22:42:54 END=22:42:56 INSTANCE=prdb1 ELAPSED=2 STATUS=OK
00230 START=22:42:55 END=22:42:56 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00231 START=22:42:55 END=22:42:56 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00232 START=22:42:56 END=22:42:56 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★サービス影響解消
00233 START=22:42:56 END=22:42:56 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00234 START=22:42:57 END=22:42:57 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00235 START=22:42:57 END=22:42:57 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00236 START=22:42:58 END=22:42:58 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00237 START=22:42:58 END=22:42:58 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
データ・ソースがMDS(APサーバ#1、Webサーバ#1)の場合はSQLリクエスト・エラーが2件、リクエスト2回につき1回の割合で応答遅延が発生。応答時間の最長は32秒でノード・ダウン発生からサービス影響が解消するまでの時間が約30秒。
データ・ソースがAGL(APサーバ#2、Webサーバ#2)の場合はSQLリクエスト・エラーが6件、リクエスト応答時間の最長は53秒で障害発生からサービス影響が解消するまでの時間が約50秒。
また、AGLではノード・ダウン発生から約10秒後にSQLリクエスト・エラーや応答遅延は一旦見られなくなりますが30秒後経過したところでリクエストの応答が軒並み遅延しています。
DBサーバ停止に伴うSQLリクエスト・エラーや応答遅延については後で細かく見るとして問題はクライアントPCです。
クライアントPC(clientpc、データソース:MDS or AGL)SQLリクエスト疎通確認シェル実行ログ
(前略)
00119 START=22:42:00 END=22:42:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00120 START=22:42:00 END=22:42:00 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00121 START=22:42:01 END=22:42:01 INSTANCE=prdb2 ELAPSED=0 STATUS=OK
00122 START=22:42:01 END=22:42:01 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00123 START=22:42:02 END=22:42:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00124 START=22:42:02 END=22:42:02 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★DB#2 DOWN
00125 START=22:42:03 END=22:42:08 INSTANCE=none ELAPSED=5 STATUS=ERROR
00126 START=22:42:03 END=22:42:03 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00127 START=22:42:04 END=22:42:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00128 START=22:42:04 END=22:42:04 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00129 START=22:42:05 END=22:42:10 INSTANCE=none ELAPSED=5 STATUS=ERROR
00130 START=22:42:05 END=22:42:10 INSTANCE=none ELAPSED=5 STATUS=ERROR
00131 START=22:42:06 END=22:42:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00132 START=22:42:06 END=22:42:06 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00133 START=22:42:07 END=22:42:12 INSTANCE=none ELAPSED=5 STATUS=ERROR
00134 START=22:42:07 END=22:42:12 INSTANCE=none ELAPSED=5 STATUS=ERROR
00135 START=22:42:08 END=22:42:08 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00136 START=22:42:08 END=22:42:13 INSTANCE=none ELAPSED=5 STATUS=ERROR
00137 START=22:42:09 END=22:42:14 INSTANCE=none ELAPSED=5 STATUS=ERROR
00138 START=22:42:09 END=22:42:09 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00139 START=22:42:10 END=22:42:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00140 START=22:42:10 END=22:42:10 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00141 START=22:42:11 END=22:42:16 INSTANCE=none ELAPSED=5 STATUS=ERROR
00142 START=22:42:11 END=22:42:16 INSTANCE=none ELAPSED=5 STATUS=ERROR
00143 START=22:42:12 END=22:42:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00144 START=22:42:12 END=22:42:12 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00145 START=22:42:13 END=22:42:18 INSTANCE=none ELAPSED=5 STATUS=ERROR
00146 START=22:42:13 END=22:42:18 INSTANCE=none ELAPSED=5 STATUS=ERROR
00147 START=22:42:14 END=22:42:14 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00148 START=22:42:14 END=22:42:19 INSTANCE=none ELAPSED=5 STATUS=ERROR
00149 START=22:42:15 END=22:42:20 INSTANCE=none ELAPSED=5 STATUS=ERROR
00150 START=22:42:15 END=22:42:15 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00151 START=22:42:16 END=22:42:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00152 START=22:42:16 END=22:42:16 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00153 START=22:42:17 END=22:42:22 INSTANCE=none ELAPSED=5 STATUS=ERROR
00154 START=22:42:17 END=22:42:17 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00155 START=22:42:18 END=22:42:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00156 START=22:42:18 END=22:42:18 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00157 START=22:42:19 END=22:42:24 INSTANCE=none ELAPSED=5 STATUS=ERROR
00158 START=22:42:19 END=22:42:19 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00159 START=22:42:20 END=22:42:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00160 START=22:42:20 END=22:42:20 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00161 START=22:42:21 END=22:42:26 INSTANCE=none ELAPSED=5 STATUS=ERROR
00162 START=22:42:21 END=22:42:21 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00163 START=22:42:22 END=22:42:22 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00164 START=22:42:22 END=22:42:22 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00165 START=22:42:23 END=22:42:28 INSTANCE=none ELAPSED=5 STATUS=ERROR
00166 START=22:42:23 END=22:42:23 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00167 START=22:42:24 END=22:42:24 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00168 START=22:42:24 END=22:42:24 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00169 START=22:42:25 END=22:42:30 INSTANCE=none ELAPSED=5 STATUS=ERROR
00170 START=22:42:25 END=22:42:25 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00171 START=22:42:26 END=22:42:26 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00172 START=22:42:26 END=22:42:26 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00173 START=22:42:27 END=22:42:32 INSTANCE=none ELAPSED=5 STATUS=ERROR
00174 START=22:42:27 END=22:42:27 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00175 START=22:42:28 END=22:42:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00176 START=22:42:28 END=22:42:28 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00177 START=22:42:29 END=22:42:34 INSTANCE=none ELAPSED=5 STATUS=ERROR
00178 START=22:42:29 END=22:42:29 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00179 START=22:42:30 END=22:42:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00180 START=22:42:30 END=22:42:30 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00181 START=22:42:31 END=22:42:34 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00182 START=22:42:31 END=22:42:31 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00183 START=22:42:32 END=22:42:32 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00184 START=22:42:32 END=22:42:32 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00185 START=22:42:33 END=22:42:34 INSTANCE=prdb1 ELAPSED=1 STATUS=OK
00186 START=22:42:33 END=22:42:38 INSTANCE=none ELAPSED=5 STATUS=ERROR
00187 START=22:42:34 END=22:42:34 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00188 START=22:42:34 END=22:42:39 INSTANCE=none ELAPSED=5 STATUS=ERROR
00189 START=22:42:35 END=22:42:35 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00190 START=22:42:35 END=22:42:40 INSTANCE=none ELAPSED=5 STATUS=ERROR
00191 START=22:42:36 END=22:42:36 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00192 START=22:42:36 END=22:42:41 INSTANCE=none ELAPSED=5 STATUS=ERROR
00193 START=22:42:37 END=22:42:37 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00194 START=22:42:37 END=22:42:42 INSTANCE=none ELAPSED=5 STATUS=ERROR
00195 START=22:42:38 END=22:42:38 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00196 START=22:42:38 END=22:42:43 INSTANCE=none ELAPSED=5 STATUS=ERROR
00197 START=22:42:39 END=22:42:39 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00198 START=22:42:39 END=22:42:44 INSTANCE=none ELAPSED=5 STATUS=ERROR
00199 START=22:42:40 END=22:42:40 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00200 START=22:42:40 END=22:42:45 INSTANCE=none ELAPSED=5 STATUS=ERROR
00201 START=22:42:41 END=22:42:41 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00202 START=22:42:41 END=22:42:46 INSTANCE=none ELAPSED=5 STATUS=ERROR
00203 START=22:42:42 END=22:42:42 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00204 START=22:42:42 END=22:42:47 INSTANCE=none ELAPSED=5 STATUS=ERROR
00205 START=22:42:43 END=22:42:43 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00206 START=22:42:43 END=22:42:48 INSTANCE=none ELAPSED=5 STATUS=ERROR
00207 START=22:42:44 END=22:42:44 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00208 START=22:42:44 END=22:42:49 INSTANCE=none ELAPSED=5 STATUS=ERROR
00209 START=22:42:45 END=22:42:45 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00210 START=22:42:45 END=22:42:50 INSTANCE=none ELAPSED=5 STATUS=ERROR
00211 START=22:42:46 END=22:42:46 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00212 START=22:42:46 END=22:42:51 INSTANCE=none ELAPSED=5 STATUS=ERROR
00213 START=22:42:47 END=22:42:47 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00214 START=22:42:47 END=22:42:52 INSTANCE=none ELAPSED=5 STATUS=ERROR
00215 START=22:42:48 END=22:42:48 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00216 START=22:42:48 END=22:42:53 INSTANCE=none ELAPSED=5 STATUS=ERROR
00217 START=22:42:49 END=22:42:49 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00218 START=22:42:49 END=22:42:54 INSTANCE=none ELAPSED=5 STATUS=ERROR
00219 START=22:42:50 END=22:42:50 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00220 START=22:42:50 END=22:42:55 INSTANCE=none ELAPSED=5 STATUS=ERROR
00221 START=22:42:51 END=22:42:51 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00222 START=22:42:51 END=22:42:56 INSTANCE=prdb1 ELAPSED=5 STATUS=OK
00223 START=22:42:52 END=22:42:52 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00224 START=22:42:52 END=22:42:56 INSTANCE=prdb1 ELAPSED=4 STATUS=OK
00225 START=22:42:53 END=22:42:53 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00226 START=22:42:53 END=22:42:56 INSTANCE=prdb1 ELAPSED=3 STATUS=OK
00227 START=22:42:54 END=22:42:54 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00228 START=22:42:54 END=22:42:56 INSTANCE=prdb1 ELAPSED=2 STATUS=OK
00229 START=22:42:55 END=22:42:55 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00230 START=22:42:56 END=22:42:56 INSTANCE=prdb1 ELAPSED=0 STATUS=OK★サービス影響解消
00231 START=22:42:56 END=22:42:56 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00232 START=22:42:57 END=22:42:57 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
00233 START=22:42:57 END=22:42:57 INSTANCE=prdb1 ELAPSED=0 STATUS=OK
(後略)
なんとアプリのSQLリクエスト・エラーが大量に発生しています。
しかしこれ、軒並み”ELAPSED=5”となっていて、どう見てもロード・バランサ(LB)の設定に起因するエラーだよなぁ…。
AGL検証に時間をかけすぎてLBにどんな設定を入れたのかすっかり忘れていましたがLB構築の投稿を見返してみるとバックエンドからのサーバ応答時間に関するタイムアウト設定(timeout server)が5秒です。
【/etc/haproxy/haproxy.cfg(バックエンド・サーバ設定箇所抜粋)】
(前略)
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app_backend
# Distribute to another server when server connection fails.
option redispatch
retries 1
# Various timeout settings
# (timeout server sets the timeout for responses from the backend.
# The actual setting should be adjusted according to your system requirements.)
timeout connect 3s
timeout server 5s
timeout client 10s
timeout check 2s
(後略)
LBを構築した時点ではDBサーバ・ダウンによる応答遅延や結果がどうなるか分からなかったのでバックエンドの応答タイムアウトは短めに設定しましたが、この設定はどうも行き過ぎだった模様です。
検証結果だとDBサーバ・ダウン時のレスポンスは1分以内(MDS 32秒、AGL 53秒)、しかも応答遅延はあっても正常な結果が返されているわけですからこのタイムアウトの設定は5秒ではなくデフォルトの1分に修正します。
→ 2026/4/1 「ロード・バランサ構築(HAPtroxy+Keepalived)」の設定内容を修正
検証結果:SQLリクエスト・エラー
DBサーバ#2電源断により各サーバのSQLリクエスト疎通確認シェルの実行で発生したリクエスト・エラー件数(クライアントPCを除く)は以下の通りです。
| SQLリクエスト疎通確認シェル実行サーバ | データソース | SQLリクエスト・エラー件数 |
| APサーバ#1 Webサーバ#1 | MDS | 1 |
| APサーバ#2 Webサーバ#2 | AGL | 6 |
この結果だけだとぱっと見、MDSの方がAGLよりDBサーバ停止によるサービス影響が少なかったように見えるかもしれませんが別にそういうわけではないのでその点について少し触れておこうと思います。
データ・ソースは電源断によるDBサーバの停止をリアルタイムで検知することはできせん。そのためノード・ダウンから暫くの間、アプリの接続要求に対して正常ノードだけでなくダウン・ノードのセッションも選択してしまいます。
選択したセッションが過去10秒以内に使用されていなかった場合、データ・ソースはアプリに渡す前にセッションの接続テストを実行します。ダウン・ノードへの接続テストの結果は当然NGなのでデータ・ソースはさらに別のセッションを選択しなおします。この時点で接続プールには生存ノードのセッションしか残っていないので最終的にアプリは生存ノードにSQLリクエストを投入して正常な結果が返されます。
アプリの接続要求に対して選択したセッションが過去10秒以内に使用されていた場合、データ・ソースは接続テストを実行せずにアプリに渡してしまいます。ダウン・ノードへSQLリクエストを投入すればこれまた結果はNGなのでアプリにはエラーが返されます。
要は今回の検証でMDSよりAGLの方がSQLリクエスト・エラー件数が多かったのはそれだけAGLが多くセッションを使用してSQLリクエストを処理していたというだけの話です*1。
しかもコレ、あくまでこの検証に限った話なんですよね。
本番システムの特に稼働ピーク時には多数のクライアントからのリクエストでいろんなアプリがいろんなSQLをパラレルかつ間断なくガンガンDBに飛ばします。MDSだろうがAGLだろうが使用済みセッションの本数は状況次第でいくらでも変わります。
DBサーバ停止を伴うノード・ダウンが起きればどれだけのSQLリクエストがエラーとなるかは乱暴に言えば運次第ですからこの検証で発生したSQLリクエスト・エラーの件数を見て「AGLダメじゃん」とか「MDSスゲー」というわけではありません、というのがこのお話のまとめです。
*1:データ・ソースはアプリの接続要求に対して最後にアクティブ化されたセッションを優先的に割り当てており、このアクティブ化にはセッションの生成も含まれます。AGLはノード間で接続調整を行うので一定時間に使用するセッション数がMDSより多くなりがちです。また、MDSはラウンド・ロビン構成なのでノード間でSQLリクエストの振り分けが分散されますがAGLはRCLBによる調整で短時間に区切られた片ノードへのSQLリクエストの集中が発生しており、これもAGLの使用セッション数はMDSより多くなる要因となっています。
*2「AGLダメじゃん」:最初に検証結果を見た時、脊髄反射的にそう思ってしまいました。AGLゴメンな
検証結果:リクエストの応答時間とサービス影響解消時間
DBとクライアント間のソケット通信は電話の通話に例えられることが良くあります。そして電源断によるDBサーバの停止(というかシャットダウンを踏まない突発的な停止)は架電先の相手が受話器を握りしめたまま急にばったり倒れてしまったようなもので、こちらから何を問いかけてもまったく応答がない。受話器はウンともスンとも言わないけれど電話はつながったままだからこちらから切るに切れずひたすら相手の応答を待つ状況です。
しかしいくら待っても応答が戻るわけじゃありませんからいつかは踏ん切りをつけて通話を終了しなくちゃならないわけで今回の検証ではその踏ん切りの付け方が以下2パターンです。
- データ・ソースに設定された接続テストのタイムアウトによる強制終了
- データ・ソースがノード障害を検知したことによるセッションの強制削除
このときDBからの応答を待機したSQLリクエストがアプリのSQLであればアプリにエラーが、データ・ソースによる接続テストのSQLであればデータ・ソースにエラーが戻されるのは上に書いた通りです。
で、相手の応答を待っていた時間がSQLリクエストの応答時間に反映され、データ・ソースが障害発生からこれを検知するまでの時間がサービス影響解消時間に反映されることになるわけです。
MDSではアプリのSQLリクエストの最長応答時間とノード障害によるサービス影響解消時間が約30秒、AGLでは最長応答時間とサービス影響解消時間が約50秒でした。
私は当初、MDSでは配下の汎用DSが「接続予約のタイムアウト(10秒)」と「フラッシュされるまでのテストの失敗数(2回)」でノード障害を検知、MDSがダウン・ノードへのSQLリクエストの振り分けを停止するとともに同ノードのセッションを削除しているものと考えていました。
ところが「接続予約のタイムアウト」を10秒から15秒に増加して再検証すると最長応答時間は約45秒まで伸びるのにサービス影響解消時間は30秒のまま変わりません。障害ノード復旧時の接続再作成も汎用DSではなくMDS側でやっていますのでおそらくMDSではノード・ダウン発生から30秒で障害を検知する機能を実装しているんではなかろうかと。
一方、AGLの53秒というのはGeminiさん曰くRACの生存ノードがDBサーバ#2の停止を検知してAGLにFANイベントを飛ばすまでに掛った時間ではないかということです。
まあこれはたぶんその通りで問題ありませんが、AGLで気になるのはノード・ダウン発生後のSQLリクエストの振り分けです。
AGLではノード・ダウン発生から約10秒でSQLリクエストの振り分けをDBサーバ#1に片寄せ、ノード・ダウン発生から30秒経過すると今度は逆のDBサーバ#2に片寄せしています。私は最初、この挙動を偶然かとも思ったのですが再検証を繰り返してもこのリクエストの振り分けは変わりません。つまりこれは仕様による挙動です。
どうもAGLはノード・ダウン発生から10秒でこれを検知してダウン・ノードへのSQLリクエストの振り分けを停止するものの、「ダウン・ノードの稼働 < 生存ノードの稼働 」と勘違いしたDB側のロード・バランシング・アドバイザ(LBA)がダウン・ノードにリクエストを振り分けるアドバイスを送ってきたらそれに従ってしまうという、とてもマヌケなことをやらかしているんじゃないかと私は思うんですが、実際のところどうなんでしょうかね?
検証結果のまとめ
以下、PDB、DBインスタンス、DBサーバ各層の障害パターンを一通りやった検証結果のまとめです。
PDB停止、DBインスタンス障害(クラッシュ)ではMDS、AGLともサービス影響なしか、あってもごく軽微で機能面の差はほとんどありません。明確に差が出たのはDBサーバ障害(電源断)のパターンだけでした。
【ノード障害検証まとめ:データ・ソース別サービス影響】
| 障害パターン | データ・ソース:MDS (APサーバ#1、Webサーバ#1) | データ・ソース:AGL (APサーバ#2、Webサーバ#2) |
| PDB停止 | サービス影響なし | サービス影響なし |
| DBインスタンス停止 (クラッシュ) | ・障害によるサービス影響解消は即時 ・障害発生直後のSQLリクエストはエラー | ・障害によるサービス影響解消は即時 ・障害発生直後のSQLリクエストはエラー |
| DBサーバ停止 (電源断) | ・障害によるサービス影響解消時間約30秒 ・サービス影響解消までSQLリクエストのエラーや応答遅延発生 | ・障害によるサービス影響解消時間約50秒 ・サービス影響解消までSQLリクエストのエラーや応答遅延発生 |
このケースではMDSよりAGLの方がノード・ダウンによるSQLリクエスト・エラーの件数は多かったわけですがDBサーバ停止によるSQLリクエスト・エラーの多寡は障害発生時点におけるセッションの使用状況次第なのでMDSとAGLの優劣を判断する材料にはなりません。
となると評価のポイントはDBサーバ障害によるサービス影響をどちらが早く解消できるかでしてこれがMDSは約30秒でAGLは約50秒。AGLよりもMDSの方が優れています。とはいえMDSもAGLもサービス影響の解消は障害発生から1分以内ですからどちらのデータ・ソースも回復性能は非常に優秀であってAGLがダメだという話ではまったくありません。
ただ、AGLについて一言いわせていただくとDB停止から30秒後に(たぶんLBAの勘違いで)SQLリクエストをダウン・ノードに全振りしてしまうというアホなことさえしなければ激っぱやでサービス影響は可使用できていたわけですからこの点残念でなりません。AGLがノードに異変を感じて対向ノードにリクエストを偏らせた場合は次回に受信したLBAのアドバイスを無視するだけでこのアホな挙動を回避できるわけですからこの点なんとかしてくれたらうれしいなあ、と思います。
あと、ついでに言わせてもらえばAGLによるセッションの動的な調整は廃止、あるいは調整をデフォルトではなくオプションとしていただきたいところです。なまじこの調整をアテにするぐらいなら調整は一切せずノード障害が起きてもクライアントのリクエストを賄えるだけのセッションを最初から各ノードに確保しておく方がはるかにマシ。そもそも稼働中にノードのセッション数が増減することを前提としてキャパシティ設計しているシステムってあるんですかね? まあ世の中にはいろんなシステムが存在するのでそんなシステムもあるかもしれませんけど私は一度もお目にかかったことがありません、
前回のAGL検証でもこの調整によってノード間のセッション数に異常な偏りが生じたりしていますので私の個人的な意見としてはAGLのセッション調整機能にメリットどころかデメリットしか感じません。
まあとりあえず、ノード障害によるMDS・AGLの挙動やサービス影響の確認、ついでにLB設定の問題点も修正できたのでDBノード障害の検証はここまでにしたいと思います。
終わりに
ずいぶん時間が掛ってしまいましたがなんとかWeb-AP-DB連携の検証(Web出番なし)が終わったのでようやく次はOEM、と思ったらいつの間にやらOTNのダウンロード・ページにOracle 26aiの開発者ライセンス版が(WebLogicも15.1.1.0が出てますね)。
OEMの構築後にDBを構築しなおすとエージェント登録が二度手間になったりするので先にOracle 21cからOracle26aiへの入れ替えをやってしまおうと思います。ということで次はDBサーバ構築(Oracle 26ai版)で行きます。
Web-AP-DB連携検証 関連ページ
Web-AP-DB連携検証1(Active GridLink)
Web-AP-DB連携検証2(DBノード障害)
サイト内リンク一覧
ネットワーク構築
管理用ネットワーク構築
仮想ルータ構築 1(構成概要、OSインストール)
仮想ルータ構築 2(vyos設定)
仮想ルータ構築 3(vyos・open-vm-tools)
本番サイト構築
本番サイト構築
本番サイト・管理サーバ構築
管理サーバ構築 1(chrony、named)
管理サーバ構築 2(Pacemaker、NFS Server)
本番サイト・DBサーバ構築
DBサーバ構築 1(全体構成)
DBサーバ構築 2(OSインストール、ストレージ(vmdisk)構成)
DBサーバ構築 3(Oracle RACインストール環境構築)
DBサーバ構築 4 (Grid Infra21cインストール)
DBサーバ構築 6(Oracle DB 2ノードRAC構築)
DBサーバ構築 7(Oracle RAC ノード追加)
本番サイト・APサーバ構築
APサーバ構築 1(Weblogicインストール)
APサーバ構築 2(WebLogicドメイン構築)
APサーバ構築3(JDBC接続)
APサーバ構築 4(DB接続確認用アプリ作成)
APサーバ構築 5(アプリ・デプロイ)
APサーバ構築 6(本番モード切替)
本番サイト・Webサーバ構築
Webサーバ構築(Apache + WLS Proxy Plug-in)
本番サイト・ロードバランサ構築
ロード・バランサ構築(HAPtroxy+Keepalived)
Web-AP-DB連携検証
Web-AP-DB連携検証1(Active GridLink)
Web-AP-DB連携検証2(DBノード障害)
参考情報
Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理, 14c (14.1.2.0.0)

コメント