CHAPTER 9: データベース管理


9.1 はじめに

この章ではデータベース管理ユーティリティ empadmの機能について説明します。 このユーティリティはデータベースの管理機能を実行するために利用されます。 empadmを使って、データベース管理者(DBA)は以下のことが可能です。



9.2 DBA モードとシングルユーザーモード

empadmユーティリティは 他のユーザーのデータベースアクセスを制限するための データベース管理者に許可する2つのオプションを提供します。


9.2.1 DBA モード

DBA モードは データベース管理者(DBA)のみにデータベースアクセスを 制限することを意味します。 その際、DBA プロセスは複数、同時にデータベースにアクセスすることができます。 以下のコマンドはデータベース管理者のみ発行することができます。

   empadm database_name dbamode [on] [-i N| -q]

ここでのポイントは、

empadmが、すべての非DBAプロセスがデータベースのアクセスを 終了するのを待っている間、 データベースに現在アクセスしているユーザーリストを N 秒ごとに出力します。 その秒数は-iオプションで定義され、デフォルトでは 10 秒です。 empadmは、ユーザーに対してデータベースへのアクセスを 終了させるための通知をしません。よって、DBAは、ユーザーに直接伝えるか、 待つことを選ぶことになります。

報告する間隔は、N秒ですが、 empadmは、非DBAプロセスを毎秒ごとにチェックします。 Nに "0" または "-q"が指定された場合、 empadmはユーザーリストを出力しません。

特権の持つすべてのユーザーにデータベースを有効にするためには (DBAモードを終了するには)、 以下のコマンドを使います。

   empadm database_name dbamode off


9.2.2 シングルユーザーモード

シングルユーザーモードは、 データベースアクセスを要求した単一のDBAプロセスのみに 制限すること意味します。

   empadm database_name singlemode [-i N| -q] ["shell_command"]

ここでのポイントは、

empadmが、すべてのプロセスがデータベースのアクセスを 終了するのを待っている間、 データベースに現在アクセスしているユーザーリストを N 秒ごとに出力します。 その秒数は-iオプションで定義され、デフォルトでは 10 秒です。 empadmは、ユーザーに対してデータベースへのアクセスを 終了させるための通知をしません。よって、DBAは、ユーザーに直接伝えるか、 待つことを選ぶことになります。

報告する間隔は、N 秒ですが、 empadmは、プロセスを毎秒ごとにチェックします。 N に "0" または "-q"が指定された場合、 empadmはユーザーリストを出力しません。

shell_commandが指定されていない場合、 empadmは対話モードで実行し、 シェルコマンドが指定された場合はバッチモードで実行します。



9.3 アクティブロック情報

データベースのアクティブロック情報はempadmユーティリティの以下のオプションを 使うことでレポートされます。

"lockinfo"オプションは、アクティブロックおよび これらのロックを保持するプロセス、 またロックマネージャについての情報を提供します。

   empadm database_name lockinfo [table_name ...]

以下にサンプル出力を示します。

   Lock Managers
   
   Table name              Lock Man. Name  Type           MAXPROCS NBUCKETS   NLOCKS
   sys_attr_privs          00005.lck       F                    32       11      200
   sys_attrs               00003.lck       F                    32       11      200
   sys_dictionary          00001.lck       F                    32       11      200
   sys_privs               00004.lck       F                    32       11      200
   sys_tables              00002.lck       F                    32       11      200
   t1                      00006.lck       F                    32       11      200
   t2                      00007.lck       F                    32       11      200
   
   Active Locks
   
   Table name              Type       Record#      Status     Empress ID
   
   sys_dictionary          ADMIN          ---      r          2086626528
   sys_dictionary          ADMIN          ---      r           957829758
   sys_dictionary          RECORD           6      r          2086626528
   sys_dictionary          ALLRECS        ---      rr         2086626528
   sys_dictionary          ALLRECS        ---      rr          957829758
   sys_dictionary          RECORD           7      r           957829758
   t1                      ALLRECS        ---      rr         2086626528
   t1                      ADMIN          ---      r          2086626528
   t1                      RECORD           2      r          2086626528
   t1                      RECORD           1      r          2086626528
   t2                      ADMIN          ---      r           957829758
   
      Empress ID   Process ID      Username
       957829758         4261      joe@gold.empress.com
      2086626528         4281      joe@gold.empress.com

