ページの先頭行へ戻る
Symfoware Server V12.7.0 データベース二重化導入運用ガイド
FUJITSU Software

B.3.4 Symfoware Serverの操作に対する実行抑止について

Symfoware Serverの操作からDBミラーリングシステムの運用の対象資源を保護する、実行抑止について説明します。

B.3.4.1 実行抑止とは

DBミラーリングシステムでは、利用者が誤ったSymfoware Serverの操作を行った場合、運用の対象資源を破壊しないように、実行を抑止します。たとえば、副系ノードで業務アプリケーションからデータを誤って更新することによる正系ノードとのデータ不整合などです。
この実行抑止の状態では、RLPを作成しているロググループ単位に属するDSIまたは順序に対して、RDBコマンドや業務アプリケーションから以下の操作を行った場合にエラーとなります。なお、一時表はDBミラーリングシステムの二重化対象資源でないため、一時表に対する操作は、利用規定の対象となりません。

参照

B.3.4.2 実行抑止の設定と解除

RDBコマンドや業務アプリケーションの操作に対する実行抑止の状態は、RLPのオンライン・オフライン状態や実行するSymfoware/RDBの操作によって決定されます。
実行抑止の状態か否かは、rdbbcdcuコマンドにより取得したRLPのオンライン・オフライン状態およびオンラインモードと、実行する操作の関係により実行抑止状態かどうかを判断してください。

これらの関係については、“B.3.4.3 RLPの状態とRDBコマンドおよび業務アプリケーションの操作ごとの実行抑止の関係”を参照してください。


RLPのオンライン・オフライン状態は、以下のコマンドにより変化します。

各コマンド実行後のRLPの状態を、以下に示します。

表B.11 コマンド実行後のRLPの状態(主系)

コマンド名

オプション

RLPの状態(主系)

補足

dxsvstartコマンド

-c

オンライン(複写元)

  

-r

オンライン(複写先)

  

dxsvstopコマンド

なし

オフライン(切替え)

正系ノードで実行し、両ノードで左記の状態となります。

-mc

-r

変化なし

コマンド実行前の状態と同じです。

-m

オフライン(休止)

  

-term

オフライン(終了)

  

-term -c

dxswitchコマンド

なし

オンライン(複写元)

正系ノードのSymfoware/RDBは自動または手動により停止し、副系ノードのRLPは左記のように変化します。

-n

オンライン(複写元)

-force

オフライン(終了)

dxdcustop

-term

オフライン(終了)

該当ロググループのみ

なお、DCUの定義後、dxsvstartコマンド実行までの間、RLPはオフライン(初期状態)となります。

ポイント

RLPがオンライン状態でrdbstopコマンドを実行し、Symfoware/RDBを停止しても、RLPの状態は変化しません。
ただし、データベースサーバの運用の状態は、オフラインとなります。

参照

  • RLPの状態については“F.2 RLPの状態”を参照してください。

  • dxsvstartコマンド、dxsvstopコマンド、dxswitchコマンド、および、dxdcustopコマンドの詳細は、“コマンドリファレンス”を参照してください。

  • rdbstopコマンドの詳細は、“コマンドリファレンス”を参照してください。

B.3.4.3 RLPの状態とRDBコマンドおよび業務アプリケーションの操作ごとの実行抑止の関係

RLPの状態による、RDBコマンドおよび業務アプリケーションの操作ごとの実行抑止状態について、以下の表に示します。
実行抑止の状態で以下の操作を行うと、RDBコマンドおよび業務アプリケーションがエラーになります。

表B.12 RDBコマンドおよび業務アプリケーションの操作ごとの実行抑止状態

システム

RLPの状態

RDBコマンドおよび業務アプリケーションの操作

DSIのデータを更新する操作(RERUNログを取得)

DSIのデータを更新する操作(RERUNログを取得しない)(注1)

順序番号を生成する操作

DSIおよび順序に対するデータベースの定義変更操作

