перенести сгенерированные данные MMAPv1 в WiredTiger

Я запускаю веб-приложение (keystonejs), используя mongodb 3.0 в качестве базы данных. Я клонировал веб-приложение и запустил второй экземпляр, используя версию 3.2 mongodb (в сгенерированной, но еще пустой базе данных). Теперь мне нужно передать данные из первой базы данных во вторую. Поскольку mongodb 3.2 использует другой механизм хранения по умолчанию, WiredTiger, клон использует его. Однако исходное приложение использует MMAPv1. Есть ли простой способ перенести данные, созданные MMAPv1, в WiredTiger?


person Macs    schedule 07.02.2016    source источник
comment
вот подробное описание миграции с репликацией - stackoverflow.com/questions/41960659/   -  person Maksim Kudimov    schedule 07.02.2017


Ответы (2)


Создайте резервную копию базы данных на старом сервере с помощью mongodump, восстановите ее обратно на новый с помощью mongorestore, готово. Это довольно хорошо описано в документации.

https://docs.mongodb.org/manual/tutorial/change-standalone-wiredtiger/

person Karl-Johan Sjögren    schedule 07.02.2016

Вы можете создать набор реплик и добавить в него новую машину. При этом у вас будут последние данные на новом сервере. После завершения репликации переключите новую машину на первичную и выключите старый сервер, если хотите. Таким образом, вы можете легко клонировать существующие данные в wiredTiger без потери данных или негативного воздействия на существующее приложение.

person Saleem    schedule 07.02.2016
comment
Это определенно вариант, который я рассмотрю в будущем. Спасибо, что поделились этим Салимом - person Macs; 18.02.2016
comment
Первоначальная синхронизация помещает таблицы в память, поэтому вам нужно достаточно памяти на новом компьютере, соответствующего размеру самой большой таблицы, иначе произойдет сбой. - person Zaur; 23.09.2017