
AstraSerg
24.08.2018
10:55:42

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

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, принимающие решение плохо понимали риски
использование третесторонних форков, патчей и плагинов рано или поздно заканчивается вот такой вот ситуацией

MVP
24.08.2018
11:10:00

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
да. Там данные телеметрии.

yopp
24.08.2018
11:43:16

Andrey
24.08.2018
14:24:10

yopp
24.08.2018
14:24:49

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
у неё уже должен быть конфиг кластера локально и при запуске она попытается самостоятельно подключится к кластеру

[Anonymous]
25.08.2018
13:14:11
primary mongo will trying to connect to secondary db

Andrey
25.08.2018
13:19:36

Constantin
25.08.2018
13:20:22

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

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'.

Vova
25.08.2018
15:38:02

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

yopp
26.08.2018
15:50:20
Посмотреть в listShards и удалить все несуществующие шарды
https://docs.mongodb.com/manual/tutorial/remove-shards-from-cluster/

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

yopp
26.08.2018
16:47:19
Вы в итоге хотите расшардить существующий репликасет?
Тот факт что вы удалили шарды, не влияет на карту шарда. Если вы не сбросили данные в конфиг-серверах, там осталась информация о ранее расшарженной базе. Если вы хотите по новому расшардить реплика сет, вам лучше начать с чистого листа
Так что если вы добавялете не пустой шард, в котором есть база с именем, с совпадаюшим с ранее расшарженом, с позиции кластера вы пытаетесь добавить новый шард с конфликтующим названием.
Удаление шардов != удаление базы