DSIを初期化する操作(注2)

正系ノード

オンライン

×

×

オフライン

初期状態

×

×

休止

×

×

×

×

×

切替え

×

×

終了

副系ノード

オンライン

×

×

×

×

×

オフライン

初期状態

×

×

休止

×

×

×

×

×

切替え

×

×

終了

○:実行可能な状態
×:実行抑止の状態(RDBコマンドおよび業務アプリケーションがエラーになる)

注1) rdbsloaderコマンド、rdbsuloaderコマンド、rdbsaloaderコマンド、およびsオプション指定のrdbalidxコマンド
注2) rdbfmtコマンド

注意

上記の表のオフラインの説明では、DCUを構成するRLPのうち、主系RLPについて説明しています。なお従系のRLPは、実行抑止には関係しません。

B.3.4.4 DSIのデータを更新する操作

実行抑止の対象操作となるDSIのデータを更新する操作について示します。なお、本操作は大きく以下の2つに分類されます。

RERUNログを取得する操作

実行抑止の対象となるRERUNログを取得する操作には、RDBコマンドと業務アプリケーションによるSQL文があります。

実行抑止の対象となるRDBコマンド

以下のRDBコマンドを実行した場合に実行抑止の対象になります。

参照

rdbuptコマンドおよびrdbexecsqlコマンドの詳細は、“コマンドリファレンス”を参照してください。

実行抑止の対象となるSQL文

以下のSQL文を業務アプリケーションより発行した場合、実行抑止の対象になります。

表B.13 実行抑止の対象となるRERUNログを取得するSQL文

分類

SQL文

備考

データベース操作系

データ操作文

DELETE文:探索

  

UPDATE文:探索

  

DELETE文:位置づけ

  

UPDATE文:位置づけ

  

INSERT文

  

動的SQL文

動的DELETE文:位置づけ

  

動的UPDATE文:位置づけ

  

準備可能動的DELETE文:位置づけ

  

準備可能動的UPDATE文:位置づけ

  

EXECUTE文,
EXECUTE IMMEDIATE文

動的SQL文として、データ操作文を発行した場合

ストアドプロシジャ

プロシジャルーチンで定義したSQL文が上記のデータ操作文の場合

CALL文により左記のストアドプロシジャを実行した場合

トリガ

被トリガSQL文が上記のデータ操作文の場合

左記の被トリガSQL文が動作した場合

参照

各SQL文の詳細は、“SQLリファレンス”を参照してください。

RERUNログを取得しない操作

実行抑止の対象となるRERUNログを取得しない操作には、RDBコマンドがあります。

実行抑止の対象となるRDBコマンド

以下のRDBコマンドを実行した場合に実行抑止の対象になります。

  • rdbsloaderコマンド

  • rdbsaloaderコマンド

  • rdbsuloaderコマンド

参照

各RDBコマンドの詳細は、“コマンドリファレンス”を参照してください。

B.3.4.5 順序番号を生成する操作

実行抑止の対象となる順序番号を生成する操作には、RDBコマンドと業務アプリケーションからの順序番号の生成操作があります。

実行抑止の対象となるRDBコマンド

以下のRDBコマンドを実行した場合に実行抑止の対象になります。

なお、rdbexecsqlコマンドおよびrdbunlsqlコマンドは、“実行抑止の対象となるSQL文”を発行した場合に、実行抑止の対象になります。
また、rdbsloaderコマンド、rdbsaloaderコマンド、rdbsuloaderコマンド、およびrdbuptコマンドの場合には、表の既定値として順序番号を補うような操作を実行した場合に、実行抑止の対象になります。

注意

順序定義に指定した割当順序数指定“CACHE”の値によっては、実行抑止の状態でも、RDBコマンドおよび業務アプリケーションによる順序番号の生成の操作が継続できることがあります。この場合、正系ノードおよび正系ノードでの順序番号の整合性は保証されているため、DBミラーリングシステムの運用には問題ありません。

