@MongoDBRussian

Страница 294 из 342
AstraSerg
24.08.2018
10:55:42
У меня до недавнего времени вообще 1.0.х крутилась для личных нужд
...а казались приличным человеком.... (шутка) :)

Andrey
24.08.2018
10:56:35
tokumx:v3.1

Constantin
24.08.2018
10:56:59
А я на второй версии учился, была книжка даже с писающим мальчиком от одного из создателей MongoDB

yopp
24.08.2018
10:57:07
видимо tokumx
Ну вот и ответ на вопрос «почему бьётся».

Google
yopp
24.08.2018
10:57:30
Это скорее всего недоделки в патче/форке

Я вам настоятельно рекомендую запланировать переезд с tokumx, это мёртвое решение

Percona TokuMX Percona TokuMX has been EOL’d.

https://www.percona.com/software/mongo-database/percona-tokumx

Andrey
24.08.2018
10:59:21
Ну вот и ответ на вопрос «почему бьётся».
каюсь, верю что надо уходить на монго) Досталось в наследство, пока не богатый опыт в монго. Переезд в планах стоит, как только прокачаюсь

Пока, даже представить сложно как все это портировать. Починить бы то что есть

yopp
24.08.2018
11:02:07
Вы ничего не почините. Это неподдерживаемый форк монги, который уже 4 года вообще не разрабатывается. Им пользовалось в лучшем случае несколько тысяч человек

Скорее всего проблема с copy/clone в использовании неспецифицированных bson типов, для внутренней разметки или ещё чего

Andrey
24.08.2018
11:04:02
тогда как перенести\склонировать данные на новое если такие траблы?

есть какие то бест практис где почитать?

yopp
24.08.2018
11:04:53
Вам вероятно поможет mongodump

Но может и не помочь

Andrey
24.08.2018
11:05:50
оптимистично

Google
yopp
24.08.2018
11:05:53
разворачиваете standalone 4.0, останавливаете запись в tokumx, запускаете mongodump, ждёте завершения, делаете mongorestore

переключаете клиентов на 4.0

оптимистично
к сожалению, когда было принято решение использовать tokumx, принимающие решение плохо понимали риски

использование третесторонних форков, патчей и плагинов рано или поздно заканчивается вот такой вот ситуацией

yopp
24.08.2018
11:10:07
Тоже самое, рано или поздно, ждёт тех, кто вписался в Percona Server for MongoDB

AstraSerg
24.08.2018
11:14:15
тогда как перенести\склонировать данные на новое если такие траблы?
Кстати, вы можете провести пробный дамп/рестор прямо не прерывая работу боевой БД. Просто для теста, не возникнет ли ошибок. Потом можно отправить несколько запросов, аналогичных боевым к новой БД

CFFTRP
24.08.2018
11:14:50
up

Mongoose 5.x disallows passing a spread of operators to Model.aggregate(). Instead of Model.aggregate({ $match }, { $skip }), do Model.aggregate([{ $match }, { $skip }])", name: "MongooseError" }

При этом, всё по доке вроде сделано: .aggregate([ { $match: { userId } }, { $addFields: { campaigns: { $filter: { input: '$campaigns', as: 'campaign', cond: { $eq: ['$$campaign.isActive', true] } } } } }, { $project: { campaigns: { _id: 1, targeting: 1, position: 1, type: 1, // date: 1, // name: 1, }, widget: 1 } }]) .exec()

AstraSerg
24.08.2018
11:15:36
up
я не могу помочь, извините

CFFTRP
24.08.2018
11:15:47
и гугл молчит, будто никто с таким не сталкивался

Andrey
24.08.2018
11:36:50
Кстати, вы можете провести пробный дамп/рестор прямо не прерывая работу боевой БД. Просто для теста, не возникнет ли ошибок. Потом можно отправить несколько запросов, аналогичных боевым к новой БД
СДелал более топорно. через МонгоЧиф нашел порядковый номер коллекции на которой отвалилось копирование. Сейчас буду пробовать ее скопировать +\- коллекции по списку. Вариант, если скопировать не удасться то просто ее грохну.

AstraSerg
24.08.2018
11:38:09
Andrey >... то просто ее грохну Всю коллекцию?!

Andrey
24.08.2018
11:38:52
да. Там данные телеметрии.

разворачиваете standalone 4.0, останавливаете запись в tokumx, запускаете mongodump, ждёте завершения, делаете mongorestore
а подскажите, монгодамп\монгоресторе можно запустить для одной базы в инстансе?

yopp
24.08.2018
11:43:16
Andrey
24.08.2018
14:24:10
https://docs.mongodb.com/manual/reference/program/mongodump/#cmdoption-mongodump-db
боюсь, что это не поможет, т.к. дамп из току не ресторится в монгу. Тестировали на монга3. с монга 4 не знаю как будет

Andrey
25.08.2018
04:43:34
Сейчас уже не подскажу. Лично не делал

Google
Andrey
25.08.2018
12:43:05
Добрый день. Не подскажите команды rs.add(name) достаточно чтобы вернуть ноду в репликасет или есть какие-то нюансы?

Constantin
25.08.2018
12:49:54
Смотря что вы хотите сделать

yopp
25.08.2018
12:57:32
у неё уже должен быть конфиг кластера локально и при запуске она попытается самостоятельно подключится к кластеру

Andrey
25.08.2018
13:19:36
у неё уже должен быть конфиг кластера локально и при запуске она попытается самостоятельно подключится к кластеру
Нода была в реплика сет мастером. Потом ее остановили, базу вырубили, мастером стал слейв.

yopp
25.08.2018
13:21:21
Не факт что secondary ;)

Andrey
25.08.2018
13:21:41
По идее есть арбитр ещё

Constantin
25.08.2018
13:23:17
Не факт что secondary ;)
Мне казалось, что перевыборы начинаются только если выпал Primary, или если руками их инициировать (или из приложния). Можете рассказать, в каком случае еще могут начаться?

Andrey
25.08.2018
13:24:14
А если просто отреплицировать не может?

yopp
25.08.2018
13:24:34
Можно не очень точно, но генерализировать до «при изменении топологии». Т.е. если фактическая, а не сконфигурированная топология изменилась, это может привести к выборам

Octo@dshacks
25.08.2018
15:09:56
Привет всем! Пытаюсь запустить mongodb на своём сервере с Arch Linux При попытке systemctl start mongodb ловлю Aug 25 17:06:44 octo_server systemd[30123]: mongodb.service: Failed to determine user credentials: No such process Aug 25 17:06:44 octo_server systemd[30123]: mongodb.service: Failed at step USER spawning /usr/bin/mongod: No such process

При этом /usr/bin/mongod есть, пользователь mongodb, указанный в mongodb.service существует

Vova
25.08.2018
15:11:24
sudo systemctl start mongodb

хотя стоп, не так sudo mongod --fork --logpath /var/log/mongod.log

Octo@dshacks
25.08.2018
15:12:51
sudo systemctl start mongodb
так и делаю

Vova
25.08.2018
15:13:06
так и делаю
смотри след сообщ

Google
Admin
ERROR: S client not available

Octo@dshacks
25.08.2018
15:13:11
хотя стоп, не так sudo mongod --fork --logpath /var/log/mongod.log
[octo@octo_server ~]$ sudo mongod --fork --logpath /var/log/mongod.log 2018-08-25T17:12:57.960+0200 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none' about to fork child process, waiting until server is ready for connections. forked process: 31608 ERROR: child process failed, exited with error number 100 To see additional information in this output, start without the "--fork" option.

Vova
25.08.2018
15:13:49
прям вангую, у тебя не существует папки /data/db

Octo@dshacks
25.08.2018
15:13:55
2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] MongoDB starting : pid=31608 port=27017 dbpath=/data/db 64-bit host=octo_server 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] db version v4.0.0 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] git version: 3b07af3d4f471ae89e8186d33bbb1d5259597d51 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.0i 14 Aug 2018 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] allocator: tcmalloc 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] modules: none 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] build environment: 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] distarch: x86_64 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] target_arch: x86_64 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] options: { processManagement: { fork: true }, systemLog: { destination: "file", path: "/var/log/mongod.log" } } 2018-08-25T17:12:57.975+0200 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] now exiting 2018-08-25T17:12:57.975+0200 I CONTROL [initandlisten] shutting down with code:100

