dbfhadmin コマンド ライン ユーティリティの例

CAS プロセス

異常終了後にエラーになっている可能性があるエンタープライズ サーバー プロセスを確認し、それらのプロセスを回復するには、次のコマンドを使用します。

  • 次のコマンドは、svr-mydb データベース サーバー インスタンスのまだ実行中の CAS プロセスをリストします。
    dbfhadmin -casprocess -list -usedb:svr-mydb

    このコマンドは、各エンタープライズ サーバー プロセスの名前、ホスト名、プロセス ID、リージョン名、最後のハートビート時間、およびステータスを含む次のようなテーブルを返します。

    Status  Host      Region    Region Id  H/B (s)  Name    PID    TID
    ------  ----      ------    ---------  -------  ----    ---    ---
    Ok      svr-mydb  ESDEMODB  ESDEMODB   0        cassi   1780   812
    Ok      svr-mydb  ESDEMODB  ESDEMODB   0        cassi   9140   28524
    Ok      svr-mydb  ESDEMODB  ESDEMODB   1        casmgr  10204  19392
    Ok      svr-mydb  ESDEMODB  ESDEMODB   0        cassi   19324  28792
    Ok      svr-mydb  ESDEMODB  ESDEMODB   2        castsc  19840  29036
    Ok      svr-mydb  ESDEMODB  ESDEMODB   1        cassi   26048  26300

    プロセスが停止するか、リージョン間データベースへの接続が 10 秒以上失われた場合、ステータスに 'in doubt' と示されます。'in doubt' の場合、関連付けられたリソース ロック (ENQ) が未処理のまま残っている可能性があります。

  • 次のコマンドは、ホスト MYHOST の svr-mydb データベース サーバー インスタンスのまだ実行中の CAS プロセスをリストします。
    dbfhadmin -casprocess -list -usedb:svr-mydb -host:MYHOST
    警告: 以下のコマンドを使用してリソース ロックの DEQ を強制的に行う場合は、慎重に行ってください。関連付けられている ES リージョンが実際に停止していること、あるいはリージョン間データベース接続が失われていることを確認する必要があります (ES の回復処理で検出されるはずなのでまずありませんが、リージョンが停止していない場合は、プロセスがまだ実行されているかどうかも確認します)。このコマンドで削除されるのは、特定のプロセスに明示的に関連付けられている ENQ です。
  • 次のコマンドは、svr-01 の svr-mydb データベース サーバー インスタンスのプロセス ID 12345 の CAS プロセスを回復します (すべての ENQ の DEQ が行われます)。
    dbfhadmin -casprocess -recover -usedb:svr-mydb -host:svr-01 -pid:12345
  • 次のコマンドは、svr-01 の svr-mydb データベース サーバー インスタンスのすべての CAS プロセスを回復します。
    dbfhadmin -casprocess -recover -usedb:svr-mydb -host:svr-01

データベース作成

スクリプト ファイルからデータベースを作成するには、次のコマンドを使用します。これらのコマンドを事前に実行することにより、アクセスが必要でデータベースがまだ作成されていないときに処理が遅延することがなくなります。

  • 次のコマンドは、mydb.sql スクリプト ファイルを実行して ANSI 形式の MSSQL データストア データベースを作成します。
    dbfhadmin -createdb -file:mydb.sql -type:datastore -provider:ss
  • 次のコマンドは、mydb.sql スクリプト ファイルを実行して EBCDIC 形式の Db2 データストア データベースを作成します。
    dbfhadmin -createdb -file:mydb.sql -type:datastore -provider:db2 -ebcdic
  • 次のコマンドは、myregdb.sql スクリプト ファイルを実行して既存の MYORADB データベースに Oracle リージョン データベースを作成します。
    dbfhadmin -createdb -file:myregdb.sql -type:region -provider:ora -existdb:MYORADB
    注: Micro Focus では、-existdb の値は tnsnnames.ora 構成ファイルで指定されている対応する接続名にすることをお勧めします。
  • 次のコマンドは、mypgdb.sql スクリプト ファイルを実行して MYREMOTEHOST サーバー/ポートに PostgreSQL データストア データベースを作成します。
    dbfhadmin -createdb -file:mypgdb.sql -type:datastore -provider:pg -host:MYREMOTEHOST -port:33445

データ ファイル

