2015-01-03 3 views
3

EnvironmentКак подключить оболочку 2.6 mongo к 2.4.9 mongod?

  • Linux Mint 17.1
  • localhost
  • По умолчанию MongoDB порт 27017
  • Нет имя пользователя или пароль, необходимые для подключения из сценария.

фон

Я установил MongoDB с:

apt-get install mongodb-10gen=2.4.9 

я тогда 'возлагали' пакет так, что никакие обновления не будут применяться к нему:

echo "mongodb-10gen hold" | sudo dpkg --set-selections 

Желаемый Behaviou r

Я хочу обновить до последней версии MongoDB и смотрю на официальное руководство для этого процесса:

http://docs.mongodb.org/manual/release-notes/2.6-upgrade

Early на нем гласит:

Чтобы начать процедуру обновления , подключите 2.6 mongo shell к MongoDB 2.4 mongos или mongod и запустите db.upgradeCheckAllDBs(), чтобы проверить свой набор данных на совместимость.

Вопрос

Как я connect a 2.6 mongo shell к 2.4.9 mongod?

Я предположил бы, что я каким-то образом нужно просто установить 2.6 mongo shell и запустить его, но:

  • Я не знаю, как это сделать, и
  • Я не хочу, чтобы сломать что-нибудь.

Я сделал mongodump всей базы данных, поэтому у вас есть резервная копия.

ответ

3

Я попытался установить mongo 2,6 индивидуально, но это вызвало маркировку других упаковок для удаления. Я закончил тем, что просто удалил старые пакеты и переустановил новые, и включил сюда этот процесс для справки.

Некоторые из приведенных ниже шагов не работают, но я включил их и их результаты в документацию о том, что было пробовано. Я ранее делал mongodump всех баз данных, поэтому имел резервную копию.

Конечным результатом является то, что все в настоящее время кажется «рабочим», кроме восстановления базы данных admin.

01. Выключите mongod

mongo 
use admin 
db.shutdownServer() 

от: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/

02. устранило 'возлагали пакет' состояние mongodb-10gen с:

echo "mongodb-10gen install" | sudo dpkg --set-selections 

от: https://help.ubuntu.com/community/PinningHowto

03. Затем я попытался установить последнюю mongo с:

sudo apt-get install -y mongodb-org-shell 

от: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ версии

04. Оболочка казалось обновление:

mongo --version 
MongoDB shell version: 2.6.6 

05. B ут, то я не мог соединиться с mongo:

mongo 
connecting to: test 
2015-01-04T00:08:50.482+1000 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused 
2015-01-04T00:08:50.483+1000 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146 
exception: connect failed 

или mongod:

mongod 
The program 'mongod' is currently not installed. You can install it by typing: 
sudo apt-get install mongodb-server 

06. я побежал следующее, чтобы увидеть историю APT-получить инсталлирует/удалений:

less /var/log/apt/history.log 

и получены:

Start-Date: 2015-01-04 00:02:08 
Commandline: apt-get install -y mongodb-org-shell 
Install: mongodb-org-shell:amd64 (2.6.6) 
Remove: mongodb-10gen:amd64 (2.4.9) 
End-Date: 2015-01-04 00:02:21 

07. Я побежал:

dpkg --get-selections 

и увидел:

mongodb-10gen deinstall 

Я думаю, что 'деинсталлировать' означает, что она помечается для удаления.

08. я решил удалить все mongodb-10gen пакеты с:

sudo apt-get purge mongodb-10gen 

Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
The following packages were automatically installed and are no longer required: 
    gir1.2-clutter-gst-2.0 gir1.2-ges-1.0 gstreamer1.0-gnonlin libav-tools 
    libavdevice53 libavfilter3 libavresample1 libges-1.0-0 libgoocanvas-common 
    libgoocanvas3 libmlt++3 libmlt-data libmlt6 libqjson0 libquicktime2 
    libsoprano4 melt python-dateutil python-gst-1.0 python-matplotlib 
    python-matplotlib-data python-mlt python-pygoocanvas python-pyparsing 
    python-tz python3-bs4 python3-markdown shared-desktop-ontologies 
    soprano-daemon wkhtmltopdf 
