× Sympa のデータベース

This content was obsoleted.

Sympa を実行するにはリレーショナルデータベース (RDBMS) が必要です。現在のところ、次のいずれかの RDBMS を使えます: MySQL、SQLite、PostgreSQL、Oracle、Sybase。他の RDBMS とのインタフェースは、コードに若干の修正を施すだけでできます。多くの RDBMS の DBD (データベースドライバ) を持つ DBI (データベースインタフェース) の API を使っているためです,

Sympa はデータベースに 3 種類の情報を、それぞれひとつのテーブルとして格納します:

  • ユーザの個人設定とパスワードを user_table テーブルに。
  • リストの読者登録情報と読者登録オプションを subscriber_table テーブルに。このテーブルには、取り込んだ利用者のキャッシュも入ります。
  • リストの管理情報と、オーナーや吟味役のオプションを admin_table テーブルに。このテーブルには、取り込んだオーナーや吟味役のキャッシュも入ります。
  • さらに、運用記録が log_table に。リストのオーナーは、ウェブインタフェイスでリストの運用記録を閲覧できます。

前提条件

Perl モジュールのインストール

Sympa データベースの作成

sympa.pl プロセスは、起動時に、データベース (sympa.conf に設定されている) が利用可能で期待通りの構成になっているかどうか調べます。なっていなければ、sympa.pl プロセスはデータベースを作成するか、構成を更新します。ただし、この機能が利用できるのは MySQL の場合だけで、他の RDBMS との連携は不完全です。なお、この自動処理では MySQL の root がパスワードを使わないようになっている必要があります。パスワードを使っているのであれば、sympa.pl を最初に実行するときだけ無効にしてください。

自動処理ではまた、sympa.conf で宣言した db_user に権限を与えます。

データベースの権限設定

読者データのインポート

データベーステーブルの拡張

データベース中の Sympa ログ

Sympa の設定

新たに作成したデータベースに読者情報を格納するには、まず、稼働させるデータベースの種類を Sympa に教えておき、それからリストがデータベースにアクセスできるよう設定する必要があります。

sympa.conf の関連するパラメータでデータベースの置き場所を定義します。次のものです: db_typedb_namedb_hostdb_userdb_passwd

Sympa を Oracle データベースとインタフェースしているときは、

  1. db_name を SID にします。
  2. ORACLE_HOME 環境変数を sympa.conf の db_env パラメータで設定しなければなりません。

これで、すべてのリストでデータベースを使うよう設定ができました (ただし、user_data_source リストパラメータを fileinclude に設定してある場合は別です)。

こうして、Sympa はリストの利用者情報を、subscribers ファイルではなく、データベースを使って取り出したり格納したりするようになります。なお、読者情報はシャットダウンのたびに subscribers.db.dump に書き出されます。これは、万一データベースがアクセス不能になった場合に、手動での復旧ができるようにするためです (subscribers.db.dump の名前を subscribers に変え、user_data_source パラメータを変更します)。


× Sympa and its database の 2008/06/25 14:46 の版をもとに翻訳しました。もとの文書の更新に気づいた方は、差分を参照して更新してください。

翻訳作業については 訳語について も参照してください。

  • ja/manual/database.txt
  • Last modified: 2018/03/30 08:08
  • by ikeda@conversion.co.jp