最初に表示されるロックマネージャのレポートは、 各テーブルのロックマネージャについての情報を表示します。

次に表示されるアクティブロックのレポートは、データベース内のすべてのアクティブなロックに ついての情報を表示します。

最後に表示されているレポートは EmpressプロセスのオペレーティングシステムID を表示することでユーザーを支援します。

"lockbrief"オプションは、アクティブロックおよび これらのロックを保持するプロセスについての情報を提供します。

   empadm database_name lockbrief [table_name ...]

以下にサンプル出力を示します。

   Active Locks
   
   Table name              Type       Record#      Status     Empress ID
   sys_dictionary          ADMIN          ---      r          2086626528
   sys_dictionary          ADMIN          ---      r           957829758
   sys_dictionary          RECORD           6      r          2086626528
   sys_dictionary          ALLRECS        ---      rr         2086626528
   sys_dictionary          ALLRECS        ---      rr          957829758
   sys_dictionary          RECORD           7      r           957829758
   t1                      ALLRECS        ---      rr         2086626528
   t1                      ADMIN          ---      r          2086626528
   t1                      RECORD           2      r          2086626528
   t1                      RECORD           1      r          2086626528
   t2                      ADMIN          ---      r           957829758
   
      Empress ID   Process ID      Username
       957829758         4261      joe@gold.empress.com
      2086626528         4281      joe@gold.empress.com

最初に表示されているレポートは、 データベース内のすべてのアクティブなロック についての情報を表示します。

最後に表示されているレポートは EmpressプロセスのオペレーティングシステムID を表示することでユーザーを支援します。

"lockmanagers" オプションは、 ロックマネージャとアクティブロックついての情報を提供します。

   empadm database_name lockmanagers [table_name ...]

以下にサンプル出力を示します。

   Lock Managers
   
   Table name              Lock Man. Name  Type     MAXPROCS NBUCKETS   NLOCKS
   sys_attr_privs          00005.lck       F              32       11      200
   sys_attrs               00003.lck       F              32       11      200
   sys_dictionary          00001.lck       F              32       11      200
   sys_privs               00004.lck       F              32       11      200
   sys_tables              00002.lck       F              32       11      200
   t1                      00006.lck       F              32       11      200
   t2                      00007.lck       F              32       11      200
   
   Active Locks
   
   Table name              Type       Record#      Status     Empress ID
   sys_dictionary          ADMIN          ---      r          2086626528
   sys_dictionary          ADMIN          ---      r           957829758
   sys_dictionary          RECORD           6      r          2086626528
   sys_dictionary          ALLRECS        ---      rr         2086626528
   sys_dictionary          ALLRECS        ---      rr          957829758
   sys_dictionary          RECORD           7      r           957829758
   t1                      ALLRECS        ---      rr         2086626528
   t1                      ADMIN          ---      r          2086626528
   t1                      RECORD           2      r          2086626528
   t1                      RECORD           1      r          2086626528
   t2                      ADMIN          ---      r           957829758

Lock Managersのレポートでは、各テーブルのロックマネージャの情報を表示します。

Active Locksのレポートでは、 データベース内のすべてのアクティブロックについての情報を表示します。

"locksactive"オプションは、アクティブロックのみの情報を提供します。

   empadm database_name locksactive

