Erlang Mnesia数据库迁移方法
Posted jlom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Erlang Mnesia数据库迁移方法相关的知识,希望对你有一定的参考价值。
本文参考https://blog.csdn.net/yangzm/article/details/51686249
需求
因为一些原因,需要把一个Mnesia节点的数据库搬迁到另一个节点,然后弃用原来的节点。
步骤
- 首先假设节点A
‘A@IPA‘
需要搬迁到节点B‘B@IPB‘
,它们需要能够连通 ‘A@IPA‘
需要启动着(包括mnesia, -set_cookie $CookieA)- 启动节点B,为mnesia指定一个新路径
#erl -name ‘B@IPB‘ -set_cookie $CookieA -mnesia dir mnesia数据路径 -s mnesia
- 链接:
‘A’@IPA
(‘B@IPB‘)1>mnesia:change_config(extra_db_nodes,[‘A@IPA‘, ‘B@IPB‘]).
- 将B节点的schema表该为disc_copies
(‘B@IPB‘)2>mnesia:change_table_copy_type(schema,node(),disc_copies).
- 把A节点所有的disc_copies、disc_copies_only表拷贝过来
mnesia:move_table_copy(Tab :: table(), From :: node(), To :: node()) -> t_result(ok)
(‘B@IPB‘)3>mnesia:move_table_copy(表名, ‘A@IPA‘, ‘B@IPB‘).
6.停止A节点,在B节点删掉A节点上的schema表
mnesia:del_table_copy(schema,‘A@IPA‘).
7.停止B节点,重新启动B节点,查看B节点Mnesia中A节点的schema表已经没有了
以上是关于Erlang Mnesia数据库迁移方法的主要内容,如果未能解决你的问题,请参考以下文章