Поэтому мне нужно переместить эту базу данных на другой сервер, и я использую 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, стоит проверить, не были ли изменены настройки в исходной базе данных (см. Ту же ссылку выше, чтобы узнать, как это сделать).
Что касается различий в размере хранилища, исходная база данных, скорее всего, просто фрагментирована (от удалений, обновлений, перемещений и т. Д.). Если вы запустили ремонт чтобы переписать его с нуля (что вы делаете, когда копируете его), вы увидите идентичные (или близкие к нему) результаты.