以下にサンプル出力を示します。

   Active Locks
   
   Table name              Type       Record#      Status     Empress ID
   sys_dictionary          ADMIN          ---      r          2086626528
   sys_dictionary          ADMIN          ---      r           957829758
   sys_dictionary          RECORD           6      r          2086626528
   sys_dictionary          ALLRECS        ---      rr         2086626528
   sys_dictionary          ALLRECS        ---      rr          957829758
   sys_dictionary          RECORD           7      r           957829758
   t1                      ALLRECS        ---      rr         2086626528
   t1                      ADMIN          ---      r          2086626528
   t1                      RECORD           2      r          2086626528
   t1                      RECORD           1      r          2086626528
   t2                      ADMIN          ---      r           957829758

Active Locksのレポートでは、 データベース内のすべてのアクティブロックについての情報を表示します。



9.4 ロックマネージャ統計情報

データベースのロックマネージャについての統計情報は、empadm"lockstats"オプションを使うことでレポートされます。

   empadm database_name lockstats [table_name ...]

デフォルトでは、これらの統計情報は利用できません。 統計情報の収集を始めるためには、 データベース管理者は、データ辞書"tabzero"ファイル内の MSDBLOCKSTATS変数に設定する必要があります。

統計情報の収集を始めるために この変数に何かの値を(例えばMSDBLOCKSTATS=on)設定します。 デフォルトでは、この変数は設定されていません。理由として 統計情報の収集の要求はオーバヘッドになるためです。

累積したロックの統計情報をリセットするには "lockrststats"オプションを使用します。

   empadm database_name lockrststats

このコマンドの実行後、すべてのロックの統計情報は "0" に 初期化され、そして、再び収集を始めます。

以下に"lockstats"のサンプル出力を示します。

   Table name: temperatures
   
   Lock Man. Name  Type     MAXPROCS NBUCKETS    NLOCKS
   00018.lck       F              32       11       200
   
   NPROCS  MAXNPROCS       CURNLKS MAXNLKS  EFFICIENCY
        1          2             0       4        100%
   
   # buckets       % of hits
           2             73%
           3             87%
                         97%
   
   # hits          # buckets       bucket #
        0                  6         0,   1,   3,   4,   5,
                                     9
       14                  1        10
       54                  1         2
       74                  1         7
      150                  1         8
      244                  1         6
   
   Max. chain length       # buckets       bucket #
                   0               6         0,   1,   3,   4,   5,
                                             9
                   1               4         2,   8,   7,  10
                   2               1         6

以下は各フィールドの説明です。



9.5 途中終了したプロセスのロックの削除(無効なロックの削除)

途中終了したプロセスのロック (ダングリング・ロックとして表現されることがあります。)とは、 プロセスがロックをかけた状態で そのプロセスがシステムエラーおよびプロセスのクラッシュにより、 途中終了した場合にテーブル内にロックが残ることがあります。 "lockclear" オプションは、このような状況で残ってしまったロックを削除する ために利用します。

   empadm database_name lockclear [-f] [empress_id ...]

"lockclear"は、"-f"オプション(強制的なクリアロック)を 指定しない限り、アクティブロックを削除しません。

"-f"オプションが指定された場合、 プロセスがアクティブな状態であっても、ロックはクリアされます。 そのため、このオプションを使用する場合は注意が必要です。 Empressのプロセスがアクティブな状態である場合、 そのプロセスのロックを削除すべきではありません。

引数のempress_idリストは、途中終了した Empressプロセスのリストを指定します。 通常、この途中終了したempress_idのリストは、 empadm database_name lockinfoのレポートから 取得します。

途中終了したプロセスのリストが指定されない場合、このコマンドを実行する ユーザーIDは、データベース管理者と一致しなければなりません。また、 途中終了したプロセスのリストが指定された場合は、 DBAか、あるいはロックを保持したempress_idの所有者と 一致しなくはなりません。



9.6 ディスクロックファイルの削除

"lockremove" オプションは、データベースロックディレクトリ"_lock" 以下のロックファイルを削除するために使用されます。

   empadm  database_name lockremove

シェアードメモリ・ロックマネージャが利用されている場合、 ディスクロックファイルはもはや必要ではありませんが、 このコマンドは有用です。 シェアードメモリロックにおいて、 これらのロックファイルを削除する必要はありませんが、 これを実行することは一般的な保守管理ではよいことです。 (余計なファイルをデータベース内に残さないという意味で)



