Symfoware/RDBでは、業務ノンストップでのバックアップデータの取得や再編成を行うことができます。
バックアップデータの取得の方法については、“4.4.8 DSIのバックアップ”を参照してください。
本節では、データベースの再編成を行うために、特定のDSIをオンライン業務から切り離す方法について説明します。
特定DSIを切り離す方法には、以下の方法があります。
DSIの動的切離し
動作環境ファイルによるDSIの切離し
特定のDSIを運用中に動的に切り離す方法について説明します。
rdbexdsiコマンドのmonオプションにより、指定したDSIをシステムで動作するすべてのアプリケーションのデータ操作の範囲から切り離すことができます。
DSIの切離しが有効になったかの確認は、rdbexdsiコマンドのmcオプションにより行います。
参照
rdbexdsiコマンドの指定方法の詳細については、“コマンドリファレンス”を参照してください。
DSIの動的切離しの例を以下に示します。
注意
DSIの動的切離しの情報は、Symfoware/RDBの停止後は引き継がれません。
DSIの切離し状態の確認は、rdbexdsiコマンドのmcオプションで行います。
DSIの切離し状態の表示例を以下に示します。
$ rdbexdsi -mc RDBII rdbexdsi DATE:2007/04/14 TIME:11/20/35 Exclusion DSI Information (1) DSI 在庫管理DB.在庫表DSI1 Transaction Information (2) (3) (4) Status Pid Name Accept 23045 APL001/CONNECT1 :
(1) 切り離したDSIのデータベース名およびDSI名
(2) 切離し状態 Accept : 切離しは有効 Non-Accept : 切離しは有効ではない
(3) プロセスID
(4) モジュール名 - RDB構成パラメタファイルのRDBCLIENTINFにADDRESSを指定した場合、または省略した場合 システム内通信のアプリケーション: アプリケーションロードモジュール名/コネクション名 (アプリケーションロードモジュール名が15バイトを超える場合は、 先頭の15バイトのみが出力されます。) トランザクションモニタ配下のアプリケーション: データベース名/コネクション名 (トランザクションモニタ配下のアプリケーションのデータベー ス名/コネクション名は、OPEN-INFO文字列に指定された値を表示 します。) リモートアクセスのアプリケーション: 接続端末のIPアドレス/コネクション名
- RDB構成パラメタファイルのRDBCLIENTINFにNAMEを指定した場合 システム内通信のアプリケーション: アプリケーションロードモジュール名/コネクション名 (アプリケーションロードモジュール名が15バイトを超える場合は、 先頭の15バイトのみが出力されます。) トランザクションモニタ配下のアプリケーション: データベース名/コネクション名 (トランザクションモニタ配下のアプリケーションのデータベー ス名/コネクション名は、OPEN-INFO文字列に指定された値を表示 します。) リモートアクセスのアプリケーション: 接続端末のホスト名/コネクション名
DSIの切離しは、アプリケーションのトランザクションの切れ目に有効となります。切離し処理を実行した時点で実行中だったトランザクションについては、DSIの切離しは有効にはなりません。この場合、rdbexdsiコマンドのmwオプションにより、切離しが有効になったことを確認してください。mwオプションを指定すると、rdbexdsiコマンドのuオプションに指定したユーザIDでSymfoware/RDBにコネクションを接続しているアプリケーションとDSIの切離しが有効となった時点で、rdbexdsiコマンドの処理が終了します。
注意
rdbexdsiコマンドのユーザID指定および、ユーザID省略を併用する場合、以下の注意事項があります。
すべてのユーザに対してDSIを除外した状態で以下の操作はできません。
特定のユーザに対してDSIを除外
特定のユーザに対してDSIの除外を解除
操作ができないコマンド例その1
$ rdbexdsi -mon -i 在庫管理DB.在庫表DSI1 (1) $ rdbexdsi -mon -u user1 -i 在庫管理DB.在庫表DSI1 (2)
(1) すべてのユーザに対してDSIを除外
(2) 特定のユーザに対してDSIを除外
操作ができないコマンド例その2
$ rdbexdsi -mon -i 在庫管理DB.在庫表DSI1 (1) $ rdbexdsi -moff -u user1 -i 在庫管理DB.在庫表DSI1 (2)
(1) すべてのユーザに対してDSIを除外
(2) 特定のユーザに対してDSIの除外を解除
特定のユーザに対してDSIを除外した状態で以下の操作はできません。
すべてのユーザに対してDSIを除外
すべてのユーザに対してDSIの除外を解除
操作ができないコマンド例その3
$ rdbexdsi -mon -u user1 -i 在庫管理DB.在庫表DSI1 (1) $ rdbexdsi -mon -i 在庫管理DB.在庫表DSI1 (2)
(1) 特定のユーザに対してDSIを除外
(2) すべてのユーザに対してDSIを除外
操作ができないコマンド例その4
$ rdbexdsi -mon -u user1 -i 在庫管理DB.在庫表DSI1 (1) $ rdbexdsi -moff -i 在庫管理DB.在庫表DSI1 (2)
(1) 特定のユーザに対してDSIを除外
(2) すべてのユーザに対してDSIの除外を解除