Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java System Calendar Server 6 2005Q1 管理ガイド 

第 16 章
csdb を使用した Calendar Server データベースの管理

Calendar Server では、複数のディレクトリに多くのデータベースファイルを保存します。第 10 章「自動バックアップ (csstored) の設定」で説明している自動バックアッププロセスを実装するか、または独自のバックアップシステムを実装して、データベースファイルを保護する必要があります。csdb ユーティリティを使用すると、データベースファイルを管理できます。

この章では、csdb を使用した Calendar Server データベースの管理方法について、以下の項目を説明します。


csdb を使用したカレンダーデータベースの管理

データベースファイルを管理するには、Calendar Server ユーティリティの csdb を使用します。ここで説明する内容は次のとおりです。

csdb がデータベースファイルをグループ化する方法

カレンダーデータベースのユーティティ、csdb では、データベースファイルを 3 つの論理データベースとして扱います。

カレンダーデータベース (caldb)

caldb は、データベースディレクトリにあるすべての .db ファイルと _db.* ファイルで構成されます。カレンダーデータベースファイルのデフォルトの場所は、次のとおりです (cld_cache および ldap_cache サブディレクトリも同様)。

/var/opt/SUNWics5/csdb

Calendar Server の設定プログラム (csconfigurator.sh) を利用して、別のディレクトリを指定することもできます。設定プログラムの詳細については、第 3 章「Calendar Server 設定プログラム (csconfigurator.sh)」を参照してください。

表 16-1 はカレンダーデータベースの (caldb) ファイルを示しています。

表 16-1 Calendar Server データベースファイル 

ファイル

説明

ics50calprops.db

すべてのカレンダーのカレンダープロパティ。カレンダー ID (calid)、カレンダー名、ACL (アクセス制御リスト)、所有者が記録されています。

ics50events.db

すべてのカレンダーの予定。

ics50todos.db

すべてのカレンダーの仕事 (作業)。

ics50alarms.db

すべての予定と仕事 (作業) のアラーム。

ics50gse.db

GSE (グループスケジューリングエンジン) のスケジューリング要求のキュー。

ics50journals.db

カレンダーのジャーナル。現在のリリースにはジャーナルは実装されていません。

ics50caldb.conf

データベースのバージョン識別子。

ics50recurring.db

定期的な予定。

ics50deletelog.db

削除された予定と仕事 (作業)。第 18 章「削除ログデータベースの管理」も参照してください。

セッションデータベース (sessdb)

セッションデータベースは、次のディレクトリにあるすべてのファイルで構成されます。/opt/SUNWics5/cal/lib/admin/session/ および /opt/SUNWics5/cal/lib/http/session/

統計情報データベース (statdb)

統計情報データベースは、counter ディレクトリにあるすべてのファイルで構成されます。

/opt/SUNWics5/cal/lib/counter/

特定のデータベースにターゲットを指定できる csdb

csdb ユーティリティでターゲットを指定するときは、-t オプションを使用します。

-t オプションを指定しない場合、csdb は 3 種類すべてのデータベースを対象に動作します。ただし、checkrebuild の対象はカレンダーデータベースだけです。


csdb の管理作業

ここでは、csdb ユーティリティを使用して次の管理作業を行う方法について説明します。

データベースグループの状態をリスト表示するには

データベースグループ (caldbsessdbstatdb) の状態を確認するには、csdb ユーティリティの list コマンドを使用します。

