[erlang-questions] Adding new nodes to a Msenia group?
Mon Apr 30 08:17:28 CEST 2007
----- "Chandru" <> wrote:
> On 27/04/07, Tom Samplonius <> wrote:
> > I've trying to understand Mnesia to see if it is suitable for my
> project. It seems that you must define the nodes that contain on-disk
> storage when the schema is created. And that must be done with Mnesia
> shutdown. Is is possible to create a schema with on-disk storage when
> Mnesia is active? Is it possible to create new Mnesia nodes with an
> empty node list (local node), and then use add_table_copy/3 to extend
> the database onto the new node?
> You can't create a disk based mnesia schema with no nodes in it. When
> you start up mnesia without creating a schema, you get a ram based
> mnesia schema which has just that node. You can then convert that
> schema to a disk based one whenver you want to using
> Once you have one node with an mnesia schema, you can add new nodes
> the schema using the function mnesia:add_table_copy/3. Look in the
> user guide - I'm sure you will find it in there.
> Whenever you add a new node to the schema, you first have to create
> the schema as a ram_copies table on the new node and then change it
> a disk based one.
I still can't see how to do this. I setup a single Mnesia node, with on-disk schema, and then created a single table. Then I setup a second node (but did not create an on-disk schema with create_schema/1), and attempted to duplicate the "schema" table to the second node. It seems to work:
()14> mnesia:add_table_copy(schema, , ram_copies).
and shows as a stopped node, but is never updated or connected to (nodex() is empty). I can use connect_to/1 to force a node connection, but Mnesia still shows as down.
More information about the erlang-questions