Во-первых, создает ли mongodump какие-либо другие важные данные, кроме имен коллекций и индексов (при дампе конкретной базы данных), и если он делает, то что это?
mongodump
создает двоичную резервную копию ваших данных, включая определенные типы BSON, используется для полей. Дополнительные экспортируемые метаданные включают параметры коллекции (если вы изменили какие-либо значения по умолчанию) и определения индексов. Вы можете увидеть эту дополнительную информацию в *.metadata.json
файлах, созданных mongodump
.
Если я правильно помню, монго может не понравиться дампы, сделанные в разных версиях, что тоже может быть проблемой, это правда?
Как правило, вы должны иметь возможность воспроизводить старые дампы с более новыми версиями mongorestore
. Некоторые старые версии mongodump
могут не экспортировать все метаданные коллекций, которые вы ожидаете, поэтому общий совет состоит в том, чтобы mongodump
использовать как минимум ту версию сервера mongod
, на которой вы работаете, если не новее. Одним из таких примеров может быть mongodump
до версии 2.2, которая не создавала информацию metadata.json
, поэтому вам пришлось бы вручную обеспечивать индексы и параметры сбора.
Во-вторых, если я вручную извлеку имена коллекций и индексную информацию, сохраню их в json моего собственного формата, а затем восстановлю на другом сервере, будет ли этого достаточно для создания идентичной базы данных или чего-то не хватает?
Предполагая, что вы воссоздаете все параметры коллекции и индекса (и правильно примените их при создании новых коллекций), ваша база данных будет похожа на удаленном сервере, но, вероятно, не будет идентичной.
Основное отличие будет заключаться в целостности типов для полей (хотя это может не иметь значения для вашего варианта использования). BSON поддерживает более широкий набор типов данных, чем JavaScript. Например, JavaScript имеет один тип Number, а BSON поддерживает int32, int64 и double.
Если ваш процесс резервного копирования/восстановления учитывает это, используя что-то вроде MongoDB Extended JSON для представления дополнительных типов вы, вероятно, можете сделать две базы данных более согласованными.
person
Stennie
schedule
19.03.2015