データベースの状態をリスト表示するには

  1. Calendar Server がインストールされているシステムの管理権限を持つユーザーとしてログインします。
  2. Calendar Server は稼動中でも停止していてもかまいませんが、可能であれば停止してください。
  3. /sbin ディレクトリに移動します。たとえば、Solaris オペレーティングシステムでは次のように入力します。
  4. cd /opt/SUNWics5/cal/sbin

  5. データベースグループの 1 つまたはすべてに対して list コマンドを実行します。たとえば、3 種類すべてのデータベースグループの状態と統計情報をリスト表示するときは、次のように実行します。
  6. ./csdb list

    次のコードは出力のサンプルを示しています。

    Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002)

    Calendar database version: 3.0.0 [BerkeleyDB]

    Total database size in bytes: 57344

    Session database version: 1.0.0 [BerkeleyDB]

    Total database size in bytes: 0

    Counter database version: 1.0.0 [Memory Mapped Files]

    Total database size in bytes: 118792

    または、冗長モードが使用できます。次に例を示します。

    ./csdb -v list

    次のサンプルコードは詳細出力を示しています。

    Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002)

    Calendar database version: 3.0.0 [BerkeleyDB]

    Total database size in bytes: 57344

    Total number of calendars:    2

    Total number of events:       0

    Total number of tasks:        0

    Total number of alarms:       0

    Total number of gse entries:  0

    Total number of master component entries:  0

    Total number of deletelog entries:  0

    Total logfile size in bytes:  5779919

    Session database version: 1.0.0 [BerkeleyDB]

    Total database size in bytes: 0

    Total logfile size in bytes:  0

    Counter database version: 1.0.0 [Memory Mapped Files]

    Total database size in bytes: 118792

    1 つのターゲットデータベースのグループ (caldbsessdb、または statdb) の指定には、-t オプションを使用します。たとえば、カレンダーデータベースのみのデータベースの状態と統計情報を表示するときは、次のように実行します。

    csdb -t caldb list

カレンダーデータベースの破損をチェックするには

カレンダープロパティ (calprops)、予定、および仕事 (作業) を含め、カレンダーデータベースを走査して破損がないかどうか調べるには、check コマンドを使用します。check コマンドにより回復不能な不整合が検出された場合、その状況がレポートとして出力されます。

check コマンドは、アラームまたは GSE (グループスケジューリングエンジン) データベースの破損をチェックしません。

データベースの破損をチェックするには、次のように実行します。

  1. Calendar Server がインストールされているシステムの管理権限を持つユーザーとしてログインします。
  2. Calendar Server は稼動中でも停止していてもかまいませんが、可能であれば停止してください。
  3. カレンダーデータベースのコピーをまだ作成していない場合は、コピーを作成します。データベース (.db) ファイルだけをコピーします。共有ファイル (__db.*) やログファイル (log.*) をコピーする必要はありません。
  4. cal_svr_base/SUNWics5/cal/sbin ディレクトリに移動します。たとえば、Solaris オペレーティングシステムでは次のように入力します。
  5. cd /opt/SUNWics5/cal/sbin

  6. カレンダーデータベースのコピーに対して check コマンドを実行します。
  7. ./csdb check dbdir > /tmp/check.out 2>&1

    dbdir を指定しない場合、現在のディレクトリに格納されているデータベースに対して check が実行されます。

    check コマンドは大量の情報を生成する可能性があるので、この例で示すように stdoutstderr を含むすべての出力をファイルとして書き出すことをお勧めします。

  8. check の実行が完了したら、出力ファイルを確認します。
  9. データベースが破損している場合、ホットバックアップのコピーに置き換えることができます。または、rebuild コマンドを実行して、破損したデータベースを再構築することもできます。このあとの「カレンダーデータベース (caldb) を再構築するには − GSE がない場合」を参照してください。

カレンダーデータベース (caldb) を再構築するには − GSE がない場合

破損してしまったカレンダーデータベース (caldb) を復元するときは、csdb ユーティリティの rebuild コマンドを使用します。rebuild コマンドで、すべてのカレンダーデータベースを走査して破損の発生を調べます。不整合が検出されると、rebuild コマンドは再構築したカレンダーデータベース (.db ファイル) を cal_svr_base/SUNWics5/cal/sbin/rebuild_db ディレクトリに生成します。