Use 'apt-get autoremove' to remove them. 
The following packages will be REMOVED: 
    mongodb-10gen* 
0 to upgrade, 0 to newly install, 1 to remove and 3 not to upgrade. 
After this operation, 0 B of additional disk space will be used. 
Do you want to continue? [Y/n] 

Y 

(Reading database ... 246460 files and directories currently installed.) 
Removing mongodb-10gen (2.4.9) ... 
Purging configuration files for mongodb-10gen (2.4.9) ... 
dpkg: warning: while removing mongodb-10gen, directory '/var/lib/mongodb' not empty so not removed 

от: https://askubuntu.com/a/147177

09. Я сделал резервную копию каталога, который не может быть удален т.е. /var/lib/mongodb:

sudo cp -avr /var/lib/mongodb/ /home/ 

10. И затем удалили его.

cd /var/lib/ 
sudo rm -rf mongodb/ 

11. я искал, чтобы увидеть, если какие-либо mongodb-10gen пакеты были остальные:

dpkg --get-selections | grep "mongodb-10gen" 

, который не дал ничего.

12. Я установил mongodb-org в версии 2.6.6 через диспетчер пакетов Synaptic.

13. Я проверил все пакеты MongoDB были на одной и той же версии:

mongodump --version 
mongorestore --version 
mongo --version 
mongod --version 
mongos --version 
# all returned 2.6.6 

14. тогда я сделал mongorestore с каждой дамп базы данных, например:

mongorestore --db dname_01 /path/to/dump/dbname_01/ 
mongorestore --db dname_02 /path/to/dump/dbname_02/ 

Это кажется чтобы работать во всех базах данных, но сбой в базе данных admin:

assertion: 17415 Cannot restore users with schema version 1 to a system with server version 2.5.4 or greater 

И база данных users бросил некоторые аномалии, например:

Restoring to users.pending_registrations without dropping. Restored data will be inserted without raising errors; check your server log 
Restoring to users.roles without dropping. Restored data will be inserted without raising errors; check your server log 
Restoring to users.users without dropping. Restored data will be inserted without raising errors; check your server log 

15. Я побежал db.upgradeCheckAllDBs():

mongo 
use admin 

db.upgradeCheckAllDBs() 

Checking database local 
Checking collection local.startup_log 
Checking collection local.system.indexes 
Checking database dname_01 
... 
Checking database admin 
Everything is ready for the upgrade! 
true 

от: http://docs.mongodb.org/manual/release-notes/2.6-upgrade/#preparedness

2

Я знаю, что вам удалось решить ваши вопрос, но мне помогла следующая ссылка, и я подумал, что могу опубликовать ее здесь для будущего ссылка и в случае, если кто-то еще считает, что трудно модернизации MongoDB:

http://blog.lecstor.com/mongodb-upgrade-24-to-26-in-debian

EDIT: более подходящий ответ, цитируя по ссылке выше:

Вы должны загрузить версию смолы в MongoDB и запустить оболочку прямо оттуда:

$ curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz $ tar -zxvf mongodb-linux-x86_64-2.6.1.tgz $ ./mongodb-linux-x86_64-2.6.1/bin/mongo

чтобы запустить проверку, также необходимо использовать базу данных администратора, так ..

>use admin 
switched to db admin 
>db.upgradeCheckAllDBs() 

Checking database mydb1 

Checking collection mydb1.coll1 

Checking collection mydb1.coll2 

Checking database mydb2 

Checking collection mydb2.coll1 

Checking collection mydb2.coll2 

Everything is ready for the upgrade! 
true 
Смежные вопросы