Вопросы о MongoDB
-
Что случится с кластером, если выйдет из строя один из хостов?
-
Можно ли развернуть кластер MongoDB в нескольких зонах доступности?
-
Почему кластер работает медленно, хотя вычислительные ресурсы использованы не до предела?
-
Можно ли подключиться к хостам кластера по SSH или получить на хостах права суперпользователя?
-
Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?
Почему стоит использовать MongoDB в Managed Service for MongoDB, а не собственную установку на виртуальной машине?
Managed Service for MongoDB автоматизирует рутинное обслуживание БД:
- быстрое развертывание БД с необходимыми доступными ресурсами;
- резервное копирование данных;
- регулярное обновление ПО;
- обеспечение отказоустойчивости кластеров БД;
- мониторинг и статистика использования БД.
Что случится с кластером, если выйдет из строя один из хостов?
Если в кластере БД больше 1 реплики, при потере одного хоста кластер продолжит работу.
Данные могут потеряться только если вышел из строя единственный хост в кластере.
Можно ли развернуть кластер MongoDB в нескольких зонах доступности?
Да. Кластер БД может состоять из хостов, расположенных как в разных зонах, так и в разных регионах доступности.
Как проводится резервное копирование для кластеров MongoDB?
Резервные копии создаются каждые 24 часа и хранятся 7 дней после создания. Восстановить данные можно только на момент создания копии.
Как устроена репликация для MongoDB?
Managed Service for MongoDB использует стандартный механизм репликации MongoDB: если в кластере есть больше 1 активного хоста, среди них автоматически выбирается первичный сервер, обрабатывающий запросы на запись.
Подробнее о том, как организована репликация в MongoDB, читайте в документации СУБД
Какие ограничения накладываются на кластеры БД MongoDB?
Подробнее об ограничениях в Managed Service for MongoDB см. в разделе Квоты и лимиты.
Почему кластер работает медленно, хотя вычислительные ресурсы использованы не до предела?
Вероятно, максимальные значения IOPS и пропускной способности (bandwidth) хранилища недостаточны для обработки текущего количества запросов. В этом случае срабатывает троттлинг и быстродействие всего кластера падает.
Максимальные IOPS и bandwidth прирастают на фиксированную величину при увеличении размера хранилища на определенный шаг. Шаг и прирост зависят от типа дисков:
Тип дисков | Шаг, ГБ | Прирост макс. IOPS (чтение/запись) | Прирост макс. bandwidth (чтение/запись), МБ/с |
---|---|---|---|
network-hdd |
256 | 300/300 | 30/30 |
network-ssd |
32 | 1000/1000 | 15/15 |
network-ssd-nonreplicated |
93 | 28000/5600 | 110/82 |
Чтобы увеличить максимальные значения IOPS и bandwidth и снизить вероятность троттлинга, расширьте размер хранилища при изменении кластера.
Если вы используете хранилище с типом диска network-hdd
, рассмотрите возможность перехода на network-ssd
или network-ssd-nonreplicated
путем восстановления кластера из резервной копии.
Как получить доступ к служебной коллекции local.oplog.rs?
Чтобы предоставить пользователю доступ к чтению oplog
, выдайте ему роль mdbReplication
в БД admin
. Для этого выполните команду в интерфейсе командной строки Yandex Cloud:
yc managed-mongodb user update <имя_пользователя> \
--cluster-name <имя_кластера> \
--permission database=admin,role=mdbReplication,role=<другая_роль>,... \
--permission database=<имя_другой_БД>,role=<роль>,...
Чтобы избежать удаления уже назначенных ролей пользователя, в команде перечислите как существующие, так и добавляемые роли.
Можно ли подключиться к хостам кластера по SSH или получить на хостах права суперпользователя?
Подключиться к хостам через SSH не получится. Это сделано в целях безопасности и отказоустойчивости пользовательских кластеров, так как прямые изменения внутри хоста могут привести к его полной неработоспособности.
Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?
Полный текст ошибки:
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012)
The revocation function was unable to check revocation for the certificate
Это означает, что при подключении к веб-сайту не удалось проверить, есть ли его сертификат в списке отозванных.
Чтобы исправить ошибку:
-
убедитесь, что проверку не блокируют настройки корпоративной сети;
-
выполните команду с параметром
--ssl-no-revoke
.mkdir $HOME\.mongodb; curl.exe --ssl-no-revoke -o $HOME\.mongodb\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pem