rebuild は大量の情報を生成する可能性があるので、stdoutstderr を含むすべての出力をファイルとして書き出すことをお勧めします。

次に示す手順では、rebuild コマンドは GSE (グループスケジューリングエンジン) データベースを再構築しません。再構築に GSE データベースを含める手順については、「カレンダーデータベースを再構築するには − GSE データベースを含める場合」を参照してください。

GSE データベースなしにカレンダーデータベースを再構築するには、次のように実行します。

  1. Calendar Server がインストールされているシステムの管理権限を持つユーザーとしてログインします。
  2. Calendar Server を停止します。
  3. カレンダーデータベースのコピーをまだ作成していない場合は、コピーを作成します。データベース (.db) ファイルとログ (log.*) ファイルをコピーします。共有ファイル (__db.*) をコピーする必要はありません。
  4. cal_svr_base/SUNWics5/cal/sbin ディレクトリに移動します。たとえば、Solaris オペレーティングシステムでは次のように入力します。
  5. cd /opt/SUNWics5/cal/sbin

    sbin ディレクトリのディスク容量が問題となる場合は、別のディレクトリで rebuild コマンドを実行します。

  6. カレンダーデータベースのコピーに対して rebuild コマンドを実行します。
  7. ./csdb rebuild /tmp/db /tmp/

    データベースディレクトリを指定しない場合、現在のディレクトリに格納されているデータベースに対して rebuild が実行されます。上記の例では、/tmp/ パラメータは、再構築したデータベースの出力先ディレクトリを指定しています。


    カレンダーデータベースを再構築するときは、常に最新のバックアップコピーを使用してください。

    ただし、膨大なデータが失われ、データベースの定期バックアップで複数のコピーを利用できるときは、最新のコピーから最も古いコピーの順に再構築を行います。この方法の唯一の欠点は、すでに削除されているカレンダーコンポーネントが再構築されたデータベースに再表示されることです。

    たとえば、3 つのバックアップカレンダーデータベースファイルが db_0601db_0615、および db_0629 というディレクトリに格納されている場合は、次の順序で rebuild コマンドを実行します。

    1. ./csdb rebuild db_0629

    Then check for corruption. If this backup copy is also corrupt, then run rebuild on the next backup copy.

    1. ./csdb rebuild db_0615

    Then check for corruption. If this backup copy is also corrupt, then run rebuild on the next backup copy.

    1. ./csdb rebuild db_0601

    ... etc.

    rebuild コマンドは再構築したデータベースを cal_svr_base/SUNWics5/cal/sbin/rebuild_db ディレクトリに書き込みます。


  8. rebuild の実行が完了したら、rebuild.out ファイルを確認します。再構築が正常に完了した場合、rebuild.out ファイルの最後の行は次のようになります。
  9. Calendar database has been rebuilt

  10. rebuild の成功を確認したら、再構築したデータベース (.db) ファイルを rebuild_db ディレクトリから本番データベースにコピーします。
  11. 破損したデータベースのディレクトリに共有ファイル (__db.*) やログファイル (log.*) が含まれていた場合は、それも運用ディレクトリに移動します。
  12. Calendar Server を再起動します。

カレンダーデータベースを再構築するには − GSE データベースを含める場合

サイトにグループスケジューリングを実装している場合は、再構築に GSE を含めることをお勧めします。

