管理解説書

udebug

目的

データベース・サーバー・プロセスに関連した Ubik プロセスの状況を報告します。

構文

udebug -servers  <server machine>  [-port <IP port>]  [-long]  [-help]
        
udebug -s  <server machine>  [-p <IP port>]  [-l]  [-h]
        

構文

udebug コマンドは、 -servers 引き数で指定されたデータベース・サーバー・マシンで実行中の、 -port 引き数で識別されるデータベース・サーバー・プロセスのライト・ウェイト Ubik プロセスの状況を表示します。出力では、ピア・データベース・サーバー・プロセスが実行しているマシンのうち、同期サイト (Ubik コーディネーター) となるもの、および、それらの間の接続状況が識別されます。

オプション

-servers
状況情報を表示するプロセスを実行しているデータベース・サーバー・マシンを指定します。マシンの IP アドレスを小数点付き 10 進数の形式で指定してください。完全修飾のホスト名 (たとえば、 fs1.abc.com) か、他のマシンと区別できる形式であれば、ホスト名の短縮形を指定してください。短縮形が使用できるかどうかは、このコマンドを発行した時点での名前解決サービス (ドメイン・ネーム・サービス、ローカル・ホスト表など) の可用性によって異なります。

-port
プロセス名またはポート番号のいずれかで状況情報を表示するデータベース・サーバー・プロセスを識別します。以下の値のいずれかを指定します。

buserver または 7021 (バックアップ・サーバーの場合)

kaserver または 7004 (認証サーバーの場合)

ptserver または 7002 (保護サーバーの場合)

vlserver または 7003 (ボリューム・ロケーション・サーバーの場合)

-long
-servers 引き数で指定されたマシンのピアごとの追加情報を報告します。そのマシンが同期サイトである場合は、デフォルトで、この情報が表示されます。

-help
このコマンドのオンライン・ヘルプを出力します。これ以外の有効なオプションはすべて無視されます。

出力

出力のメッセージには、 -servers 引き数で指定されたマシンでの Ubik プロセスに関する基本状況情報を提示しているものもあり、他には、主にデバッグ目的の場合に有用なものもあります。