9.7 シェアードメモリの作成

"shmcreate"オプションは、 データ辞書 "tabzero"ファイル内に定義された シェアードメモリパーティションを作成するために 利用されます。

   empadm database_name shmcreate

シェアードメモリパーティションは、 それぞれのシェアードメモリパーティション定義ブロック によって作成されます。それが定義されない場合、作成されません。 シェアードメモリパーティションが既に存在している場合、 "empadm"はエラーメッセージを出力し、終了します。

このコマンドはデータベース管理者が 実行しなくてはならないことに注意してください。 また、シェアードメモリの詳細な情報はこのマニュアルの シェアードメモリ を参照してください。



9.8 保護されていないシェアードメモリの削除

"shmremove"オプションは、 データ辞書に定義されたシェアードメモリパーティションを 削除するために利用されます。

   empadm database_name shmremove

シェアードメモリパーティションは、 それぞれのシェアードメモリパーティション定義ブロック によって削除されます。それが定義されない場合、削除されません。 シェアードメモリパーティションが存在しない場合、 "empadm"はエラーメッセージを出力し、終了します。

保護されたパーティションは、このコマンドでは削除されないことに 注意してください。 言いかえれば、パーティション記述ブロックの MSSHMPROTECTIONに値を設定することで シェアードメモリパーティションは削除されません。 また、このコマンドはデータベース管理者が 実行しなくてはならないことに注意してください。



9.9 すべてのシェアードメモリの削除

"shmrmall"オプションは、すべてのシェアードメモリパーティションを削除します。

empadm database_name |shmrmall
|shmzap
|
|

"shmrmall"は、 "shmremove"オプション と同じ機能を実行します。 また、保護されたパーティションを削除します。 言い換えれば、 データ辞書"tabzero"ファイルに定義された シェアードメモリをすべて削除し、 MSSHMPROTECTIONが設定されたものでさえ削除します。

"shmzap"は、 "shmrmall"と 同じ機能を実行しますが、 "tabzero"ファイルのパーティション定義も 合わせて削除します。

また、このコマンドはデータベース管理者が 実行しなくてはならないことに注意してください。



9.10 シェアードメモリのリフレシュ

"shmrefresh" オプションは以下になります。

このコマンドの構文は、以下のようになります。

   empadm database_name  shmrefresh



9.11 シェアードメモリのクリア

"shmclear"オプションはデータ辞書 tabzeroファイルに 定義されたシェアードメモリパーティションの内容をクリアします。

   empadm database_name  shmclear

実行することにより、tabzeroファイル中の シェアードメモリパーティション定義ブロックが見つかるごとに クリアします。定義されていない場合は削除もされません。 シェアードメモリパーティションが存在しない場合は、 empadmは、エラーメッセージを出力し、終了します。

このコマンドはマップファイルおよびグローバルバッファパーティションのみを クリアし、ロックは削除しません。 また、このオプションはシェアードメモリパーティションを削除しないことに注意してください。 単にデータを空にするだけです。(tabzeroのシェアードメモリ定義を削除するだけです。)

保護されたパーティションはこのコマンドによってクリアされないことにも注意してください。 つまり、MSSHMPROTECTIONが設定されている場合、パーティション記述ブロックは クリアされません。



9.12 シェアードメモリ情報

"shminfo"オプションは、 データ辞書 tabzeroファイル中のシェアードメモリパーティション定義ブロック に関係したシェアードメモリパーティションについての情報を表示します。

   empadm database_name shminfo

以下はrepairsデータベースのサンプル出力です。

   Database: repairs
   
   Partition name                               Size     Type
   mapf1                                       22592     Mapped File
   gbuf1                                      161200     Global Buffers
   lock1                                        4784     Lock Manager
   
   Mapped File Partition
   
   Partition name             SIZE   START
   mapf1                     22528       0
   
           Statistics
   
           Read hit ratio: 100%    Read ratio: 83%
   
   Global Buffers Partition
   
   Partition name          BLOCKSIZE       NBLOCKS
   gbuf1                        1024           150
   
   Lock Manager Partitions
   
   Partition name : lock1
   
           MAXPROCS        NBUCKETS        NLOCKS
                 32              11           200

