Какой самый безопасный способ изменить структуру сервера 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 (m1.xlarge)
  • Резервная копия в Монреале
  • арбитр

в

  • Реплика на EC2
    • Осколок 1 (m1.large)
    • Осколок 2 (m1.large)
    • Осколок 3 (m1.large)
  • Резервная копия в Монреале
  • арбитр

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам