Назад | Перейти на главную страницу

Каков самый безопасный способ изменить структуру сервера MongoDB?

В настоящее время у меня есть набор реплик MongoDB, настроенный как таковой:

{
    "_id" : "ahspy_mongo_set",
    "version" : 13,
    "members" : [
            {
                    "_id" : 0,
                    "host" : "remotedatacenter.in.montreal.dns.com",
                    "priority" : 0
            },
            {
                    "_id" : 1,
                    "host" : "t1.micro.at.ec2.dns.com",
                    "arbiterOnly" : true
            },
            {
                    "_id" : 2,
                    "host" : "m1.xlarge.at.ec2.dns.com"
            }
    ]
}

По сути, один сервер в EC2 выполняет резервное копирование на другой сервер в Монреале, который по нескольким причинам не может стать главным.

Я хочу изменить свою структуру, и я не уверен, с чего начать, чтобы не доставить много проблем. Фактически, я даже не уверен, что то, что я хочу делать, возможно.

Я хочу взять главный сервер БД, который у меня есть в EC2 (m1.xlarge), и превратить его в 3 сегмента m1.large. Итак, в основном идите от:

к

Это возможно? Могу ли я разделить набор реплик в EC2, сохранив только один сервер в реплике в Монреале? Если да, то как это правильно сделать? У меня настоящая проблема "курица и яйцо" с репликацией / сегментированием в Mongo, поэтому любая помощь будет принята с благодарностью.

Большое спасибо :).

Вот основные шаги:

  1. Запустите mongos и серверы конфигурации
  2. Сделайте эту реплику вашим первым осколком.
  3. Добавить осколок 2
  4. Добавить осколок 3

Вы не можете использовать свою резервную копию в качестве резервной копии для всех ваших шардов: это просто резервная копия для этого одного набора реплик.

Вы должны настроить отдельный набор реплик для каждого шарда. Если на сервере в Монреале есть емкость для него, вы можете разместить на этом сервере резервного члена для шардов 2 и 3, но они должны быть отдельными монгод процессы из члена шарда 1.