レポートの最初のセクションは、このデータベースのシェアードメモリパーティション のリストで、各パーティションのサイズおよびタイプを表示します。 このデータベースでは、 mapf1と名づけられたマップファイルパーティション、 gbuf1と名づけられたグローバルバッファパーティション、 lock1と名づけられたロックマネージャパーティション の3つのパーティションを持っています。

次の出力は各シェアードメモリパーティションについての情報を表示します。 マップファイルパーティションでは、サイズおよび開始オフセットが表示され、 またいくつかの基本統計情報が表示されます。

Read hit ratioフィールドは、 ディスクからではなくマップファイルパーティションからの情報を取得し、 マップファイルへのアクセスのパーセンテージを表示します。 このパーセンテージが低い場合、マップファイルパーティションのサイズを増加するか あるいは、マップファイルの開始オフセットを変更することを考慮する必要があります。

Read ratioフィールドは、 読み込みと書き込み操作の合計中の 読み込み操作が行われたパーセンテージを表示します。 ほとんどの操作においてファイルへの書き込みが行われた場合は このパーセンテージは低くなります。

Read hit ratioRead ratioは、シェアードメモリの 最適なパフォーマンスを得るために(値を)高くする必要があることに注意してください。

グローバルバッファパーティションは、 パーティションのブロックサイズおよびブロック数が表示されます。

ロックマネージャパーティションのレポートは同時にロックマネージャにアクセスが 可能な最大プロセス数、およびロックマネージャのバケット数、 またこのロックマネージャによって管理できる最大同時ロック数を表示します。



9.13 シェアードメモリ統計情報

"shmstats" オプションは、シェアードメモリの利用についての 詳細な統計情報を提供します。

   empadm database_name shmstats

"lockrststats"オプションは、シェアードメモリー統計情報の累計を リセットするために用います。

   empadm database_name shmrststats

このコマンドの実行した後に、すべてのシェアードメモリファイルとグローバルバッファの 統計情報は、 "0"にリセットせれ、再び情報の蓄積を始めます。

以下は"shmstats"オプションのサンプル出力です。

   Database: repairs
   
   Partition name                                 Size     Type
   mapf1                                         22592     Mapped File
   gbuf1                                        161200     Global Buffers
   lock1                                          4784     Lock Manager
   
   Mapped File Partition

   Partition name             SIZE   START
   mapf1                     22528       0
   
           Statistics
   
           Bytes used: 3072  Reads: 5  Read-nexts: 0 Writes: 1
   Write-nexts: 1
   
   Global Buffers Partition
   
   Partition name          BLOCKSIZE       NBLOCKS
   gbuf1                        1024           150
   
           Statistics
   
           File name                   DIN    DOUT     PIN    POUT
           cdinator                      4      14      14      35
           0001.rel                      2       0       0      21
           00010004.dtf                  9       0       0      23
           00010001.ix                   3       0       0      24
           0006.rel                      2       0       0       5
           0007.rel                      2       0       0       6
   
   Lock Manager Partition
   
   Partition name : lock1
   
           MAXPROCS        NBUCKETS        NLOCKS
                 32              11           200
   
           NPROCS  MAXNPROCS       CURNLKS MAXNLKS EFFICIENCY
                0          0             0       0          -
   
           # buckets       % of hits
         
                   -               -
   
           # hits          # buckets       bucket #
                0                 11         0,   1,   2,   3,   4, 
                                             5,   6,   7,   8,   9, 
                                            10
   
           Max. chain length       # buckets       bucket #
                           0              11         0,   1,   2,   3,   4,             
                                                     5,   6,   7,   8,   9,      
                                                    10

