Erlang 是否可以在集群中运行Mnesia而不进行复制

Erlang 是否可以在集群中运行Mnesia而不进行复制,erlang,mnesia,Erlang,Mnesia,我想知道,我是否可以在没有复制的情况下运行Mnesia。假设我有一个节点集群,其中一个节点承载带有光盘拷贝的mNesia服务器——让我们把这个节点称为mNode。其余节点(服务节点)应从mNode加载架构,并且不应维护任何本地副本 我查看了mNesia文档,但找不到这样做的方法。是的!您可以在所有节点上创建模式,但将表定义为仅在m_节点上具有ram/磁盘副本。通过这种方式,可以从所有节点访问它们,但只能在一个节点上存储数据。是!您可以在所有节点上创建模式,但将表定义为仅在m_节点上具有ram/磁

我想知道,我是否可以在没有复制的情况下运行Mnesia。假设我有一个节点集群,其中一个节点承载带有光盘拷贝的mNesia服务器——让我们把这个节点称为mNode。其余节点(服务节点)应从mNode加载架构,并且不应维护任何本地副本


我查看了mNesia文档,但找不到这样做的方法。

是的!您可以在所有节点上创建模式,但将表定义为仅在m_节点上具有ram/磁盘副本。通过这种方式,可以从所有节点访问它们,但只能在一个节点上存储数据。

是!您可以在所有节点上创建模式,但将表定义为仅在m_节点上具有ram/磁盘副本。通过这种方式,可以从所有节点访问它们,但只能在一个节点上存储数据。

阅读文档 无盘节点部分讨论如何实现这个用例。 下面的步骤设置这样的环境

 1. Start mNode
 erl -sname m_node -mnesia dir "/tmp/funky/"

 2.Start Service node
 erl -sname s1

 3. Create Cluster 
 net_adm:ping('s1@_)').

 4. On m_node run 
  mnesia:change_config(extra_db_nodes, ['s1@_']).  
  mnesia:create_table(funky, []).

 5. On s1 node 
   mnesia:start().
   mneisa:info().

  remote             = [funky]     // Points to Remote table funky on node m_node
  ram_copies         = [schema]    // Ram copy of schema is kept in each service node.
阅读文档 无盘节点部分讨论如何实现这个用例。 下面的步骤设置这样的环境

 1. Start mNode
 erl -sname m_node -mnesia dir "/tmp/funky/"

 2.Start Service node
 erl -sname s1

 3. Create Cluster 
 net_adm:ping('s1@_)').

 4. On m_node run 
  mnesia:change_config(extra_db_nodes, ['s1@_']).  
  mnesia:create_table(funky, []).

 5. On s1 node 
   mnesia:start().
   mneisa:info().

  remote             = [funky]     // Points to Remote table funky on node m_node
  ram_copies         = [schema]    // Ram copy of schema is kept in each service node.