Vova
25.08.2018
15:14:25
создай её или задай другой путь через --dbpath

Octo@dshacks
25.08.2018
15:15:51
создай её или задай другой путь через --dbpath
Указал на /var/lib/mongodb. Один фиг сервис systemd падает: Aug 25 17:15:11 octo_server systemd[1]: Started High-performance, schema-free document-oriented database. Aug 25 17:15:11 octo_server systemd[31645]: mongodb.service: Failed to determine user credentials: No such process Aug 25 17:15:11 octo_server systemd[31645]: mongodb.service: Failed at step USER spawning /usr/bin/mongod: No such process Aug 25 17:15:11 octo_server systemd[1]: mongodb.service: Main process exited, code=exited, status=217/USER Aug 25 17:15:11 octo_server systemd[1]: mongodb.service: Failed with result 'exit-code'.

Octo@dshacks
25.08.2018
15:38:15
короче я каким-то магическим образом починил всё ребутом

Serhii
26.08.2018
13:39:18
Ребзи, а кто подскажет в какую сторону вообще рыть если нода не коннектится к монге при запущенной в соседней вкладке командой mongod код js const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); Код ошибки error { MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connection 0 to localhost:27017 timed out] at Pool.<anonymous> (/home/serhii/repos/mongodb-playlist/node_modules/mongodb-core/lib/topologies/server.js:564:11) at Pool.emit (events.js:160:13) at Connection.<anonymous> (/home/serhii/repos/mongodb-playlist/node_modules/mongodb-core/lib/connection/pool.js:316:12) at Object.onceWrapper (events.js:255:19) at Connection.emit (events.js:160:13) at Socket.<anonymous> (/home/serhii/repos/mongodb-playlist/node_modules/mongodb-core/lib/connection/connection.js:256:10) at Object.onceWrapper (events.js:255:19) at Socket.emit (events.js:160:13) at Socket._onTimeout (net.js:412:8) at ontimeout (timers.js:458:11) at tryOnTimeout (timers.js:296:5) at Timer.listOnTimeout (timers.js:259:5) name: 'MongoNetworkError', errorLabels: [ 'TransientTransactionError' ], [Symbol(mongoErrorContextSymbol)]: {} }

yopp
26.08.2018
14:17:52
srv нужен для autodiscovery через dns

https://www.mongodb.com/blog/post/mongodb-3-6-here-to-SRV-you-with-easier-replica-set-connections

https://docs.mongodb.com/manual/reference/connection-string/#dns-seedlist-connection-format

тонкий момент: Use of the +srv connection string modifier automatically sets the ssl option to true

Alex
26.08.2018
15:34:52
Всем привет. Может кто-то подсказать как выпилить информацию о шарде из базы? Была конфигурация с реплСетами. Создали новую и перенесли в нее базу. Базы шардированные. Имя шарда то же осталось, но при переносе в базах осталась старая инфа о старых шардах. При попытке добавить в новый шард сообщение can't add shard 'shard_name' because a local database 'db_name' exists in another shard_name

Alex
26.08.2018
15:52:13
^
Это я уже сделал. Но уже после переноса. sh.status() не показывает шардов

yopp
26.08.2018
15:54:44
При совершении какой операции вы получаете указанную ошибку?

Google
Alex
26.08.2018
16:04:25
При sh.addShard()

yopp
26.08.2018
16:37:15
в шарде, который вы добавляете с помощью addShard, базы уже есть?

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

Alex
26.08.2018
16:42:44
в шарде, который вы добавляете с помощью addShard, базы уже есть?
Нет. Я удалил все шарды и sh.status() ничего не показывает. Возможно где-то запись еще осталась. Но как посмотреть?

yopp
26.08.2018
16:47:19
Вы в итоге хотите расшардить существующий репликасет?

Тот факт что вы удалили шарды, не влияет на карту шарда. Если вы не сбросили данные в конфиг-серверах, там осталась информация о ранее расшарженной базе. Если вы хотите по новому расшардить реплика сет, вам лучше начать с чистого листа

Так что если вы добавялете не пустой шард, в котором есть база с именем, с совпадаюшим с ранее расшарженом, с позиции кластера вы пытаетесь добавить новый шард с конфликтующим названием.

Удаление шардов != удаление базы

Страница 294 из 342