参照

各RDBコマンドの詳細は、“コマンドリファレンス”を参照してください。

実行抑止の対象となるSQL文

順序番号を生成するSQL文を業務アプリケーションより発行した場合に実行抑止の対象になります。
順序番号を生成するSQL文とは、SQL文中に順序のNEXTVALとCURRVALを指定したり、表の既定値として順序番号を補うようなSQL文を示します。

参照

順序番号の生成が可能なSQL文については、“SQLリファレンス”を参照してください。

B.3.4.6 DSIおよび順序に対するデータベースの定義および変更操作

実行抑止の対象となるDSIおよび順序に対するデータベースの定義および変更を行う操作について示します。なお、以下の方法により、データベースの定義および変更操作を行った場合に実行抑止の対象になります。

準備モードでのデータベースの定義変更について

rdbddlexコマンドまたはrdbddlfixコマンドによる定義情報の変更の準備を行う場合には、定義文によって実行不可状態のエラーとなる契機が異なります。

表B.15 準備モードでのデータベース定義変更における実行不可状態のエラー契機

SQL文(データベースの定義および変更操作文)

操作

エラーの契機

CREATE DSI

表のDSI定義文

rdbddlfixコマンド(aオプション)実行時

インデックスのDSI定義文

ALTER TABLE

表定義変更文(列定義追加)

rdbddlexコマンド(lオプション)実行時

参照

  • 各RDBコマンドの詳細は、“コマンドリファレンス”を参照してください。

  • 各SQL文の詳細は、“SQLリファレンス”を参照してください。

  • 準備モードでのデータベースの定義変更については、“RDB運用ガイド”を参照してください。

B.3.4.7 DSIを初期化する操作

以下のRDBコマンドを実行した場合に実行抑止の対象になります。

上記のコマンドはRERUNログを取得します。

参照

rdbfmtコマンドの詳細は、“コマンドリファレンス”を参照してください。

B.3.4.8 実行抑止対象のSymfoware Serverの操作が実行中の場合のオンライン・オフライン操作について

dxsvstartコマンドやオプションを省略したdxsvstopコマンドでRLPのオンライン・オフライン操作を行う時点で、RDBコマンドまたは業務アプリケーションが実行中の場合、コマンドはエラーになります。なお、実行中とは以下を示します。

RDBコマンドの場合

RDBコマンドの処理中は実行中とみなします。RDBコマンドの終了を待ってから、オンライン・オフライン操作を再実行します。

注意

dxsvstartコマンドやdxsvstopコマンドなどでRLPのオンライン・オフライン操作を行うコマンドと、実行抑止対象のRDBコマンドが同時に実行された場合、実行抑止対象のRDBコマンドが異常終了する場合があります。

業務アプリケーションの場合

業務アプリケーションにより、RLPを作成しているロググループ単位に属するDSIまたは順序に対して、実行抑止対象のSQL文(データベースの定義および変更操作も含む)を発行した場合、本業務アプリケーションのコネクションが存在する間は実行中と見なし、DBミラーリングサービスの開始、またはDBミラーリングサービスの停止操作がエラーになります。
その場合には、これらの業務アプリケーションのコネクションをいったん停止してから、DBミラーリングサービスの開始、またはDBミラーリングサービスの停止操作を再実行します。

注意

  • Symfoware Serverにコネクションを接続している場合は、アプリケーションまたはアプリケーションサーバを停止してください。

  • dxsvstartコマンドやdxsvstopコマンドなどでRLPのオンライン・オフライン操作を行うコマンドと、実行抑止対象の業務アプリケーションの操作が同時に実行された場合、実行抑止対象の業務アプリケーションの操作が異常終了する場合があります。

  • dxsvstopコマンドのmcオプションは、アプリケーションサーバ経由で実行中の業務アプリケーションがある場合はそのコネクションを強制切断し、DBミラーリングサービスを通常停止します。