前へ     目次     索引     DocHome     次へ     
iPlanet Calendar Server 管理者ガイド



第 5 章   Calendar Server データベースの管理


この章では、csdb ユーティリティを使用して Calendar Server データベースとカレンダーデータを管理する方法について説明します。

この章は、次の節に分かれています。

csdb ユーティリティを実行するには、Calendar Server が稼動しているシステムに対して管理権限を持つユーザとしてログインする必要があります。詳細については、第 7 章「Calendar Server コマンド行 ユーティリティ」を参照してください。

カレンダーデータベースのバックアップと復元については、第 6 章「Calendar Server  データのバックアップと復元」を参照してください。



ターゲットデータベースの指定



csdb ユーティリティの -t オプションによって、ターゲットデータベースを指定できます。

  • -t caldb−カレンダーデータベース

  • -t sessdb−セッションデータベース

  • -t statdb−統計データベース

-t オプションが指定されていない場合は、 csdb はcheckrebuild コマンドの時をのぞいて、すべてのデータベースに対して処理を行います。check コマンドと rebuild コマンドの処理対象は、カレンダーデータベースだけです。

表 5-1は、カレンダーデータベース (caldb) の各種ファイルについて説明しています。


表 5-1    カレンダーデータベースファイル

ファイル

説明

ics50calprops.db  

すべてのカレンダーのカレンダープロパティ。カレンダー ID (calid)、カレンダー名、アクセス制御リスト (ACL)、所有者など  

.ics50events.db  

すべてのカレンダーにおけるイベント  

ics50todos.db  

すべてのカレンダーにおける予定 (todo)  

ics50alarms.db  

すべてのイベントと予定 (todo) のアラーム  

ics50gse.db  

グループスケジューリングエンジン (GSE) に対するスケジューリング要求のキュー  

ics50journals.db  

すべてのカレンダーのジャーナル。現行リリースの Calendar Server では、ジャーナルは実装されていない  

ics50caldb.conf  

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



カレンダーデータベースステータスの表示



カレンダーデータベースのステータスを表示するには、csdb ユーティリティの list コマンドを使用します。Calendar Server は、稼動していても停止していてもどちらでもかまいません。

-t オプションを使用して、ターゲットデータベース (caldbsessdb、またはstatdb) を指定します。-t オプションを指定しなかった場合、csdb は 3 個のデータベースすべてに対して操作を行います。

たとえば、すべてのデータベースのステータスと統計を表示するには、次のコマンドを入力します。

csdb list

現在のディレクトリに入っているカレンダーデータベースに関する情報を冗長モードで表示するには、次のコマンドを入力します。

csdb -v -t caldb list



カレンダーデータベースの削除



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

-t オプションを使用して、ターゲットデータベース (caldbsessdb、またはstatdb) を指定します。-t オプションを指定しなかった場合、csdb は 3 個のデータベースすべてを削除します。

たとえば、カレンダーデータベースを削除するには、次のコマンドを入力します。

csdb -t caldb delete

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



カレンダーデータのインポートとエクスポート



ファイルとの間でカレンダーデータのエクスポートとインポートを行うには、csexport ユーティリティと csimport ユーティリティを使用します。カレンダーデータの形式は、iCalendar (.ics) と XML (.xml) のどちらでもかまいません。

csexportcsimport は、Calendar Server がインストールされているマシン上でローカルに実行する必要があります。Calendar Server は、稼動していても停止していてもどちらでもかまいません。


カレンダーデータのエクスポート

カレンダーデータをファイルにエクスポートするには、csexport を使用します。出力ファイルに対して指定するファイル名拡張子 (.ics または .xml) によって、使用する形式が決まります。

たとえば、JSmithcal というカレンダー ID (calid) を持つカレンダーを、 jsmith.ics という名前のファイルに iCalendar (テキスト/カレンダー MIME) 形式でエクスポートするには、次のコマンドを入力します。

csexport -c JSmithcal calendar jsmith.ics

カレンダー JSmithcal を、jsmith.xml という名前のファイルに XML (テキスト/xml MIME) 形式でエクスポートするには、次のコマンドを入力します。

csexport -c JSmithcal calendar jsmith.xml


カレンダーデータのインポート

csexport ユーティリティを使用して以前に保存したカレンダーデータをファイルからインポートするには、csimport を使用します。インポートファイルのファイル名拡張子 (.ics または .xml) は、保存時の形式を示します。

たとえば、iCalendar (テキスト/カレンダー MIME) 形式で保存されたカレンダーデータを、ファイル jsmith.ics から JSmithcal というカレンダー ID (calid) を持つカレンダーにインポートするには、次のコマンドを入力します。

csimport -c JSmithcal calendar jsmith.ics

XML (テキスト/xml MIME) 形式で保存されたデータを、jsmith.xml というファイルからカレンダー JSmithcal にインポートするには、次のコマンドを入力します。

csimport -c JSmithcal calendar jsmith.xml

指定したカレンダー ID (calid) がすでに存在する場合、そのデータは新しいデータをインポートする前にクリアされます。



破損したデータベースの回復



破損したセッションデータベースや統計データベースを回復するには、csdb ユーティリティの recover コマンドを使用します。-t オプションを使用してターゲットデータベースとなる sessdb (セッション) または statdb (統計) を指定します。

recover コマンドを実行する前に、stop-cal コマンドを使用して Calendar Server を停止します。

たとえば、現在のディレクトリ内の破損したセッションデータベースを回復するには、次のコマンドを入力します。

csdb -t sessdb recover



破損したカレンダーデータベース (caldb) を回復するには、csdb ユーティリティの recover コマンドではなく、check コマンドと rebuild コマンドを使用します。

詳細については、「カレンダーデータベースのチェックと再構築」 を参照してください。





カレンダーデータベースのチェックと再構築



csdb ユーティリティには、次カレンダーデータベース (caldb) をチェックし、必要であれば再構築を行うコマンドが用意されています。

  • check コマンドは、カレンダーデータベースをスキャンして破壊が発生したかどうかを調べ、結果をその出力にレポートします (check コマンドは、アラームや グループスケジューリングエンジン (GSE) データベースの破壊についてはチェックしません)。

  • rebuild コマンドもカレンダーデータベースをスキャンして破壊が発生したかどうかを調べ、必要であれば再構築したカレンダーデータベース (.db ファイル) を生成します。

csdb ユーティリティにも、破損したセッションデータベースや統計データベースを回復するための recover コマンドが用意されています。カレンダーデータベースが破壊している場合は、recover コマンドではなく check コマンドと rebuild コマンドを使用します。



注意

これらのコマンドを使用する前に、csbackup ユーティリティ (または他のバックアップユーティリティ) を使用してカレンダーデータベースのバックアップを作成しておきます。




カレンダーデータベースの破壊状態のチェック

check コマンドはカレンダーデータベースをスキャンし、カレンダープロパティ (calprop) のイベントと予定 (todo) が破壊していないかどうかをチェックします。修理不能な非整合性を check コマンドが見つけた場合には、その状況がスキャン結果にレポートされます。

check コマンドを定期的に実行し、カレンダーデータベースに非整合性がないかどうかをチェックしてください。たとえば、データベースをバックアップするたびに check を実行するとよいかもしれません。ただし、カレンダーデータベースが破壊していることがわかっている場合には、 check コマンドを実行する必要はありません。チェック処理は省略し、破壊したデータベースの再構築を行なってください。