"shminfo"のレポートとして、 最初のセクションは、データベースのシェアードメモリパーティションのリストと 各パーティションのサイズとタイプを表示します。

マップファイルパーティションのレポートの最初のフィールドは、 実際に使用しているマップファイルのバイト数を示しています。 Readsフィールドは、 シェアードメモリパーティション中から 情報を検索することができた 読み込み操作の回数を示しています。 Read-nextsフィールドは、ディスクから情報を 検索しなければならなかった読み込み操作の回数を含みます。 シェアードメモリ上にファイルの全部をマップした場合は この数字は常に "0" になります。 ファイルの一部分だけをマップした場合、この数字は ファイルのマップしていない部分がどのように頻繁に利用されたか を反映します。

Writesフィールドは、マップファイルバッファへのデータ書き込み 操作の回数を示します。 Write-nextsフィールドはディスクへのデータ書き込み操作の回数を 示します。 Write-nextsは、 Empressが、ライトスルーキャッシュを使う場合は、 通常Writesと同じ値になります。 MSPARTMAPFNOWRITETHROUGH変数がセットされた場合、 Write-nextsの値は予測ができず、 キャッシュがファイルに書き出されたかどうかを反映します。

グローバルバッファ・パーティションは、各ファイルの統計情報が表示されます。 DINDOUTフィールドは、それぞれ ディスクからバッファへ、またバッファからディスクへと データ転送を要求した操作がどのくらいの数かを示します。 PINPOUTは、それぞれ プロセスからバッファへ、またバッファからプロセスへの データ転送の同様な統計情報をレポートします。

PINPOUTDINDOUT およびグローバルバッファ間の関係は以下のように見えます。



図 9-1: PINPOUTDINDOUT およびグローバルバッファ間の関係





ロックマネージャ・パーティションのレポートのフォーマットは、 empadm database_name lockstatsによって出力した内容と同じです。



9.14 シェアードメモリへのテーブルマップ

"params"オプションは、 指定されたシェアードメモリパーティションへ データベースファイルをマップします。

   empadm database_name params params_file table_name [table_name ...]

パラメータファイル(params_file)は、 empshm paramsコマンドによって作成されます。 "params"オプションは、 Empressは、テーブルをロックし、アクセスする際に シェアードメモリパーティションを利用するために テーブルへのパラメータファイルを適用します。

1 つのパラメータファイルは、 テーブル名のリストが指定された場合において シェアードメモリへのいくつかのテーブルを マップするために利用することができます。 1度実行することで、 テーブルへのすべてのアクセスは、パラメータファイルによって指定された 自動的にシェアードメモリへ経由されます。 対話型 SQL インターフェイス内の DISPLAY table ALLコマンドは、 シェアードメモリへのマッピングの場所を表示します。

シェアードメモリからテーブルをアンマップする場合は、 そのテーブルに空のファイルをマップする必要があります。 例えば

   empadm repairs params /dev/null loans personnel

loansテーブルとpersonnelテーブルをシェアードメモリから アンマップします。



9.15 コーディネイター情報

"coordinfo"オプションは、 コーディネイターについての情報を提供します。

   empadm database_name coordinfo

レポートは、 作成されているコーディネータがどのような構成であるか、あるいは 現在のオンライン・バックアップの状態、 リカバリーログバージョン番号、 コーディネータに登録されたプロセスの 詳細なプロセス情報ブロックのリストを含んでいます。

以下はデータベース"movies"のサンプル出力です。

 
   Database: movies
   
   Header
       Max clients    Number of clients
              1024              1
   
   On-line Backup Status    Recovery Log
       Inactive                 
       Recovery Log Version Number = 0
   
   Process Information Blocks
      User Name   Client ID       Proc ID       Machine ID  Status
          smith    490243111        24669*    127.0.0.1      Inactive

出力の最初のセクションは 最大1024プロセスが、同時にコーディネイターにアクセス可能であり、 また、現在、1プロセスがデータベースにアクセスしていることを 示しています。

