Иван
согласен, спс
Nick
согласен, спс
и еще ест ьтакая штука https://www.mongodb.com/docs/manual/tutorial/update-documents-with-aggregation-pipeline/
Ильдар
Кто нибудь использует percona-operator и бэкапит в s3? не получается сделать restore в новом кластере kubernetes, ловлю ошибку Error: PerconaServerMongoDBBackup.psmdb.percona.com "backup1-logical" not found Как понимаю ему нужен ресурс бэкапа в новом кластере, но откуда он там может быть, если он новый))
An
Когда я запускаю скрипт в компасе он тянет данные мне и выполняется? Как-то можно на сервере?
An
Скопировать скрипт на сервер и там запустить через cli?
An
через mongosh, если я правильно вопрос понял
А как-то чтобы как скл прогнал данные у себя и внес апдейты мелкие на 500к записей
Ivan
Скопировать скрипт на сервер и там запустить через cli?
Да, на сервере скрипт с апдейтом запускаешь и все
An
Да, на сервере скрипт с апдейтом запускаешь и все
Не подходит, 3дпати сервер. Но если делаю aggregate оно же на сервере запускает. В пайплайн вставить жс функцию можно? Чтобы она на сервере отработала
Ильдар
В новом кластере вам нужно тоже настроить PBM и чтобы в конфиге был тот же путь к бакету в котором бэкапы лежат
да, разобрался. я указывал backupName в restore, а его нужно указывать только когда восстановливаешь в том же кластере.
Сергей
Добрый день! Подскажите, пожалуйста, могут ли быть какие-то проблемы, если установить 7 версию монги на Ubuntu 24.04 (noble). Поставилось без ошибок, но я подключал репизиторий для Ubuntu 22 (jammy), так как 7-ки в репозитории 24 версии нет, а есть только 8 версия, но нужна именно 7
Сергей
Добрый, если работает, то откуда проблемам взяться;) советую посмотреть в сторону докера
Понял, спасибо. В сторону докера можно посмотреть, но там особые требования, приходится ставить на саму ос
CyberOps
Товарищи, доброго времени, подскажите, может кто сталкивался с такой проблемой lastHeartbeatMessage: 'Our replica set configuration is invalid or does not include us', при попытке добавить в rs по доменному имени , может кто знает как решить проблему , буду благодарен
Hunter
Кто-то юзал typegoose, хочу узнать стоит ли переходить с Магнуса?
Кейтлин
Кто-то юзал typegoose, хочу узнать стоит ли переходить с Магнуса?
если я не путаю, это тоже самое что и второе просто покрыто сахаром(типами)
Сергей
Добрый день! Подскажите, пожалуйста, по такой ситуации. Установил кластер mongodb версии 7.0 на 3 сервера. Захожу в mongosh, далее rs.status() показывает, что все хорошо. Далее набираю команду show dbs, и ничего не выводит. При этом приглашение в mongosh выглядит странно rs0 [direct : primary] test>. Смущает слово test. И в ответ на многие команды пишет mongodb not authorized on test to execute command
Нуриддин
Ошибка говорит о том что вы зашли под пользователем которого нет в бд или нет приведений на какую-либо бд
Сергей
Вы знали просто в mongosh?
Да, зашёл просто. Вообщем вроде с этим разобрался, создал пользователя с ролью root, но все равно смущает, что если не указывать базу, то он подключается и в приглашении опять этот test, при этом show dbs это базу не показывает. Пробую зайти на другом кластере версии 4.4 там ни теста нет, и захожу без указания логина и пароля и все позволяет делать. Как так?
Yura
By default, just running mongo will enter the shell and connect to the “test” database. The default database is "test" when it is not specify it. You must specify the default database after the port number and before the options which start after the question mark. example: mongodb://user:pass@www.server.com:27017/mydb?authMechanism=SCRAM-SHA-1&authSource=mydb
Tim🌵
Привет, есть ли какая-нибудь книга по монге, где подробно описываются timeseries коллекции? Или это только в документации читать?
Kirilll
Привет, есть ли какая-нибудь книга по монге, где подробно описываются timeseries коллекции? Или это только в документации читать?
Mongo DB полное руководство шенон бредшоу там очень хорошо все описано для версии 4.4, но базы достаточно
Ratatata
Книги по Монге? 0_0_0_0_0_0
🅰️nimeCoder
Книги по Монге? 0_0_0_0_0_0
а в чем проблема?
Andrey
Всем привет, Вопрос. Есть кластер MongoDB 8 (в K8s), шардированный. В качестве точки входа используем mongos. Периодически ловим ошибки вида cursor not found. Ошибок немного, но они стабильные. Сталкивался ли кто-то с подобной проблемой и как решали?
Andrey
percona?
https://artifacthub.io/packages/helm/bitnami/mongodb-sharded
Асель
Всем привет! Периодически ловим ошибки типа: The full response is {"ok": 0.0, "errmsg": "Encountered non-retryable error during query :: caused by :: Unable to acquire IX lock on '{5950093347111209510: Database, 1338407328683821606, imp}' within 5ms. По логам в этот момент долгих операций не нахожу, повышенной нагрузки тоже нет, т.е. ни одна идея из нагугленного, что может быть причиной, в ходе исследования не подтверждается. Если кто сталкивался, подскажите пожалуйста, как решали эту проблему?
yopp
Косвенно создавать-удалять коллекции может $out, так как сначала создается временная коллекция
Yura
Чисто как workaround на период поиска настоящей причины
Асель
Косвенно создавать-удалять коллекции может $out, так как сначала создается временная коллекция
вот, тут вы, кстати, правы в это время в этих же БД есть и создание коллекций через out и навешивание на них индексов НО консюмеры писали в другие коллекции (БД при этом та же) то есть, получается, создание коллекций/индексов блокирует для записи всю БД, а не конкретные коллекции?
yopp
Да, у $out там целый ворох сайд-эффектов связанный с обновлением каталога. Как выше порекомендовали увеличение таймаута должно помочь
Асель
Да, у $out там целый ворох сайд-эффектов связанный с обновлением каталога. Как выше порекомендовали увеличение таймаута должно помочь
когда хотел помочь саппорту и автоматизировал их выгрузки, а стало только хуже, вот до последнего не верила, что это они спасибо большое за помощь)
yopp
когда хотел помочь саппорту и автоматизировал их выгрузки, а стало только хуже, вот до последнего не верила, что это они спасибо большое за помощь)
Попробуй с большим тайм-аутом, в вашем случае даже 100мс должно быть достаточно. Либо если есть возможность то $merge в существующую коллекцию + очистка через delete. В этом случае каталог не затрагивается
🅰️nimeCoder
Есть две бд, одна ~7 версии, вторая ~8 Сделал mongodump на одной (7) и mongorestore этого дампа на второй (8). Вес на примере одной из коллекций стал из 9-10 ГБ около 20-25 ГБ Что-то кардинально изменилось в мете / формате хранения ?
🅰️nimeCoder
🅰️nimeCoder
🅰️nimeCoder
Причём что интересно размер индексов упал 🧐
of Astora 𒉭
63 ляма, что там такое есть?
🅰️nimeCoder
Так не много же
🅰️nimeCoder
Сообщения где то за пару суток
Yura
А mongod.conf у них идентичные? Мб методы сжатия разные прописаны?
Нуриддин
Причём возможно индексы и прочие внутренние настройки будут меняться в процессе залива
Нуриддин
Есть вариант организовать репликацию, предварительно изменив copability в mongod 8
Нуриддин
Просто обновление версий mongodb писали в документации именно таким образом
Нуриддин
Просто обновление версий mongodb писали в документации именно таким образом
Прошу прощения за дизинформацию, я пользовался доками 6.0 ( https://www.mongodb.com/docs/manual/release-notes/6.0-upgrade-standalone/ ) но сейчас мои предложения в большей части не действительны
Hunter
Начал использовать атлас серч, но там очень мало дают индексов, возможно есть какие-то обходные пути или решения?
🅰️nimeCoder
mongodump разве гарантирует то что у вас получится вставить данные с тем же кол-вом памяти?
Да речи и не идёт, места у меня вагон. Прост оно изменилось между. И ладно бы допустим разница была в том что бд стала меньше (получился например вакуум) но по факту скорее больше (но с виду размер просто перехал между весом бд и весом индексов, странно конечно но ладно
🅰️nimeCoder
Ну я не обновлял в целом, а переносил. Прост на другом сервере более новая чем на источнике
Nick
Ну я не обновлял в целом, а переносил. Прост на другом сервере более новая чем на источнике
т.е. это был не апгрейд монги, а переналивка в новую (монгодамп/рестор?). А выполнять компакт не пробовали?
🅰️nimeCoder
т.е. это был не апгрейд монги, а переналивка в новую (монгодамп/рестор?). А выполнять компакт не пробовали?
Не, после переноса не делал. А есть смысл? Ну вес то стал больше, но судя по скринам какая то часть Веса ушла из индекса но пришла в вес бд Странно как-то Было 9.47 (storage) + 18.33 (index) = 27.79 Стало 20.68 (storage) + 9.46 (index) = 30.14
🅰️nimeCoder
Гляну, спасибо
Artem
Ребят, всем привет! Если дамп БД сделан на 6 версии, а потом рестор на 8 версии Монги. Все коллекции на месте. Что ещё можно проверить?
Nick
Ребят, всем привет! Если дамп БД сделан на 6 версии, а потом рестор на 8 версии Монги. Все коллекции на месте. Что ещё можно проверить?
если разговор чисто про данные, то сделать сверку бизнес данных. Как минимум сверить количество записей. Для более корректного взять например ключевой параметр из коллекции и подсчитать общую сумму и сверить на старой и новой версии или условную группировку с подсчетом количества с разбивкой по какимто типам в документах. Тут уже чисто ваше фантази на основе поинмания что за данные у вас Ну и еще естественно првоерить что код корректно работает с 8 версией - запуск е2е тестов самое то
Yura
Ребят, всем привет! Если дамп БД сделан на 6 версии, а потом рестор на 8 версии Монги. Все коллекции на месте. Что ещё можно проверить?
Добрый день. Для данных db.stats() и db.collection.stats() выполняете и сверяете основные моменты на обеих системах, этого должно быть достаточно. Совместимость версии драйвера приложения и провести нагрузочные
Hunter
Wildcard index можно создать там?
А как он поможет?🤔
Vladimir
А как он поможет?🤔
В нем можно прописывать различные индексы и я пока не сталкивался с ограничением по количеству
Нуриддин
Добрый день коллеги!! У меня такой кейс, можете помочь с ним пожалуйста. Есть коллекция на 100лямов доков, задача удалить дубликаты по 3м ключам, но пришёл к такому методу
Нуриддин
let creditDeleted = 0; const creditCursor = db.transaction.aggregate([ { $match: { type: "CREDIT", creditRrn: { $ne: null } } }, { $group: { _id: { userGuid: "$userGuid", creditGuid: "$creditGuid", creditRrn: "$creditRrn" }, ids: { $push: "$_id" }, count: { $sum: 1 } } }, { $match: { count: { $gt: 1 } } } ]); creditCursor.forEach(group => { const idsToDelete = group.ids.slice(1); if (idsToDelete.length > 0) { db.transaction.deleteMany({ _id: { $in: idsToDelete } }); creditDeleted += idsToDelete.length; } }); print(`Deleted ${creditDeleted} CREDIT duplicates`);
Нуриддин
Он отрабатывает до жути долго, как его можно ускорить?