当我得到时,我在mnesia集群数据中有一个坏节点(它不存在):
> mnesia:system_info(db_nodes)
[bad@node, ...]
Run Code Online (Sandbox Code Playgroud)
如何从群集中删除它?
我试过了:
> mnesia:del_table_copy(scheme, bad@node).
{aborted,{not_active,"All replicas on diskfull nodes are not active yet"...
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我该如何解决?
更新.在从架构中删除节点之前,我们需要在其上停止mnesia
setup_mnesia(Name) ->
?VALUE(application:start(mnesia)),
?VALUE(mnesia:create_schema([node()|[Name]])),
?VALUE(mnesia:create_table(muppet, [
{attributes, record_info(fields, muppet)},
{disc_copies, [foo@kos13]}])),
?VALUE(mnesia:wait_for_tables([muppet], infinity)),
ok.
Run Code Online (Sandbox Code Playgroud)
结果是
"application:start(mnesia)"= ok
"mnesia:create_schema([node()| [Name]])"= {error,{foo @ kos13,{already_exists,foo @ kos13}}}
"mnesia:create_table(muppet,[{attributes,record_info(fields,muppet)},{disc_copies,[foo @ kos13]}])"= {aborted,{bad_type,muppet,disc_copies,foo @ kos13}}
EDITED,ADDED如果重写两个进程来调用应用程序:在mnesia之后启动:create_schema它吐出"无法安装回退".在当前目录中出现两个文件--FALLBACK.BUP和foo @ kos13131851070846165246847780.