エンタープライズ サーバーの異常終了後にまだ開いているデータ ファイルを確認し、それらのファイルを回復/解放するには、次のコマンドを使用します。索引キーのカラム型を管理するためのコマンドもいくつかあります。

  • 次のコマンドは、svr-mydb でホストされている VSAM データストアのまだ開いているデータ ファイルをリストします。それぞれのファイルに、関連付けられたリソース ロックが未処理のまま残っている可能性があります。

    dbfhadmin -openfiles -list -datastore:sql://svr-mydb/VSAM -host:svr-01
    警告: 次の 2 つのコマンドはファイルを強制的に閉じるため、使用する際は注意が必要です。関連付けられたファイルを閉じる場合は、その前に関連付けられたホストでプロセスが実行されていないことを必ず確認してください。
  • 次のコマンドは、svr-mydb でホストされている VSAM データストアのまだ開いているデータ ファイルについて、ファイルを閉じてから、すべてのプロセスの関連付けられているレコード ロックを削除することで、それらのファイルを回復します。
    dbfhadmin -openfiles -recover -datastore:sql://svr-mydb/VSAM -host:svr-01
  • 次のコマンドは、上記のコマンドと似ていますが、svr-mydb でホストされている VSAM データストアの指定されたプロセス (5983) の関連付けられているレコード ロックを削除します。
    dbfhadmin -openfiles -recover -datastore:sql://svr-mydb/VSAM -host:svr-01 -pid 5983
  • 次のコマンドは、MYFILE.dat ファイルの主キーのカラム型を英数字、最初の代替キーのカラム型を符号付き COMP-X として指定します。
    dbfhadmin -keytypes -add -file:sql://svr-mydb/VSAM/MYFILE.dat -types:AN,SCOMPX
  • 次のコマンドは、指定されたデータ ファイルの既存のキー タイプを置き換えます。
    dbfhadmin -keytypes -add -replace -file:sql://svr-mydb/VSAM/MYFILE.dat -types:AN,SCOMPX
  • 次のコマンドは、MYFILE.dat に指定されているキー タイプを削除し、索引キーのカラム型を BINARY に戻します。
    dbfhadmin -keytypes -delete -file:sql://svr-mydb/VSAM/MYFILE.dat
  • 次のコマンドは、VSAM データストアのキー タイプのリストを MYKEYTYPES.xml ファイルにエクスポートします。

    dbfhadmin -keytypes -export:MYKEYTYPES.xml -datastore:sql://svr-mydb/VSAM
  • 次のコマンドは、VSAM データストアに MYKEYTYPES.xml ファイルからキー タイプのリストをインポートします。
    dbfhadmin -keytypes -import:MYKEYTYPES.xml -datastore:sql://svr-mydb/VSAM
  • 次のコマンドは、VSAM データストアに MYKEYTYPES.xml ファイルからキー タイプのリストをインポートし、ファイル内のタイプに対応する既存のタイプを置き換えます。
    dbfhadmin -keytypes -import:MYKEYTYPES.xml -datastore:sql://svr-mydb/VSAM -replace
  • 次のコマンドは、データストア内の各データ ファイルに設定されているキー タイプをリストします。
    dbfhadmin -keytypes -list -datastore:sql://svr-mydb/VSAM

スクリプト ファイル作成

データベースの作成に使用できるスクリプト ファイルを作成するには、次のコマンドを使用します。

  • 次のコマンドは、Db2 リージョン間データベースを作成するためのスクリプト ファイル (createdb.sql) を作成します。
    dbfhadmin -script -type:crossregion -provider:db2 -file:createdb.sql
  • 次のコマンドは、SYSTEM_1252_US Windows 照合順序を使用する Db2 リージョン間データベースを作成するためのスクリプト ファイル (createdb.sql) を作成します。
    dbfhadmin -script -type:crossregion -provider:db2 -file:createdb.sql -collate:SYSTEM_1252_US
  • 次のコマンドは、MYFILES という名前の PostgreSQL データストアを作成するためのスクリプト ファイル (createdb.sql) を作成します。
    dbfhadmin -script -type:datastore -name:MYFILES -provider:pg -file:createdb.sql
  • 次のコマンドは、ESDEMO という名前の MSSQL リージョン データベースを作成するためのスクリプト ファイル (createdb.sql) を作成します。
    dbfhadmin -script -type:region -name:ESDEMO -provider:ss -file:createdb.sql
  • 次のコマンドは、mySEQ という名前の Db2 データストアを作成して masterSEQDB という名前の既存の Db2 データベースに格納するためのスクリプト ファイル (createinmydb.sql) を作成します。
    dbfhadmin -script -type:datastore -name:mySEQ -provider:db2 -file:createinmydb.sql -existdb:masterSEQDB
  • 次のコマンドは、MYFILES という名前の Oracle データストアを作成して既存の Oracle データベースに格納するためのスクリプト ファイル (create_datastore_MYFILES_ora.sql) を作成します。既存のデータベースは、作成したスクリプト ファイルで -createdb を実行する際に指定します (-existdb オプションを使用)。
    dbfhadmin -script -type:datastore -name:MYFILES -provider:ora

リソース回復

