【问题标题】:Transfer Mnesia Backup To Smaller Cluster将 Mnesia 备份转移到较小的集群
【发布时间】:2023-04-01 00:29:01
【问题描述】:

我有一个来自 3 节点 Mnesia 集群(生产集群)的备份,我想将其还原到 2 节点集群(我将其用于开发目的以重现错误)。如果集群具有相同数量的节点,则可以遵循here 概述的配方。如何从备份中删除节点?这可能吗?

我尝试更改子句 ({schema, db_nodes, Nodes}, Acc) 以返回较小的节点列表,但这似乎不起作用(或者它可能起作用,但还不够)。

【问题讨论】:

    标签: erlang mnesia


    【解决方案1】:

    事实证明这很容易做到:

    #!/usr/bin/env escript
    
    change_node_name(Mod, Source, Target) ->
    
        % Change this to whatever you want the new node list to be,
        % with however many nodes, whatever names, etc.
        ChangeNodes =
            fun(_Nodes) ->
                ['node1@jamie.kingsbery.net','node2@jamie.kingsbery.net']
            end,
    
        Convert =
            fun({schema, db_nodes, Nodes}, Acc) ->
                    {[{schema, db_nodes, ChangeNodes(Nodes)}], Acc};
               ({schema, version, Version}, Acc) ->
                    {[{schema, version, Version}], Acc};
               ({schema, cookie, Cookie}, Acc) ->
                    {[{schema, cookie, Cookie}], Acc};
               ({schema, Tab, CreateList}, Acc) ->
                    Keys = [ram_copies, disc_copies, disc_only_copies],
                    OptSwitch =
                        fun({Key, Val}) ->
                                case lists:member(Key, Keys) of
                                    true -> {Key, ChangeNodes(Val)};
                                    false-> {Key, Val}
                                end
                        end,
                    {[{schema, Tab, lists:map(OptSwitch, CreateList)}], Acc};
               (Other, Acc) ->
                    {[Other], Acc}
            end,
        mnesia:traverse_backup(Source, Mod, Target, Mod, Convert, switched).
    
    main(_Args)->
        change_node_name(mnesia_backup,"/tmp/source-backup","dest-backup").
    

    【讨论】:

      猜你喜欢
      • 2010-10-21
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2021-09-15
      • 2022-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多