We have a 2-node ejabberd cluster. We begin with both running, then we shut down the master node, and the slave node continues to serve traffic just fine. However, when we restart the slave node (or if it crashes for some reason) while the master is down it does not start back up.
I seem to remember this working with ejabberd 1.4 by only replicating the roster table (we don't use internal authentication, so we don't have a password table) however we seem to have misplaced our documentation. It looks like the table replication settings were reset when we upgraded to 2.x (2.0.5 current.)
As an experiment, we have set up the slave node so that *every* mnesia table is 'RAM and disc copy'. The slave node now starts up. However, I don't think that it would necessarily be wise to run with this configuration in production.
2 questions:
1. Which tables specifically need to be replicated in order for a slave node to start without the master being available?
2. Is there any way to define the table replication settings in the configuration instead of doing this manually?
> 1. Which tables
> 1. Which tables specifically need to be replicated in order for a slave node to start without the master being available?
Maybe those ones: last_activity, offline_msg, passwd, privacy, private_storage, roster, vcard. Maybe also the muc and pubsub tables, depending in your setup.
> 2. Is there any way to define the table replication settings in the configuration instead of doing this manually?
Not possible.