Создание и использование реплики кластера между регионами в Azure Cosmos DB для виртуального ядра MongoDB
В этом руководстве вы создадите реплику кластера в другом регионе для кластера виртуальных ядер Azure Cosmos DB для кластера виртуальных ядер MongoDB для аварийного восстановления (DR). Этот кластер реплики хранит копию всех ресурсов MongoDB — баз данных, коллекций и документов — в другом регионе Azure. Кластер реплики предоставляет уникальную конечную точку для различных инструментов и пакетов SDK для подключения и может быть повышен, чтобы стать доступными для записи, если произошел сбой основного региона.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Оболочка MongoDB
Создание кластера и его реплики в другом регионе
Создайте кластер MongoDB с репликой чтения кластера в другом регионе с помощью Azure Cosmos DB для виртуального ядра MongoDB.
Совет
В этом руководстве рекомендуется использовать для группы ресурсов имя msdocs-cosmos-quickstart-rg
.
Войдите на портал Azure.
На домашней странице или в меню портала Azure выберите Создать ресурс.
На странице Создание найдите и выберите Azure Cosmos DB.
На странице "Какой API подходит для рабочей нагрузки?", выберите параметр "Создать" в разделе Azure Cosmos DB для MongoDB.
На странице "Какой тип ресурса" выберите параметр "Создать" в разделе кластера виртуальных ядер. Дополнительные сведения см. в обзоре архитектуры виртуальных ядер в Azure Cosmos DB для MongoDB.
На странице кластера Create Azure Cosmos DB for MongoDB выберите параметр "Настройка" в разделе "Уровень кластера".
На странице "Масштабирование" оставьте параметры заданными значениями по умолчанию:
Параметр Значение Количество сегментов 1 сегмент Уровень кластера Уровень M30, 2 виртуальных ядра, 8 ГиБ ОЗУ Память 128 ГиБ Отмените выбор параметра высокой доступности . В разделе подтверждения высокого уровня доступности выберите "Я понимаю". Наконец, нажмите кнопку "Сохранить ", чтобы сохранить изменения в конфигурации кластера.
Высокий уровень доступности в регионе предоставляет решение, в котором копия данных из каждого сегмента в кластере передается в резервный аналог, расположенный в одном регионе, но в другой зоне доступности (AZ). Высокая доступность использует синхронную репликацию с нулевой потерей данных и автоматическим обнаружением сбоев и отработкой отказа при сохранении строка подключения без изменений после отработки отказа. Высокий уровень доступности может быть включен в основном кластере для дополнительного уровня защиты от сбоев.
Вернитесь на страницу кластера, введите следующие сведения:
Параметр значение Описание Подписка Название подписки Выберите подписку Azure, которую вы хотите использовать для этого кластера Azure Cosmos DB для MongoDB и его кластера реплики. Группа ресурсов Имя группы ресурсов Выберите группу ресурсов или Создать, затем введите уникальное имя для новой группы ресурсов. Имя кластера Глобально уникальное имя Введите имя для идентификации кластера Azure Cosmos DB для MongoDB. Имя используется в составе полного доменного имени (FQDN) с суффиксом mongodbcluster.cosmos.azure.com, поэтому имя должно быть глобально уникальным. Имя может содержать только строчные буквы, цифры и знак дефиса (-). Имя должно быть также длиной от 3 до 40 символов. Расположение Ближайший к пользователям регион Выберите географическое расположение для размещения кластера Azure Cosmos DB для MongoDB с возможностями чтения и записи, основного кластера. Используйте ближайшее к пользователям расположение, чтобы предоставить им максимально быстрый доступ к данным. Версия MongoDB Версия MongoDB для запуска в кластере Это значение имеет значение по умолчанию для последней доступной версии MongoDB. Имя администратора Укажите имя пользователя для доступа к кластеру Этот пользователь создается в кластере в качестве администратора пользователя. Пароль Использование уникального пароля для связывания с именем пользователя Пароль должен содержать не менее 8 символов и не более 128 символов. Нажмите кнопку "Далее": глобальное распределение.
На вкладке "Глобальное распределение " выберите "Включить для чтения реплики" в другом регионе , чтобы создать реплику чтения кластера в рамках подготовки нового основного кластера.
В поле имени реплики чтения введите имя реплики чтения кластера. Это должно быть глобально уникальное имя кластера.
Выберите значение в раскрывающемся списке региона реплики чтения.
Выберите Далее: сеть.
На вкладке "Сеть" выберите "Добавить текущий IP-адрес клиента", чтобы создать правило брандмауэра с общедоступным IP-адресом компьютера, как воспринимается системой Azure.
Проверьте IP-адрес перед сохранением этой конфигурации. В некоторых ситуациях IP-адрес, наблюдаемый портал Azure, отличается от IP-адреса, используемого при доступе к службам Интернета и Azure. Таким образом, может потребоваться изменить начальный IP-адрес и конечный IP-адрес, чтобы сделать функцию правила должным образом. Используйте поисковую систему или другой сетевой инструмент, чтобы проверить собственный IP-адрес. Например, найдите мой IP-адрес.
Кроме того, можно выбрать правило брандмауэра 0.0.0–255.255.255.255.255, чтобы разрешить не только IP-адрес, но и весь Интернет для доступа к кластеру. В этом случае клиентам по-прежнему необходимо выполнить вход с правильным именем пользователя и паролем для использования кластера. Тем не менее, рекомендуется разрешить доступ по всему миру только в течение короткого периода времени и только для непроизводственных баз данных.
Выберите Review + create (Просмотреть и создать).
Просмотрите предоставленные параметры и нажмите кнопку "Создать". Создание кластера занимает несколько минут. Прежде чем продолжить, дождитесь, пока на странице портала появится сообщение Развертывание выполнено.
Выберите "Перейти к ресурсу ", чтобы перейти на страницу кластера Azure Cosmos DB для MongoDB.
Подключение к основному кластеру и приему данных
Получите строка подключения необходимо подключиться к основному кластеру (чтение и запись) в портал Azure.
На странице основного кластера виртуальных ядер Azure Cosmos DB для MongoDB выберите пункт меню навигации "Строки подключения" в разделе "Параметры".
Скопируйте значение из поля "Само" (всегда это кластер).
В командной строке используйте оболочку MongoDB для подключения к основному кластеру с помощью строка подключения.
mongosh "mongodb+srv://<user>@<primary_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Прием данных
Создайте файл скрипта my_script.js для его запуска из оболочки MongoDB.
let dogDocs = [
{
name: "pooch",
breed: "poodle",
weight: "6 lbs"
},
{
name: "mutt",
breed: "bulldog",
weight: "10 lbs"
}
];
let catDocs = [
{
name: "minni",
breed: "persian",
color: "white"
},
{
name: "tinkle",
breed: "bombay",
color: "black"
}
];
let dogIndex = { name : 1 };
let catIndex = { name : 1 };
let collInfoObjs = [
{ coll: "dogs", data: dogDocs, index: dogIndex },
{ coll: "cats", data: catDocs, index: catIndex }
];
for (obj of collInfoObjs) {
db[obj.coll].insertMany(obj.data);
db[obj.coll].createIndex(obj.index);
}
Этот файл скрипта создает две коллекции и вставляет документы с данными в эти коллекции. Сохраните my_script.js файл в папке, доступной сеансу оболочки MongoDB.
Запустите скрипт из оболочки MongoDB, подключенной к основному кластеру MongoDB.
load(my_script.js);
В оболочке MongoDB, подключенной к основному кластеру MongoDB, считывайте данные из базы данных.
db.dogs.find();
db.cats.find();
Включение доступа к кластеру реплики
Внимание
Кластеры реплик всегда создаются с отключенным сетевым доступом. Чтобы включить операции чтения, необходимо добавить правила брандмауэра или создать частные конечные точки в кластере реплики.
На странице основного кластера виртуальных ядер Azure Cosmos DB для MongoDB выберите страницу глобального распространения в разделе "Параметры".
Выберите имя реплики кластера в поле реплики чтения, чтобы открыть свойства реплики кластера чтения в портал Azure.
На странице кластера реплики реплики виртуальных ядер MongoDB в разделе "Параметры" выберите "Сеть".
На странице "Сеть" выберите "Добавить текущий IP-адрес клиента", чтобы создать правило брандмауэра с общедоступным IP-адресом компьютера, как воспринимается системой Azure.
Проверьте IP-адрес перед сохранением этой конфигурации. В некоторых ситуациях IP-адрес, наблюдаемый портал Azure, отличается от IP-адреса, используемого при доступе к службам Интернета и Azure. Кроме того, можно выбрать правило брандмауэра 0.0.0–255.255.255.255.255, чтобы разрешить не только IP-адрес, но и весь Интернет для доступа к кластеру. В этом случае клиентам по-прежнему необходимо выполнить вход с правильным именем пользователя и паролем для использования кластера.
На панели инструментов нажмите Сохранить, чтобы сохранить параметры. Чтобы обновленные параметры сети стали эффективными, может потребоваться несколько минут.
Подключение к кластеру реплики чтения в другом регионе и чтение данных
Получите строка подключения для реплики кластера чтения в другом регионе.
На боковой панели кластера реплики в разделе "Управление кластерами" выберите строки подключения.
Скопируйте значение из поля строки подключения.
Внимание
Строка подключения кластера реплик чтения содержит уникальное имя кластера реплики, выбранное во время создания реплики. Значения имени пользователя и пароля для кластера реплик чтения всегда совпадают с значениями в основном кластере.
В командной строке используйте оболочку MongDB для подключения к кластеру реплик чтения с помощью строка подключения.
mongosh "mongodb+srv://<user>@<cluster_replica_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Чтение данных из кластера реплики
В оболочке MongoDB, подключенной к кластеру реплики, считывайте данные из базы данных.
db.dogs.find();
db.cats.find();
Повышение уровня кластера реплики
Чтобы повысить уровень реплики чтения кластера в кластер чтения и записи, выполните следующие действия.
Выберите кластер реплики чтения на портале.
На боковой панели кластера в разделе "Управление кластерами" выберите глобальное распределение.
На странице глобального распространения выберите "Повысить уровень" на панели инструментов, чтобы инициировать повышение реплик чтения для кластера чтения и записи.
Во всплывающем окне "Продвижение кластера" убедитесь, что вы понимаете, как работает повышение реплики, и выберите "Повысить". Повышение реплики может занять несколько минут.
Запись в реплику отказоустойчивого кластера
После завершения продвижения реплики реплика становится доступной для операций записи, а для бывшего основного кластера задано значение только для чтения.
Используйте оболочку MongDB в командной строке для подключения к кластеру реплик с повышением уровня с помощью строка подключения.
mongosh "mongodb+srv://<user>@<promoted_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
В сеансе оболочки MongoDB выполните операцию записи.
db.createCollection('foxes')
Используйте оболочку MongDB в командной строке для подключения к новому кластеру реплики (бывшему основному кластеру) с помощью строка подключения. Вы можете использовать самостоятельное строка подключения или глобальную строка подключения чтения и записи.
mongosh "mongodb+srv://<user>@<new_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
В оболочке MongoDB убедитесь, что записи теперь отключены в новой реплике (бывший первичный кластер).
db.createCollection('bears')