私はデータベースをクラッシュしたサーバから新しいサーバに復元する手順を確立しようとしています。私のサーバーはEjabberdをXMPPサーバーとして実行しており、mnesiaの代わりにpostgresqlを使用するように構成しました。ejabberdがmnesiaを使用するのを止める方法
私の手順は、「元のDBの内容をダンプし、新しいサーバを実行し、psqlを使用してDBの内容を復元してから、システムを実行する」のようなものです。私は再びEjabberdを実行しようとするしかし、私はクラッシュを取得:
=CRASH REPORT==== 3-Dec-2010::22:05:00 ===
crasher:
pid: <0.36.0>
registered_name: []
exception exit: {bad_return,{{ejabberd_app,start,[normal,[]]},
{'EXIT',"Error reading Mnesia database"}}}
in function application_master:init/4
ここで私は私がまだMnesiaを使用していたようですしながら、私のシステムは、PostgreSQLの上で実行されていることを考えていました。私はいくつか質問があります:
- どのようにしてmnesiaが使用されていないことを確認できますか?
- すべてのejabberdアクティビティをPGSQLに転送するにはどうすればよいですか?
これは私のejabberd.cfgファイル内のモジュールの一部です:
{modules,
[
{mod_adhoc, []},
{mod_announce, [{access, announce}]}, % requires mod_adhoc
{mod_caps, []},
{mod_configure,[]}, % requires mod_adhoc
{mod_ctlextra, []},
{mod_disco, []},
{mod_irc, []},
{mod_last_odbc, []},
{mod_muc, [
{access, muc},
{access_create, muc},
{access_persistent, muc},
{access_admin, muc_admin},
{max_users, 500}
]},
{mod_offline_odbc, []},
{mod_privacy_odbc, []},
{mod_private_odbc, []},
{mod_pubsub, [ % requires mod_caps
{access_createnode, pubsub_createnode},
{plugins, ["default", "pep"]}
]},
{mod_register, [
{welcome_message, none},
{access, register}
]},
{mod_roster_odbc, []},
{mod_stats, []},
{mod_time, []},
{mod_vcard_odbc, []},
{mod_version, []}
]}.
私は何をしないのですか?
私は、Ejabberdによって使用されているmnesia DBに起因するクラッシュを想定しています。PGSQL DBとの同期がとれていないため、正しく動作しません。方向。
EDIT:1つの問題を解決しました。 amazonクラウドを使用しているので、ERLANG_NODEをハードコードする必要があったので、ホスト名(再起動時に変更される)によって定義されません。これは私のejabberdを稼働させましたが、それでもmnesiaの使用をやめたいのですが、ejabberdのどの部分がまだそれを使用しているのでしょうか?
ありがとうございました。実際、mod_pubsubは私の設定ではODBCではありません。しかし、私のインストールでmod_pubsub_odbcが見つかりませんでした。私のインストールが古いか、何か不足しているのだろうかと思います。 –