Как обновить MongoDB с 3.2.10 до 3.6 на OpenShift? - PullRequest
0 голосов
/ 14 сентября 2018

Текущая версия OpenShift MongoDB:

sh-4.2$ mongod --version
db version v3.2.10
git version: 79d9b3ab5ce20f51c272b4411202710a082d0317
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

Мне сказали, что последняя доступная версия OpenShift была 3.6.

Доступны следующие шаги поддержки OpenShift:

Перейдите к следующему:

Приложения> Развертывания> Раскрытие действий (справа) и Правка.

Оттуда измените значение для версии в разделе Images / Image Stream Tag:

openshift / mongodb: 3.6

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

Я немного обеспокоен возможными "другими задачами".

Как я могу безопасно обновить MongoDB с 3.2.10 до 3.6 на OpenShift?

Редактировать

Я попытался выполнить перечисленные шаги, и это было результатом:

Веб-сайт Frontend отображает:

{"name":"MongoError","message":"Topology was destroyed"}

И это различные кадры с консоли.

enter image description here

enter image description here

enter image description here

Я погуглил Topology was destroyed и наткнулся на этот ответ:

https://stackoverflow.com/a/31950062

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

Итак, я уменьшил модуль Node, затем модуль MongoDB, а затем увеличил модуль MongoDB, а затем модуль Node.

Кажется, он вернулся к последнему работающему развертыванию MongoDB.

Затем я нажимаю Deploy для модуля MongoDB, и он снова застревает с сообщением, показанным на первом изображении выше.

Редактировать 2

Я попытался уменьшить масштаб обоих модулей, а затем развернуть, я заметил это в журналах MongoDB:

2018-09-14T14:08:40.176+0000 F CONTROL  [initandlisten] ** IMPORTANT: UPGRADE PROBLEM: The data files need to be fully upgraded to version 3.4 before attempting an upgrade to 3.6; see http://dochub.mongodb.org/core/3.6-upgrade-fcv  for more details.
2018-09-14T14:08:40.176+0000 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2018-09-14T14:08:40.176+0000 I NETWORK  [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2018-09-14T14:08:40.176+0000 I REPL     [initandlisten] shutdown: removing all drop-pending collections...
2018-09-14T14:08:40.176+0000 I REPL     [initandlisten] shutdown: removing checkpointTimestamp collection...
2018-09-14T14:08:40.176+0000 I STORAGE  [initandlisten] WiredTigerKVEngine shutting down
=>  Waiting for MongoDB daemon up
2018-09-14T14:08:40.416+0000 I STORAGE  [initandlisten] WiredTiger message [1536934120:416170][26:0x7f20e10adb80], txn-recover: Main recovery loop: starting at 61/3200
2018-09-14T14:08:40.529+0000 I STORAGE  [initandlisten] WiredTiger message [1536934120:529090][26:0x7f20e10adb80], txn-recover: Recovering log 61 through 62
2018-09-14T14:08:40.593+0000 I STORAGE  [initandlisten] WiredTiger message [1536934120:593166][26:0x7f20e10adb80], txn-recover: Recovering log 62 through 62
2018-09-14T14:08:40.684+0000 I STORAGE  [initandlisten] shutdown: removing fs lock...
2018-09-14T14:08:40.684+0000 I CONTROL  [initandlisten] now exiting
2018-09-14T14:08:40.684+0000 I CONTROL  [initandlisten] shutting down with code:62
=>  Waiting for MongoDB daemon up

Редактировать 3

Я добился определенного прогресса, я предпринял следующие шаги:

  • Уменьшил модули MongoDB и Node.
  • Установите версию MongoDB на 3,4

enter image description here

  • Click Deploy

Модуль запускается и работает, но затем, когдая пытаюсь сделать то же самое с 3.6, он показывает сообщение об ошибке в журналах о The data files need to be fully upgraded to version 3.4 before attempting an upgrade to 3.6.

Редактировать 4

Re:

https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path

Я запустил это в терминале модуля:

env | grep MONGODB // to confirm i had admin password correct
mongo -u admin -p ************ admin
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

и он вернул:

{ "featureCompatibilityVersion" : "3.2", "ok" : 1 }

Итак, я сделал:

> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
{ "ok" : 1 }

> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : "3.4", "ok" : 1 }

Затем я убедился, что все модули были уменьшены и изменил версию MongoDB с 3.4 на 3.6, развернул и попытался снова увеличить модуль MongoDB.

И это вернулось!

Редактировать 5

Я вернулся в терминал и запустил:

> db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
{ "ok" : 1 }

, потому что я получил эту ошибку в консоли инструментов браузера dev:

FeatureCompatibilityVersion должно быть 3,6, чтобы использовать arrayFilters.См. http://dochub.mongodb.org/core/3.6-feature-compatibility.

И функциональность теперь работает на переднем конце!

1 Ответ

0 голосов
/ 14 сентября 2018

Вот что у меня сработало:

01) Уменьшить MongoDB и Node стручков.

02) Перейти к Applications> Deployments> MongoDB

03) Перейти к Actions> Edit и выбрать MongoDB версия 3.4

enter image description here

04) Нажмите Deploy, и после этого масштабируйте MongoDB обратно

05) Goк терминалу модуля в Applications> Pods> mongodb-**-*****

env | grep MONGODB // to confirm i had admin password correct

mongo -u admin -p ************ admin

> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )  
// { "featureCompatibilityVersion" : "3.2", "ok" : 1 }  

> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
// { "ok" : 1 }

> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
// { "featureCompatibilityVersion" : "3.4", "ok" : 1 }

06) Убедитесь, что все модули уменьшены и измените MongoDB версию с 3.4 на 3.6 (какна шаге 03) разверните и увеличьте масштаб.

Здесь есть предупреждение:

https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#enable-backwards-incompatible-newversion-features

О выполнении следующего шага, но я сделал это, потому что мое приложение требовало этого:

07) Перейдите к терминалу модуля в Applications> Pods> mongodb-**-*****

> db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
// { "ok" : 1 }

08) Поверните модуль Node обратно.

Справочные материалы:

https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone

https://docs.mongodb.com/manual/release-notes/3.4-upgrade-standalone

...