起動時にリソースを使用できないことを示すコンソール ログ エラー メッセージが表示される場合は、次のコマンドを使用します。システム障害が発生した場合は自動回復プロセスでリソースの回復が試行されますが、回復できなかったリソースがある場合は、これらのコマンドを使用して解放できることがあります。

  • 次のコマンドは、DBHOST データベース サーバー インスタンスに関連付けられている各リージョンをリストし、プロセスに関連付けられている ENQ の数、およびリージョンに関連付けられている ENQ (つまり、プロセス類似性がないもの) の数を示します。
    dbfhadmin -region -list -usedb:DBHOST
  • 次のコマンドは、DBHOST データベース サーバー インスタンスの ESDEMO リージョンのロックされているリージョン リソースをリストします。
    dbfhadmin -region -list -usedb:DBHOST -name:ESDEMO
  • 次のコマンドは、前の例の内容に加えて、リージョン名を 16 進数で表示します。
    dbfhadmin -region -list -usedb:DBHOST -name:ESDEMO -hex
  • 次のコマンドは、DBHOST データベース サーバー インスタンスの ESDEMO リージョンのロックを解放します (つまり、プロセス類似性がないロックの DEQ を強制的に行います)。このコマンドは、リージョンが実行されていないことを必ず確認してから実行してください。
    dbfhadmin -region -recover -usedb:DBHOST -name:ESDEMO

    プロセス類似性があるロックを解放するには、上記のコマンドで -cassprocess -recover オプションを使用します。

    警告: 次のコマンドを使用する際は注意が必要です。リセットについては、たとえば、エンタープライズ サーバー リージョンを起動したときに、リージョン データベースが使用中であるとして失敗したが、そうではないことを確信している場合にのみ実行します。これを確認するには、リージョンを起動していたと報告されたプロセス/プログラム/ホストが実際には実行中でなかったことを確認します。
  • 次のコマンドは、DBHOST データベース サーバー インスタンスの ESDEMO リージョン データベースのステータスを表示します。
    dbfhadmin -region -status -usedb:DBHOST -name:ESDEMO
  • 次のコマンドは、DBHOST データベース サーバー インスタンスの ESDEMO リージョン データベースのステータスを「stopped」にリセットします。
    dbfhadmin -region -status -reset -usedb:DBHOST -name:ESDEMO

データストアのアップグレード

  • VSAM データストアを手動でアップグレードするために必要なスクリプト ファイル upgradeds.sql を生成するには、次のコマンドを使用します。-file オプションを省略した場合、upgrade_datastore_VSAM_db-type.sql という名前のファイルが生成されます (db-type はデータベース構成ファイルの設定で決まります)。
    dbfhadmin -upgrade -datastore:sql://localhost/VSAM -file:upgradeds.sql

    データストアをアップグレードする必要がない場合、dbfhadmin から「ADM0073I Datastore '<datastore-url>' does not need to be upgraded」と出力され、スクリプト ファイルは作成されません。アップグレードが必要な場合は、dbfhadmin から「ADM0045I Creating SQL script file '<sql-script-name>'」と出力されます。

    生成されたスクリプトは、sysadmin 権限があるユーザーとして実行する必要があります。sqlcmd (SQL Server)、psql (PostgreSQL)、db2 (Db2)、または sqlplus (Oracle) のコマンド ライン ツールを使用して実行してください。

データストアの整合性

データストアの整合性を検証し、必要に応じて整合性の問題を解決するには、次のコマンドを使用します。

  • 次のコマンドは、VSAM データストアのデータストア整合性チェックを実行します。
    dbfhadmin -verify -list -datastore:sql://localhost/VSAM

    現在、このチェックでは、孤立したレコード ロック (つまり、ファイル ハンドルが関連付けられていないレコード ロック) のみが検出されます。一般に、レコード ロックが孤立するのは、関連付けられたファイル ハンドルがデータベースから手動で削除された場合です。孤立したレコード ロックが検出されると、dbfhadmin は、非順編成ファイルについては関連付けられているファイル名、順編成ファイルについては <Sequential files> (これらのファイルにはグローバル レコード ロック テーブルが使用されるため実際のファイル名は特定できません) をリストし、孤立したロックの数を示します。次に例を示します。

    Orphaned record locks:  Name                Folder  Count
                            ----                ------   -----
                            SPLJOB.dat          /MyDir   3
                            <Sequential files>           1
    
  • 次のコマンドは、孤立したレコード ロックから VSAM データストアを回復します。
    dbfhadmin -verify -recover -datastore:sql://localhost/VSAM
  • 次のコマンドは、DBHOST データベースの ESDEMO リージョン データベース (および関連するリージョン間データベース) に関する詳細を含む diags.txt という名前の診断レポートを生成します。
    dbfhadmin -diags -usedb:DBHOST -name:ESDEMO -file diags.txt

コマンドで返される可能性のある戻りコードの一覧については、「dbfhadmin 戻りコード」を参照してください。