カレンダーデータベースと GSE データベースの両方を再構築するには、次のように実行します。

  1. GSE データベースにエントリが含まれているかどうかを調べるには、csschedule -v list コマンドを実行して GSE がすべてのエントリの処理を完了するようにします。
  2. Calendar Server がインストールされているシステムの管理権限を持つユーザーとしてログインします。
  3. Calendar Server を停止します。
  4. カレンダーデータベースのコピーをまだ作成していない場合は、コピーを作成します。データベース (.db) ファイルとログ (log.*) ファイルをコピーします。共有ファイル (__db.*) をコピーする必要はありません。
  5. cal_svr_base/SUNWics5/cal/sbin ディレクトリに移動します。たとえば、Solaris オペレーティングシステムでは次のように入力します。
  6. cd /opt/SUNWics5/cal/sbin

    sbin ディレクトリのディスク容量が問題となる場合は、別のディレクトリで rebuild コマンドを実行します。

  7. カレンダーデータベースのコピーに対して rebuild コマンドを実行します。
  8. ./csdb -g rebuild /tmp/db /tmp/

    データベースディレクトリを指定しない場合、現在のディレクトリに格納されているデータベースに対して rebuild が実行されます。上記の例では、/tmp/ パラメータは、再構築したデータベースの出力先ディレクトリを指定しています。


    カレンダーデータベースを再構築するときは、常に最新のバックアップコピーを使用してください。

    ただし、膨大なデータが失われ、データベースの定期バックアップで複数のコピーを利用できるときは、最新のコピーから最も古いコピーの順に再構築を行います。この方法の唯一の欠点は、すでに削除されているカレンダーコンポーネントが再構築されたデータベースに再表示されることです。

    たとえば、3 つのバックアップカレンダーデータベースファイルが db_0601db_0615、および db_0629 というディレクトリに格納されている場合は、次の順序で rebuild コマンドを実行します。

    ./csdb rebuild db_0629
    ./csdb rebuild db_0615
    ./csdb rebuild db_0601

    rebuild コマンドは再構築したデータベースを cal_svr_base/SUNWics5/cal/sbin/rebuild_db ディレクトリに書き込みます。


  9. rebuild の実行が完了したら、rebuild.out ファイルを確認します。再構築が正常に完了した場合、rebuild.out ファイルの最後の行は次のようになります。
  10. Calendar database has been rebuilt

  11. rebuild の成功を確認したら、再構築したデータベース (.db) ファイルを rebuild_db ディレクトリから本番データベースにコピーします。
  12. 破損したデータベースのディレクトリに共有ファイル (__db.*) やログファイル (log.*) が含まれていた場合は、それも運用ディレクトリに移動します。
  13. Calendar Server を再起動します。

再構築出力のサンプル

次の例は、コマンドと、そのコマンドにより生成された出力を示しています

# ./csdb -g rebuild

Building calprops based on component information.

Please be patient, this may take a while...

Scanning events database...

512 events scanned

Scanning todos database...

34 todos scanned

Scanning events database...

512 events scanned

Scanning todos database...

34 todos scanned

Scanning deletelog database...

15 deletelog entries scanned

Scanning gse database...

21 gse entries scanned

Scanning recurring database...

12 recurring entries scanned

Successful components db scan

Calendar database has been rebuilt

Building components based on calprops information.

Please be patient, this may take a while...

Scanning calprops database to uncover events...

25 calendars scanned

Scanning calprops database to uncover todos...

25 calendars scanned

Successful calprops db scan

Calendar database has been rebuilt


上記の出力サンプルでは、予定と仕事のデータベースがそれぞれ 2 回走査されたことを示しています。これはエラーではありません。最初の走査では calprops データベースの情報を確認し、次に再走査して calprops が確実にカレンダーデータベースからアクセスできることを確認します。


データベースグループを削除するには

カレンダーデータベースを削除するには、csdb ユーティリティのdelete コマンドを使用します。Calendar Server は停止している必要があります。

ターゲットデータベース (caldbsessdbstatdb) を指定するときは、-t オプションを指定します。指定しない場合、csdb は 3 種類すべてのデータベースを削除します。

たとえば、カレンダーデータベースを削除するときは、次のように実行します。

csdb -t caldb delete

データベースを削除する前に、csdb ユーティリティは警告を出力します。



前へ      目次      索引      次へ     


Part No: 819-1476.   Copyright 2005 Sun Microsystems, Inc. All rights reserved.