Назад | Перейти на главную страницу

Команда MongoDB copyDatabase succsefasully копирует базу данных, но дает мне другой размер на сервере Ner

Поэтому мне нужно переместить эту базу данных на другой сервер, и я использую MongoDB. copyDatabase команда.

Похоже, он успешно копирует его, но между двумя серверами разница в размере в 3 раза. Хотя в нем столько же объектов и коллекций ...

db.stats () для первого сервера:

> use myProjDb;
switched to db myProjDb
> db.stats
function (scale){
    return this.runCommand( { dbstats : 1 , scale : scale } );
}
> db.stats();
{
    "db" : "myProjDb",
    "collections" : 9,
    "objects" : 892,
    "avgObjSize" : 303.76681614349775,
    "dataSize" : 270960,
    "storageSize" : 1609728,
    "numExtents" : 18,
    "indexes" : 10,
    "indexSize" : 106288,
    "fileSize" : 201326592,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
        "major" : 4,
        "minor" : 5
    },
    "extentFreeList" : {
        "num" : 0,
        "totalSize" : 0
    },
    "ok" : 1
}
> ^C
bye

db.stats () для нового после того, как я скопирую его. CoreReports - это новое имя .:

> use CoreReports
switched to db CoreReports
> db.stats();
{
    "db" : "CoreReports",
    "collections" : 9,
    "objects" : 892,
    "avgObjSize" : 397.13004484304935,
    "dataSize" : 354240,
    "storageSize" : 663552,
    "numExtents" : 17,
    "indexes" : 10,
    "indexSize" : 106288,
    "fileSize" : 67108864,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
        "major" : 4,
        "minor" : 5
    },
    "extentFreeList" : {
        "num" : 0,
        "totalSize" : 0
    },
    "ok" : 1
}
> ^C
bye

Вы не совсем понимаете, какая часть вас интересует, но я думаю, что есть две возможности - размер хранилища и средний объект и размер данных.

Если вы имеете в виду различия в размерах объектов и данных, то какой версии работают два экземпляра? Версия 2.6 перешла на использование usePowerOf2Sizes в качестве метода распределения по умолчанию (вместо предыдущего метода распределения с точным соответствием), и единственная разница заключается в объектах (индексы имеют одинаковый размер), что предполагает это как возможную причину. Если они оба на 2.6, стоит проверить, не были ли изменены настройки в исходной базе данных (см. Ту же ссылку выше, чтобы узнать, как это сделать).

Что касается различий в размере хранилища, исходная база данных, скорее всего, просто фрагментирована (от удалений, обновлений, перемещений и т. Д.). Если вы запустили ремонт чтобы переписать его с нуля (что вы делаете, когда копируете его), вы увидите идентичные (или близкие к нему) результаты.