Erlang Mnesia資料庫遷移方法

2022-08-04 23:57:26 字數 920 閱讀 7184

本文參考

因為一些原因,需要把乙個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

('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資料庫設定主鍵自增

mnesia是erlang otp自帶的分布式資料庫管理系統。mnesia配合erlang的實現近乎理想,但在實際使用當中差強人意,總會有一些不足。mnesia資料表沒有主鍵自增的功能,但在mnesia函式中有乙個自增函式可以用來生成自增的id,在後面的內容將講述如何實現主鍵自增的功能。參照sqli...

erlang mnesia 節點同步資料

mnesia的機制稍微有些奇怪,今天一天都比較閒,於是測試study了下,看看是如果動作.目標 逐漸新增n個mnesia節點,並確保資料在這些節點上保持同步.過程如下 1.mnesia的分布式可以從乙個節點開始,然後慢慢新增.2.新增加乙個節點的時候,首先要確保新節點上已經呼叫過mnesia sta...

資料庫 資料庫索引

索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...