基本 Ubik 状況を検査するには、データベース・サーバー・マシンごとにコマンドを順に発行します。それぞれの出力ごとに、以下のメッセージのいずれかが、出力の上部 3 分の 1 に表示されます。

   I am sync site . . . (#_sites servers)
   
   I am not sync site 

同期サイトの場合、次のメッセージは、すべてのサイトのデータベースのバージョンが同じであることを示しています。これは、Ubik が正しく機能しているという意味です。 1f 以外の値の記述については、次を参照してください。

   Recovery state 1f

Ubik 操作が正しく実行されるためには、データベース・サーバー・マシンのクロックの時刻が合っていなければなりません。出力の 2 行目および 3 行目にある以下のメッセージは、データベース・サーバー・マシンのクロック、および udebug コマンドが発行されるマシンのクロックに従って、現在の日付および時刻を報告します。

   Host's IP_addr time is dbserver_date/time
   Local time is local_date/time (time differential skew secs)

skew は、データベース・サーバー・マシンのクロックとローカル・クロックの差です。差の絶対値は Ubik 機能に対して致命的なものではありませんが、データベース・サーバー・マシンの skew 値の間に 2 、3 秒以上の差があれば、クロックが同期していないことになり、 Ubik パフォーマンスが妨げられる可能性があります。

出力のすべてのメッセージについて、以下に説明します。記述のように、デバッグの場合、非常に有用であるし、 Ubik のインプリメンテーションについて理解しているユーザーには非常に分かりやすくなっています。

出力は、以下のメッセージで始まります。 1 番目のメッセージは、 -servers 引き数で指定されたマシンのオペレーティング・システムで構成されている IP アドレスを報告します。前述のように、 2 番目と 3 番目のメッセージは、データベース・サーバー・マシンと udebug コマンドが発行されるマシンのそれぞれのクロックに従って、現在の日付および時刻を報告します。出力内の後続のタイム・スタンプはすべて、データベース・サーバー・マシン・クロックではなく、ローカル・クロックで表されます。

   Host's addresses are: list_of_IP_addrs
   Host's IP_addr time is dbserver_date/time
   Local time is local_date/time (time differential skew secs)

skew が約 10 秒を超える場合、次のメッセージが表示されます。記述のように、これは、必ずしも Ubik の誤動作を意味する訳ではありません。データベース・サーバー・マシン間ではなく、データベース・サーバー・マシンとローカル・マシンの間のクロック・スキューを示します。

   ****clock may be bad

コーディネーター選出プロセス中に、udebug コマンドが発行され、投票がまだ開始されていない場合は、次のメッセージが表示されます。

   Last yes vote not cast yet

そうでない場合、出力は、以下のメッセージで始まります。

   Last yes vote for sync_IP_addr was last_vote secs ago (sync site); 
   Last vote started vote_start secs ago (at date/time)
   Local db version is db_version

最初のメッセージは、この Ubik プロセスがコーディネーターとして最後に投票した、ピア (自分で自分自身を選出できる) および、どのくらい前に投票したのかを示しています。 2 番目のメッセージは、Ubik コーディネーターが、どのくらい前にセカンダリー・サイトからの投票の確認を要求したのかを示しています。通常、last_vote 値および vote_start 値は同じで、これらの値の差異は、 2 つのデータベース・サーバー・マシン間のクロック・スキューまたはスロー・ネットワーク接続を示している可能性があります。小さな差異は、問題ありません。 3 番目のメッセージは、この Ubik プロセスで保守されるデータベースの現行バージョン番号 db_version を報告します。この番号は、ピリオドで 2 つのフィールドに分かれています。ピリオドより前のフィールドは、最新のコーディネーター選出後、初めてデータベースが変更されたときに反映されるタイム・スタンプに基づくもので、ピリオドより後のフィールドは、選出以降変更された回数を示しています。

出力には、Ubik プロセスがコーディネーターであるか否かによって異なるメッセージが続きます。

同期サイトとセカンダリー・サイトの両方の場合は、出力に、以下のメッセージが続きます。最初のメッセージは、同期サイトにおけるデータベースのバージョン番号を報告します。これは、その前の Local db version メッセージにより報告されている db_version と一致している必要があります。 2 番目のメッセージは、任意のオペレーションまたは特に書き込みに対して現在ロックされている VLDB レコード数を示します。オペレーションの進行中に udebug コマンドが発行される場合、この値は非ゼロになります。

     Sync site's db version is db_version
   locked locked pages, writes of them for write

データベース・レコードについて読み取りも書き込みもロックされている場合に限り、以下のメッセージが次に表示されます。

   There are read locks held
   There are write locks held

同様に、udebug コマンドの発行時に、読み取りまたは書き込みトランザクションが実行中である場合に限り、以下のメッセージの 1 つまたは複数が次に表示されます。

   There is an active write transaction
   There is at least one active read transaction
   Transaction tid is tid

-servers 引き数で指定されたマシンがコーディネーターである場合、次のメッセージが、現在のコーディネーターが最後にデータベースを更新したのはいつかを報告します。

   Last time a new db version was labelled was:
            last_restart secs ago (at date/time)

-servers 引き数で指定されたマシンがコーディネーターである場合、出力の最後に、定足数に入っているセカンダリー・サイトごとの項目が以下の形式で出力されます。

   Server( IP_address ): (db db_version)
   last vote rcvd last_vote secs ago (at date/time),
   last beacon sent last_beacon secs ago (at date/time), last vote was { yes | no }
   dbcurrent={ 0 | 1 }, up={ 0 | 1 } beaconSince={ 0 | 1 }

1 行目では、サイトの IP アドレスとそれが保持しているデータベースのバージョン番号を報告します。 last_vote フィールドは、コーディネーターがそのサイトで Ubik プロセスから投票メッセージをどのくらい前に受け取ったのかを報告し、 last_beacon フィールドは、コーディネーターが投票メッセージを最後にどのくらい前に要求したのかを報告します。コーディネーター選出プロセス中に、udebug コマンドが発行されたのに、投票がまだ開始されていない場合は、次のメッセージが代わりに表示されます。

   Last vote never rcvd
   Last beacon never sent

各項目の最終行のフィールドの意味は以下のとおりです。

-long フラグを組み込むと、 -servers 引き数がセカンダリー・サイトを指定するときに、ピア項目を作成しますが、その場合、IP_address フィールドのみ正しいことが保証されています。たとえば、db_version フィールドの値は、通常 0.0 ですが、これは、セカンダリー・サイトがこの情報に関してピアを調査しないためです。 last_vote および last_beacon フィールドの値は、このサイトがコーディネーターとして最後に投票を受け取ったのはいつか、あるいは投票を要求したのはいつかを示します。これらの値は、通常、最新のコーディネーター選出がいつだったのかを示します。

この例では、同期サイトである、マシン afs1 上のボリューム・ロケーション・サーバーの Ubik プロセスの状況を検査します。

   % udebug afs1 vlserver
   Host's addresses are: 192.12.107.33 
   Host's 192.12.107.33 time is Wed Oct 27 09:49:50 1999
   Local time is Wed Oct 27 09:49:52 1999 (time differential 2 secs)
   Last yes vote for 192.12.107.33 was 1 secs ago (sync site); 
   Last vote started 1 secs ago (at Wed Oct 27 09:49:51 1999)
   Local db version is 940902602.674
   I am sync site until 58 secs from now (at Wed Oct 27 09:50:50 1999) (3 servers)
   Recovery state 1f
   Sync site's db version is 940902602.674
   0 locked pages, 0 of them for write
   Last time a new db version was labelled was:
            129588 secs ago (at Mon Oct 25 21:50:04 1999)
   
   Server( 192.12.107.35 ): (db 940902602.674)
       last vote rcvd 2 secs ago (at Wed Oct 27 09:49:50 1999),
       last beacon sent 1 secs ago (at Wed Oct 27 09:49:51 1999), last vote was yes
       dbcurrent=1, up=1 beaconSince=1
   
   Server( 192.12.107.34 ): (db 940902602.674)
       last vote rcvd 2 secs ago (at Wed Oct 27 09:49:50 1999),
       last beacon sent 1 secs ago (at Wed Oct 27 09:49:51 1999), last vote was yes
       dbcurrent=1, up=1 beaconSince=1

この例では、セカンダリー・サイトである、IP アドレス 192.12.107.34 のマシン上の認証サーバーの状況を検査します。ローカル・クロックは、データベース・サーバー・マシンのクロックよりも約 4 分遅れています。

   % udebug 192.12.107.34 7004
   Host's addresses are: 192.12.107.34
   Host's 192.12.107.34 time is Wed Oct 27 09:54:15 1999
   Local time is Wed Oct 27 09:50:08 1999 (time differential -247 secs)
   ****clock may be bad
   Last yes vote for 192.12.107.33 was 6 secs ago (sync site); 
   Last vote started 6 secs ago (at Wed Oct 27 09:50:02 1999)
   Local db version is 940906574.25
   I am not sync site
   Lowest host 192.12.107.33 was set 6 secs ago
   Sync host 192.12.107.33 was set 6 secs ago
   Sync site's db version is 940906574.25
   0 locked pages, 0 of them for write

必要となる特権

関連情報

buserver

kaserver

ptserver

vlserver


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]



(C) IBM Corporation 2000. All Rights Reserved