yopp
Всем привет! Подскажите пожалуйста по следующему вопросу, потребовалось сделать дамп и восстановить на соседнем сервере БД (объемная 300+ Гб) сделал дамп следующей командой mongodump --ssl --host ХОСТ -d БД --gzip --numParallelCollections 16 --archive=ИМЯ_АРХИВА.gz --username ******* --authenticationDatabase ****** дамп делался долго, ~3 дня Восстанавливаю БД следующей командлетой (архив .gz предварительно положил рядышком на конечный сервер, где и будет жить БД) mongorestore --drop --ssl --host ХОСТ --gzip --archive=/ПУТЬ/ИМЯ_АРХИВА.gz --username ******* --authenticationDatabase ******* На протяжении нескольких дней в логах следующая картина Время | Название коллекции | размер В логах ошибок по восстановлению - нету. Выглядит это вот так как на скрине. По ошибка я запустил восстановление без —verbose и мне непонятно что происходит. У меня два вопроса: 1. можно ли как то понять сколько осталось по времени восстановлению БД? 2. Допустимо ли из dump архива просто подменить исходные файлы БЕЗ mongorestore?
Даже без verbose в логах должен быть минимальный вывод с прогрессбаром. Еще можно посмотреть на count документов в коллекции, так как восстановление из дампа это просто insertMany операция Перенести dbPath можно, при условии что исходная база остановлена или включен лок на запись. Перенести можно только в рамках текущей или следующей мажорной версии (4.0→5.0 возможно, 4.0→6.0 без промежуточного обновления до 5.0 нет)
yopp
Еще один вариант переноса это пайпом из mongodump из исходной монги в mongorestore на целевую
Алексей
Или по другому, выполняя mongodump единственный вариант восстановление это - mongorestore?
yopp
К сожалению это не возможно: дампы это просто последовально сохраненные в bson документы из коллекции. Без restore можно перенести только файлы из dbPath
yopp
Вы переезжаете с облака?
Алексей
нет. Просто восстановление на другой сервер. Пытаюсь просто понять почему в выводе одно и тоже и только время меняется. Я предположил что это идет распаковка .gz архива. Других предположений нету.
yopp
А есть пример реального вывода в логах /var/log/mongodb/ ? То есть я предполагаю что там должно быть что-то типа Restoring in progress.... db такое и то...
В логе монги прогресс не записывается, так как для mongod процесс mongorestore выглядит как подключение обычного клиента прогресс выводится в stdout терминальной сессии где запущен mongorestore для 300гб самый простой способ это перенести файлы из dbPath или через пайп mongodump "mongodb://$SOURCE_URI/?authSource=admin" --db $DB_NAME --archive --gzip | mongorestore "mongodb://$TARGET_URI/" --db $DB_NAME --gzip --archive
Алексей
В логе монги прогресс не записывается, так как для mongod процесс mongorestore выглядит как подключение обычного клиента прогресс выводится в stdout терминальной сессии где запущен mongorestore для 300гб самый простой способ это перенести файлы из dbPath или через пайп mongodump "mongodb://$SOURCE_URI/?authSource=admin" --db $DB_NAME --archive --gzip | mongorestore "mongodb://$TARGET_URI/" --db $DB_NAME --gzip --archive
Примерно понятно. получается что то что я вижу повторяющиеся 4 шт коллекции это тот максимум который мне доступен в sdtout. То есть фактически ноль упоминаний что восстановление вообще идет. Но drop текущих коллекций БД я в логах увидел на момент mongorestore. Далее - тишина (кроме ошибки подключения кластера, но это уже другое)
essential
Привет. У меня монга на убунте перестала запускаться. mongod.service: Failed with result 'exit-code' У меня почему-то система полтела с ошибкой read only file system. Я там ошибки исправил, перезагрузил. И база теперь не работает
Алексей
попробуйте подключится к новой ноде и посмотреть какие коллекции в базе уже есть и посмотреть по каждой вывод estimatedDocumentCount()
учитывая что там есть файлы старой БД (не актуальной) вывод командлета по коллекциям: estimatedDocumentCount() может не показать актуальное состояние? Хотя я ресторю с —drop
yopp
Ещё косвенно по размеру dbPath, cpu/ip load можно увидеть. Если нагрузки нет, скорее всего ничего не происходит
yopp
Привет. У меня монга на убунте перестала запускаться. mongod.service: Failed with result 'exit-code' У меня почему-то система полтела с ошибкой read only file system. Я там ошибки исправил, перезагрузил. И база теперь не работает
Здравствуйте! Вероятнее всего повредилась база, посмотрите что в логах (/var/log/mongod). Если там ошибки, попробуйте перезапустить вручную с флагом repair, это в некоторых ситуациях может помочь. Если не поможет, то восстанавливать из резервной копии, а если её нет, то тут уже сложно помочь. Есть возможность вытащить часть неповрежденных данных через анализ файлов хранилища, но это сложно или дорого :(
Алексей
попробуйте подключится к новой ноде и посмотреть какие коллекции в базе уже есть и посмотреть по каждой вывод estimatedDocumentCount()
Счетчик НЕ идет, то есть я делаю вывод - восстановления не происходит. Возможно идет распаковка. Выполняя команду mongorestore --drop могу ли я заранее в месте хранения БД удалить все текущие файлы текущей БД? (учитывая ключ —drop). Или mongorestore сам обрабатывает как-то данные файлы БД не актуальные
Александр
Привет народ. У меня в базе лежит документ такого вида {'_id': ObjectId('642231a215671405e6e55207'), 'value': 148, 'dt': datetime.datetime(2022, 12, 21, 18, 28)} мне нужно извлекать доки по дате, но только не по полной дате, а например по месяцу. То есть все доки за декабрь 22 года. Как это сделать?
Alexander
Привет! Напомните, через какое время монга закрывает бездействующий курсор при дефолтных настройках сервера?
Alexander
30 минут
Благодарю!
Nikita
Добрый день. Есть Mongo, которая писала в отдельно смонтированный раздел HDD. Смонтировал новый SSD, поменял конфиг (vdb1 -> vdc1): storage: dbPath: /mnt/vdc1/lib/mongo journal: enabled: true # engine: # mmapv1: # wiredTiger: systemLog: destination: file logAppend: true path: /mnt/vdc1/log/mongodb/mongod.log net: port: 27017 bindIp: 0.0.0.0 processManagement: timeZoneInfo: /usr/share/zoneinfo security: authorization: disabled Перезагрузил mongo. Active: active (running) since Fri 2024-06-14 13:33:46 MSK; 13min ago Main PID: 32259 (mongod) Tasks: 46 (limit: 4915) Memory: 3.7G CGroup: /system.slice/mongodb.service └─32259 /usr/local/bin/mongod --config /etc/mongod.conf Продолжает работать со старым vdb1. Как такое возможно?
Nikita
При этом на точно таком же сервере точно такая же процедура меняет storage и log. Здесь конфиг меняется - запись и чтение из старого раздела остаются
Nikita
В мониторинге вижу активность только по старому HDD разделу на запись. При этом размер данных на обоих дисках одинаковый (ls -l /mnt/vdc1/lib/mongo). Как будто данные каким-то образом реплицируются
Умид
Добрый день Есть пользователи mockaroo ?
deni
всем привет! Как это импортировать в кластер?
Нуриддин
Вам нужно просто вставить json -mongoimport Вам нужно влстонавить базу данных - mongorestore
Нуриддин
всем привет! Как это импортировать в кластер?
Ну по картинке у вас скорее второй вариант
HardPacific
Ребят, всем привет, я новенький, перерыл все что мог, но не нашел ответа У меня есть bson файл, как получить из него данные через консоль? Я установил и shell и compass, но пока получается только создавать db и добавлять данные
HardPacific
К гпт тоже обращался, но именно с монгодб ии сломался и несет ересь про python :)
HardPacific
Я скачал из инета bson файл попрактиковаться, но его не видно при show dbs
yopp
Я хочу подключиться к ней
Вам нужно импортировать его через mongorestore mongorestore -d <db_name> -c <collection_name> file.bson
Nick
Я хочу подключиться к ней
Про бсрн выше ответили, а сама монга у вас установлена?
HardPacific
Nick
да, и консольная и десктопная версия
не клиенты подключения, а саму субд, сервер монги
HardPacific
Я не совсем понимаю😅 ну создавать бд и добавлять что-то я могу
HardPacific
Все это отображается в compass
Nick
Я не совсем понимаю😅 ну создавать бд и добавлять что-то я могу
А тогда знач установлен и сервер, тогда по рекомендациям выше
HardPacific
Хотя перепроверил команды написал правильно
HardPacific
Я так старался делать, но на форумах ответа не нашел
999
Как монго понимает из какой коллекции выдавать данные? например у меня есть коллекция properties а файл называется Property.js и схема называется PropertySchema, и модель везде называется Property Всё работает но мне интересно каким образом монго понимает что нужно брать данные из коллекции properties, если модель называется Property?
Nick
Как монго понимает из какой коллекции выдавать данные? например у меня есть коллекция properties а файл называется Property.js и схема называется PropertySchema, и модель везде называется Property Всё работает но мне интересно каким образом монго понимает что нужно брать данные из коллекции properties, если модель называется Property?
монго отдает из той из какой запросили, запрашивает в вашем случае монгус, в монгусе есть логика котоаря формирует название коллекции из названия схемы, если она явно не указана (а можно было просто явно указать). И эта логика - взять имя модели и сделать мнржественное число, добавив s или ies суффиксом
Nick
Мне пишет, что что-то пропущено
вот проблема того что вы берете какойто bson файл не зная ничего о нем, может это и не экспорт из монги
Умид
Добрый вечер Подскажите пожалуйста я путем структуры index.js создал коллекции и доки и связал с DB в атласе с помощью URL, и хотел бы поделиться так скажем с другом чтобы показать структуру DB каким образом я могу это сделать чтобы он смог увидеть DB в сервере атласа
999
Читать документацию
ah shit here we go again 😁 а откуда начинать то и где читать? я например открыл mongoose а там 2012 год и старый код
999
сейчас же используются модули, required это старый синтаксис
Nick
сейчас же используются модули, required это старый синтаксис
А какая разница?) Мне вот что с модулями что через рекваиред зависит тупо от того как на проекте сделано, на это даже не смотрю. Вы еще скажите что у вас промисы и вам авайты не нравятся в примерах
Умид
Дать ему урл и юзер с паролем для подключения к бд. И на атласе не забыть добавить его ip в белый список, если у вас не настроен доступ отовсюду
Спасибо большое Но как я полагаю друг должен быть доверенным лицом так как юрл как я полагаю даёт много доступа над DB
Nick
Спасибо большое Но как я полагаю друг должен быть доверенным лицом так как юрл как я полагаю даёт много доступа над DB
Можно создать отдельного юзера и выдать ему права только на то что хочется разрешить
Умид
Добрый день можете подсказать в плане развития Я на данный момент могу поднимать БД к атласу и делать различного рода запросы в данный момент в ступоре что дальше обучать ?
Умид
цель какая?
Просто изучать Чтобы в дальнейшем стать DBA сотрудником
Дмитрий
Просто изучать Чтобы в дальнейшем стать DBA сотрудником
Добрый день! Скрините требования и навыки к резюме на интересующие Вас должности, попутно проходя собеседования. Наиболее быстрый способ получить необходимый минимум, а дальше уже на месте набирать промышленную практику
Нуриддин
Варианты мониторинга и мониторинга активности баз данных, бекапы, бэкапы шардов и вроде всё
Это все что относятся на прямую про монгодб, остальное требование об знании линукса и сети там всегда по разному строят требования, но всё склоняется только к этим запросам в отношение монгодб
HardPacific
Всем привет! Как вернуть значения по умолчанию, если каких-то данных нет? Например если нет даты, вернуть 0
Умид
Спасибо большое всем
sudo su
вечер в хату, часик в радость, чефир в сладость. подскажите, как молодому арестанту установить монгодб на винду, только докер?
sudo su
Ты такой кент, я не могу . Зайди на офиц сайт монги, там клиент сервер скачаешь
у меня там бан, вечный разрыв соединения, а впн в падлу врубать
sudo su
у меня просто база данных называлась zov goida и все, на следующий же день бан по ip получил
Егор
Ты уже всего в жизни добился , поверь
sudo su
нужна, я фулл-стек разраб
Kinderwond
у меня просто база данных называлась zov goida и все, на следующий же день бан по ip получил
разверни third party тачку ило сервис который поднимет монгу локально это крайняк