次のセクションでは、 誰かがオンラインバックを実行中であり、 そのリカバリーログのバージョンが "0" であることを示しています。

最後のセクションでは、現在、コーディネータにアクセス中のそれぞれのプロセスの情報の リストを表示します。 User Nameフィールドはカレントプロセスの所有者である オペレーティングシステムのユーザー名を示しています。 Client IDフィールドは、 カレントプロセスのEmpress ID を示しています。 Proc IDフィールドはこのプロセスのオペレーティングシステムのプロセス IDを 示しています。 Machine IDフィールドは、そのプロセスが実行しているマシンの ネットワークアドレスを示しています。 最後にStatusフィールドは、カレントプロセスのコーディネータでの状態 (コーディネータ・ステイタス)を示しています。



9.16 コーディネイター情報のクリア

"coordclear"オプションは、 指定されたEmpressプロセスIDに関連したクライアントを コーディネイター情報から削除します。

   empadm database_name coordclear [-f] [empress_id ...]

"-f"なしで指定された場合の "coordclear"は、 アクティブではないクライアントプロセス(defunctしたプロセス) のみを削除します。 クライアントプロセスID(empress_id)が、 指定されない場合、すべての非アクティブクライアント情報は、 コーディネイターから削除されます。

"-f"(強制削除)オプションが使われた場合、 すべてのクライアント情報はコーディネイターから削除されます。 データベース整合保証チェックユーティリティ(empclean)を実行しているときに クライアント情報がコーディネイターからクリアされた場合、 "empclean"は、クライアントは存在しないと仮定して、 クライアントプロセスを削除します。
このオプションを使う場合、注意が必要です。

この途中終了した(defunct)empress_idのリストは empadm database_name coordinfo コマンドにより 表示することができます。



9.17 データ辞書エントリの再コンパイル

処理速度を向上するために、 Empressはテーブルについての すべての情報をコンパイルし、 そのデータをデータ辞書中に格納します。 "recompile_all""recompile" オプションは、 データ辞書エントリの再コンパイルを強制的に行うために使うことができます。

   empadm database_name recompile_all
   empadm database_name recompile [table ...]

"recompile_all"オプションは、 データベース内のすべてのテーブルのデータ辞書情報を再コンパイルします。 実行するとコンパイルされたそれぞれのテーブル名が表示されます。

"recompile"オプションは、 データ辞書を除く コンパイルされたテーブルのエントリ のデータ辞書情報を再コンパイルします。 テーブルのリストが指定された場合、指定されたテーブルのエントリのみを 再コンパイルします。



9.18 データベースの物理位置

"dblocation"オプションは、論理データベースの 物理的な位置(パス)を表示します。

   empadm database_name dblocation

データベースがサーバーを通してアクセスされる場合、 "dblocation"は、またサーバーが実行されている ホスト名を表示します。

以下にユーザーのホームディレクトリの下にある "repairs"データベースを例に挙げます。 ホームディレクトリの物理パス名は"/home/staff/joe"であり、 論理名を"repairs_db"とする場合、

   empadm repairs_db dblocation

以下を出力します。

   /home/staff/joe/repairs

"repairs"データベースが ホスト名"gold"のマシン上にあるとした場合、 上記のコマンドの出力は次のとおりです。

   gold:/home/staff/joe/repairs



9.19 プロセス制限

"maxprocs"オプションは、データベースの最大同時プロセス数を 変更するために使用されます。 このコマンドの構文は以下のとおりです。

empadm database_name maxprocs |licence
|license
|[N]
|keep
| [-f]
|
|
|

"licence" または "license"が指定された場合、 データベースの最大同時プロセス数はライセンスキーで許可された値 が設定されます。

empadm database_name maxprocsが、 N数の指定なしに使用された場合、 データベースの最大同時プロセス数は以下の値の最小値が設定されます。

N数が指定され、Nがライセンスキーで許可された プロセス数と同じかそれより小さい場合は、 データベースの最大同時プロセス数は、Nを設定します。 それ以外の値の場合はempadmは、エラーメッセージを出力し、終了します。

