Как добавить новую disc_only_copies node в базу данных mnesia, у которой уже есть схема?
Спасибо
Ответ 1
Запустите новый node ([email protected]) erl -sname b -mnesia dir '"/path/to/storage"' -s mnesia. Это запустит новую ram_copies node под названием [email protected].
В исходном node ([email protected]) в приглашении erlang выполните mnesia:change_config(extra_db_nodes, ['[email protected]']). Это приведет к тому, что исходный node будет подключен b к кластеру mnesia. На этом этапе [email protected] присоединился к кластеру, но имеет только копию схемы.
Чтобы сделать новый node [email protected] способным хранить копии диска, нам нужно изменить тип таблицы схемы на [email protected] от ram_copies до disc_copies. Запустите mnesia:change_table_copy_type(schema, '[email protected]', disc_copies). на любом node.
Эта команда может занять некоторое время, так как она скопирует содержимое каждой таблицы по сети.
[email protected] теперь является точной копией [email protected]. Вы можете изменить этот оператор - замените переменную Type на disc_only_copies в вызове mnesia:add_table_copy/3, чтобы скопировать таблицы, но убедитесь, что они только на диске.
документация mnesia объясняет, как использовать функции, которые я здесь показал.