カレンダーデータベースが破壊しているかどうかをチェックする手順は、次のとおりです。

  1. Calendar Server がインストールされているシステムに対して管理権限を持つユーザとしてログインします。

  2. Calendar Server が稼動中であっても停止していてもどちらでもかまいませんが、可能であれば Calendar Server を停止します。

  3. カレンダーデータベースのコピーをまだ作成していない場合には、ここでコピーを作成します。コピーするのは、6 個のデータベース (.db) ファイルだけです。共有ファイル (*.share) やログファイル (log.*) をコピーする必要はありません。

  4. server-root/cal/bin ディレクトリに移動します。たとえば、Solaris の場合は次のコマンドを入力します。

    cd /opt/SUNWics5/cal/bin

  5. カレンダーデータベースのコピーに対し、check コマンドを実行します。

    ./csdb check dbdir > /tmp/check.out 2>&1

    dbdir が指定されていない場合、check コマンドは ics.conf ファイルに指定されているデータベースを使用します。

    check コマンドは大量の情報を出力する可能性があるので、stdoutstderr を含むすべての出力をファイルにリダイレクトするとよいかもしれません (上記の例を参照)。

  6. check が終了したら、出力ファイルの内容を確認します。データベースが破壊している場合は、rebuild コマンドを実行します。


破壊したカレンダーデータベースの再構築

rebuild コマンドはカレンダーデータベースをスキャンし、カレンダープロパティ (calprop) のイベントと予定 (todo) が破壊していないかどうかをチェックします。非整合性が見つかった場合、rebuild コマンドは、再構築したカレンダーデータベース (.db ファイル)を server-root/cal/bin/rebuild_db/ ディレクトリに生成します。



rebuild コマンドは、グループスケジューリングエンジン (GSE) データベースを除くすべてのデータベースを再構築します。GSE データベースにエントリが存在するかどうかを調べるには、csschedule -v list コマンドを実行し、GSE がエントリの処理を終了してから rebuild コマンドを実行します。




破壊したカレンダーデータベースを再構築する手順は、次のとおりです。

  1. Calendar Server がインストールされているシステムに対して管理権限を持つユーザとしてログインします。

  2. Calendar Server を停止します。

  3. カレンダーデータベースのコピーをまだ作成していない場合には、ここでコピーを作成します。コピーするのは、6 個のデータベース (.db) ファイルだけです。共有ファイル (*.share) やログファイル (log.*) をコピーする必要はありません。

  4. server-root/cal/bin ディレクトリに移動します。たとえば、Solaris の場合は次のコマンドを入力します。

    cd /opt/SUNWics5/cal/bin

  5. カレンダーデータベースのコピーに対し、rebuild コマンドを実行します。

    ./csdb rebuild dbdir > /tmp/rebuild.out 2>&1

    ディレクトリが指定されていない場合、rebuild コマンドは ics.conf ファイルに指定されているデータベースを使用します。

    rebuild コマンドは大量の情報を出力する可能性があるので、stdoutstderr を含むすべての出力をファイルにリダイレクトするとよいかもしれません (上記の例を参照)。



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

    ただし、大量のデータを失ってしまったが、データベースを定期的にバックアップしていたため複数のコピーがある場合には、最新のコピーから最も古いコピーの順に再構築します (この方法における唯一の欠点は、いったん削除されたカレンダーコンポーネントが再構築後のデータベースに再度出現することです)。

    たとえば、db_0601db_0615db_0629 という 3 個のディレクトリにバックアップカレンダーデータベースファイルが 3 組ある場合、rebuild コマンドを次の順序で実行します。

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

    それから rebuild コマンドは、再構築されたデータベースを server-root/cal/bin/rebuild_db/ ディレクトリに書き込みます。



  6. rebuild が終了したら、rebuild.out ファイルの内容を確認します。再構築が成功した場合、rebuild.out ファイルの最後の行は次のようになっているはずです。

    Calendar database has been rebuilt

  7. 上記の手順で再構築が成功したことを確認したら、再構築したデータベース (.db) ファイルを server-root/cal/bin/rebuild_db/ ディレクトリから運用しているデータベースにコピーします。

  8. 破壊したデータベースに入っていた共有ファイル (*.share) やログファイル (log.*) が残っている場合には、削除するか別のディレクトリに移動します。

  9. Calendar Server を再起動します。


前へ     目次     索引     DocHome     次へ     
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.

最終更新日: 2002 年 1 月 22 日