プロセス制限が変更した時は必ず、 データ辞書ファイル "tabzero"ファイル中のMSDBMAXPROCSの値もまた 現在の値に反映するために変更されます。 "keep"オプションは、 データ辞書tabzeroファイル中のMSDBMAXPROCSの値として データベースの最大同時プロセス数で再設定します。

"maxprocs"コマンドが実行された場合、 データベースへの最大同時プロセス数の設定後、 合わせて以下の箇所に影響があります。

より大きなMSDBMAXPROCSの値は、 コーディネータファイルとロックファイルの最大の値となります。 これは、MSDBMAXPROCSのより小さな値との比較おいて パフォーマンスに影響します。 同時ユーザーアクセスが少ないデータベースにおいては より小さいプロセス制限の設定により、パフォーマンスを 向上します。

empadm database_name maxprocs コマンドは、 アクティブなプロセスが存在しないときにのみ実行することができます。 empadmが、アクティブなプロセスの存在を検出した場合は、 エラーメッセージを出力し、終了します。 "-f"オプション(強制実行)が指定された場合、 empadmは、警告メッセージを出力し、変更する処理を続けます。 このオプションを使用する場合は注意してください。



9.20 データベース管理ヘルプコマンド

empadmユーティリティの "-help" オプションは、 有効なすべてのオプションを表示します。 以下に実行例を示します。

   empadm -help


   *** Usage ***  empadm  [オプション] DATABASE コマンド
 
   オプション:
   -help                     コマンド記述を表示する
   コマンドは以下より1つを指定:
   coordinfo                 コーディネータ情報を表示
   coordclear [-f] [EID ...] コーディネータを削除、EID は Empress ID
   dbamode [on] [-i N|-q]    DATABASE へのアクセスを DBA だけに制限
   dbamode off               DATABASE への DBA だけのアクセス制限を解除
   dblocation                データベースの物理位置を表示
   lockbrief [TBL ...]       ブリーフロック情報を表示
   lockclear [-f] [EID ...]  ロックを削除、EID は Empress ID
   lockinfo  [TBL ...]       ロック情報を表示
   lockmanagers [TBL ...]    ロックマネージャ情報を表示
   lockremove                ロックとロックファイルを削除
   lockrststats              ロック統計のリセット
   locksactive [TBL ...]     アクテイブロックの簡略表示
   lockstats [TBL ...]       ロック情報の詳細表示
   maxprocs [-f]             データベースの最大プロセス数を省略値にセット
   maxprocs licence [-f]     データベースの最大プロセス数をセット
   maxprocs license [-f]     データベースの最大プロセス数をセット
   maxprocs N [-f]           データベースの最大プロセス数を N にセット
   maxprocs keep [-f]        現在の最大値を使用しコーディネータを再作成
   params FILE TBL ...       パラメータファイル FILE を使用してデータベース
                             ファイルを共有メモリにマップする
   recompile [TBL ...]       システムテーブル内の TBL レコードを再構築
   recompile_all             システムテーブル内の全レコードを再構築
   shmclear                  データベースに対する共有メモリを消去
   shmcreate                 DATABESE の共有メモリセグメントを作成
   shminfo                   共有メモリ情報を表示
   shmrefresh                DATABASE の共有メモリセグメントを再作成
   shmremove                 DATABASE の共有メモリセグメントを削除
   shmrmall                  DATABASE の全共有メモリセグメントを削除
   shmrststats               DATABASE の共有メモリ統計をリセット
   shmstats                  DATABASE の共有メモリ統計を表示
   shmzap                    共有メモリのセグメントと設定を削除
   singlemode [-i N | -q] ["shell_command"]
                             シングルユーザモードでの DATABASE に対するアクセス
                             を許可する
   vsize TBL ... [-NNN]       このコマンドは、V8.60 からサポートされません。
                            'alter' コマンドで add/drop checksum を行ってください

   vsize_all [-NNN]          このコマンドは、V8.60 からサポートされません。