Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
IBM Db2 для Linux, UNIX и Windows (LUW) в конфигурации высокой доступности и аварийного восстановления (HADR) состоит из одного узла, на котором выполняется первичный экземпляр базы данных, и по крайней мере одного узла, на котором выполняется вторичный экземпляр базы данных. Изменения экземпляра базы данных-источника реплицируются в экземпляр базы данных-получателя синхронно или асинхронно в зависимости от конфигурации.
Примечание
В этой статье содержатся ссылки на термины, которые корпорация Майкрософт больше не использует. Содержимое этой статьи обновляется, так как эти термины удаляются из программного обеспечения.
В этой статье описывается, как развернуть и настроить виртуальные машины Azure, установить платформу кластера и установить IBM Db2 LUW с конфигурацией HADR.
В этой статье не описано, как установить и настроить IBM Db2 LUW с установкой программного обеспечения HADR или SAP. Чтобы помочь вам выполнить эти задачи, мы предоставляем ссылки на руководства по установке SAP и IBM. В этой статье рассматриваются части, относящиеся к среде Azure.
Поддерживаемые версии IBM Db2 — 10.5 и более поздние версии, как описано в заметке SAP 1928533.
Перед началом установки ознакомьтесь со следующими заметками и документацией ПО SAP:
| Заметка SAP | Описание |
|---|---|
| 1928533 | Приложения SAP в Azure: поддерживаемые продукты и типы виртуальных машин Azure |
| 2015553 | SAP в Azure: предварительные требования для поддержки |
| 2178632 | Ключевые метрики мониторинга для SAP в Azure |
| 2191498 | SAP в Linux с помощью Azure: расширенный мониторинг |
| 2243692 | Виртуальная машина Linux в Azure (IaaS): проблемы с лицензией SAP |
| 2002167 | Red Hat Enterprise Linux 7.x: установка и обновление |
| 2694118 | Высокий уровень доступности Red Hat Enterprise Linux Add-On в Azure |
| 1999351 | Устранение неполадок с расширенным мониторингом Azure для SAP |
| 2233094 | DB6: приложения SAP в Azure, использующие IBM Db2 для Linux, UNIX и Windows, — дополнительные сведения |
| 1612105 | DB6: вопросы и ответы по Db2 с HADR |
Overview
Чтобы обеспечить высокий уровень доступности, IBM Db2 LUW с HADR устанавливается по крайней мере на двух виртуальных машинах Azure. Эти виртуальные машины развертываются в масштабируемом наборе виртуальных машин с гибкой оркестрацией между зонами доступности или в группе доступности.
На следующем рисунке показана настройка двух виртуальных машин сервера базы данных Azure. Обе виртуальные машины сервера баз данных Azure подключены к собственному хранилищу и работают. В HADR один экземпляр базы данных в одной из виртуальных машин Azure имеет роль основного экземпляра. Все клиенты подключены к основному экземпляру. Все изменения транзакций базы данных сохраняются локально в журнале транзакций Db2. Так как записи журнала транзакций сохраняются локально, записи передаются через TCP/IP в экземпляр базы данных на втором сервере базы данных. Передача записей может осуществляться на резервном сервере или резервном экземпляре. Резервный экземпляр обновляет локальную базу данных путем переадресации переданных записей журнала транзакций. Таким образом резервный сервер синхронизируется с основным сервером.
HADR — это только функция репликации. Он не поддерживает обнаружение сбоев и автоматическое переключение или восстановление при отказе. Для перехода на резервный сервер требуется запуск вручную администратором базы данных. Чтобы добиться автоматического захвата и обнаружения сбоев, можно использовать функцию кластеризации Linux Pacemaker. Pacemaker отслеживает два экземпляра сервера базы данных. Когда основной экземпляр сервера базы данных терпит сбой, Pacemaker инициирует автоматическое переключение HADR на резервный сервер. Pacemaker также гарантирует, что виртуальный IP-адрес назначен новому основному серверу.
Чтобы серверы приложений SAP подключались к базе данных-источнику, вам потребуется имя виртуального узла и виртуальный IP-адрес. После переключения на резервный сервер серверы приложений SAP подключаются к новому основному экземпляру базы данных. В среде Azure подсистема балансировки нагрузки Azure требуется для использования виртуального IP-адреса, как это требуется для HADR IBM Db2.
Чтобы понять, как IBM Db2 LUW с HADR и Pacemaker вписывается в высокодоступную настройку системы SAP, см. следующий образ. В нем представлен обзор высокодоступной системы SAP на основе базы данных IBM Db2. В этой статье рассматриваются только IBM Db2, но она содержит ссылки на другие статьи о настройке других компонентов системы SAP.
Общий обзор необходимых шагов
Чтобы развернуть конфигурацию IBM Db2, выполните следующие действия.
- Планирование среды.
- Разверните виртуальные машины.
- Обновите ОС RHEL Linux и настройте файловые системы.
- Установите и настройте Pacemaker.
- Настройка кластера GlusterFS или Azure NetApp Files (ANF.)
- Установите ASCS/ERS в отдельном кластере.
- Установите базу данных IBM Db2 с параметром распределенной или высокой доступности (SWPM).
- Установите и создайте вторичный узел и экземпляр базы данных, а затем настройте HADR.
- Убедитесь, что HADR работает.
- Примените конфигурацию Pacemaker для управления IBM Db2.
- Настройка Azure Load Balancer.
- Установка основных и диалоговых серверов приложений.
- Проверьте и адаптируйте конфигурацию серверов приложений SAP.
- Выполните тесты работы в условиях отказа и захвата управления.
Планирование инфраструктуры Azure для размещения IBM Db2 LUW с помощью HADR
Завершите процесс планирования перед выполнением развертывания. Планирование создает основу для развертывания конфигурации Db2 с HADR в Azure. Ключевые элементы, которые должны быть частью планирования для IMB Db2 LUW (часть базы данных среды SAP), перечислены в следующей таблице:
| Процедура | Краткое описание |
|---|---|
| Определение групп ресурсов Azure | Группы ресурсов, в которых развертывается виртуальная машина, виртуальная сеть, Azure Load Balancer и другие ресурсы. Может быть существующим или новым. |
| Виртуальная сеть или определение подсети | Где развертываются виртуальные машины ДЛЯ IBM Db2 и Azure Load Balancer. Может быть существующим или новым. |
| Виртуальные машины для хостинга IBM Db2 LUW | Размер виртуальной машины, хранилище, сеть, IP-адрес. |
| Имя виртуального узла и виртуальный IP-адрес базы данных IBM Db2 | Имя виртуального IP-адреса или узла используется для подключения серверов приложений SAP. db-virt-hostname, db-virt-ip. |
| Создание барьеров в Azure | Метод, чтобы избежать разбиения мозговых ситуаций, предотвращается. |
| Azure Load Balancer | Использование стандартного порта (рекомендуется) для базы данных Db2 и тестового порта (мы рекомендуем 62500) пробного порта. |
| Разрешение имен | Как работает разрешение имен в среде. Служба DNS настоятельно рекомендуется. Можно использовать файл локальных узлов. |
Дополнительные сведения о Linux Pacemaker в Azure см. в статье "Настройка Pacemaker" в Red Hat Enterprise Linux в Azure.
Важно
Для Db2 версии 11.5.6 и более поздних версий мы настоятельно рекомендуем интегрированное решение с помощью Pacemaker из IBM.
Развертывание в Red Hat Enterprise Linux
Агент ресурсов для IBM Db2 LUW включен в дополнение Red Hat Enterprise Linux Server HA. Для настройки, описанной в этом документе, следует использовать Red Hat Enterprise Linux для SAP. Azure Marketplace содержит образ для Red Hat Enterprise Linux 7.4 для SAP или более поздней версии, который можно использовать для развертывания новых виртуальных машин Azure. Перед выбором образа виртуальной машины ознакомьтесь с моделями поддержки и услуг, которые Red Hat предлагает в Azure Marketplace.
Хосты: обновления DNS
Создайте список всех имен узлов, включая имена виртуальных узлов, и обновите DNS-серверы, чтобы включить правильное разрешение IP-адресов для разрешения имен узлов. Если DNS-сервер недоступен или если записи DNS не могут быть созданы или изменены, то локальные файлы узлов на участвующих виртуальных машинах необходимо использовать вместо этого. Если вы используете записи файлов hosts, убедитесь, что записи применяются ко всем виртуальным машинам в среде системы SAP. Однако мы рекомендуем использовать ваш DNS, который, в идеале, интегрируется с Azure.
Ручное развертывание
Убедитесь, что выбранная ОС для IBM/SAP для IBM Db2 LUW поддерживается. Список поддерживаемых версий ОС для виртуальных машин Azure и выпусков Db2 доступен в sap Note 1928533. Список выпусков ОС по отдельному выпуску Db2 доступен в матрице доступности продукта SAP. Мы настоятельно рекомендуем не менее Red Hat Enterprise Linux 7.4 для SAP из-за улучшений производительности, связанных с Azure, в этих или более поздних версиях Red Hat Enterprise Linux.
- Создайте или выберите группу ресурсов.
- Создайте или выберите виртуальную сеть и подсеть.
- Выберите подходящий тип развертывания для виртуальных машин SAP. Обычно масштабируемый набор виртуальных машин с гибкой оркестрацией.
- Создайте виртуальную машину 1.
- Используйте образ Red Hat Enterprise Linux для SAP в Azure Marketplace.
- Выберите масштабируемый набор, зону доступности или группу доступности, созданную на шаге 3.
- Создайте виртуальную машину 2.
- Используйте образ Red Hat Enterprise Linux для SAP в Azure Marketplace.
- Выберите набор для масштабирования, зону доступности или группу доступности, созданный на шаге 3 (не ту же зону, что и на шаге 4).
- Добавьте диски данных на виртуальные машины. Ознакомьтесь с рекомендацией по настройке файловой системы в статье о развертывании СУБД ВИРТУАЛЬНЫх машин Azure IBM Db2 для рабочей нагрузки SAP.
Установка среды IBM Db2 LUW и SAP
Перед началом установки среды SAP на основе IBM Db2 LUW ознакомьтесь со следующей документацией:
- Документация По Azure.
- Документация ПО SAP.
- Документация IBM.
Ссылки на эту документацию приведены в вводном разделе этой статьи.
Ознакомьтесь с руководствами по установке SAP для установки приложений на основе NetWeaver в IBM Db2 LUW. Руководства можно найти на портале справки SAP с помощью средства поиска по установке SAP.
Вы можете уменьшить количество руководств, отображаемых на портале, задав следующие фильтры:
- Я хочу: Установить новую систему.
- Моя база данных: IBM Db2 для Linux, Unix и Windows.
- Другие фильтры для версий SAP NetWeaver, конфигурации стека или операционной системы.
Правила брандмауэра Red Hat
Red Hat Enterprise Linux по умолчанию включен брандмауэр.
#Allow access to SWPM tool. Rule is not permanent.
sudo firewall-cmd --add-port=4237/tcp
Указания по установке для настройки IBM Db2 LUW с помощью HADR
Чтобы настроить основной экземпляр базы данных IBM Db2 LUW, выполните следующие действия.
- Используйте высокий уровень доступности или распределенную опцию.
- Установите экземпляр SAP ASCS/ERS и базу данных.
- Создайте резервную копию только что установленной базы данных.
Важно
Запишите порт связи с базой данных , предоставленный во время установки. Он должен быть одинаковым номером порта для обоих экземпляров базы данных.
Параметры IBM Db2 HADR для Azure
При использовании агента ограждения Azure Pacemaker задайте следующие параметры:
- Длительность однорангового окна HADR (в секундах) (HADR_PEER_WINDOW) = 240
- Значение времени ожидания HADR (HADR_TIMEOUT) = 45
Мы рекомендуем предыдущие параметры на основе первоначального тестирования отказа и переключения. Обязательно протестируйте правильную функциональность резервирования и переключения с помощью этих параметров. Так как отдельные конфигурации могут отличаться, параметры могут потребовать корректировки.
Примечание
Зависит от конфигурации IBM Db2 с HADR при обычном запуске: экземпляр вторичной или резервной базы данных должен быть запущен перед запуском основного экземпляра базы данных.
Примечание
Для установки и настройки, специфичных для Azure и Pacemaker, во время процедуры установки с помощью SAP Software Provisioning Manager будет задан явный вопрос о высокой доступности для IBM Db2 LUW.
- Не выбирайте IBM Db2 pureScale.
- Не выбирайте установку IBM Tivoli System Automation для мультиплатформ.
- Не нажимайте кнопку "Создать файлы конфигурации кластера".
Чтобы настроить резервный сервер базы данных с помощью процедуры однородного копирования системы SAP, выполните следующие действия:
- Выберите параметр Копирование системы>Целевые системы>Распределенная>База данных.
- В качестве метода копирования выберите однородную систему , чтобы использовать резервную копию для восстановления резервной копии на резервном экземпляре сервера.
- Когда вы достигнете шага выхода, чтобы восстановить базу данных для однородной копии системы, закройте установщик. Восстановите базу данных из резервной копии основного узла. Все последующие этапы установки уже были выполнены на сервере базы данных-источника.
Правила брандмауэра Red Hat для DB2 HADR
Добавьте правила брандмауэра, чтобы разрешить работу трафика в DB2 и между DB2 для HADR:
- Порт связи с базой данных. При использовании разделов добавьте эти порты тоже.
- Порт HADR (значение параметра DB2 HADR_LOCAL_SVC).
- Порт пробы Azure.
sudo firewall-cmd --add-port=<port>/tcp --permanent
sudo firewall-cmd --reload
Проверка IBM Db2 HADR
Для демонстрационных целей и процедур, описанных в этой статье, идентификатор безопасности базы данных имеет идентификатор 2.
После настройки HADR и отображения состояния PEER и CONNECTED на основных и резервных узлах выполните следующую проверку:
Execute command as db2<sid> db2pd -hadr -db <SID>
# Primary output:
Database Member 0 -- Database ID2 -- Active -- Up 1 days 15:45:23 -- Date 2019-06-25-10.55.25.349375
HADR_ROLE = PRIMARY
REPLAY_TYPE = PHYSICAL
HADR_SYNCMODE = NEARSYNC
STANDBY_ID = 1
LOG_STREAM_ID = 0
HADR_STATE = PEER
HADR_FLAGS =
PRIMARY_MEMBER_HOST = az-idb01
PRIMARY_INSTANCE = db2id2
PRIMARY_MEMBER = 0
STANDBY_MEMBER_HOST = az-idb02
STANDBY_INSTANCE = db2id2
STANDBY_MEMBER = 0
HADR_CONNECT_STATUS = CONNECTED
HADR_CONNECT_STATUS_TIME = 06/25/2019 10:55:05.076494 (1561460105)
HEARTBEAT_INTERVAL(seconds) = 7
HEARTBEAT_MISSED = 5
HEARTBEAT_EXPECTED = 52
HADR_TIMEOUT(seconds) = 30
TIME_SINCE_LAST_RECV(seconds) = 5
PEER_WAIT_LIMIT(seconds) = 0
LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 598.000027
LOG_HADR_WAIT_ACCUMULATED(seconds) = 598.000
LOG_HADR_WAIT_COUNT = 1
SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 0, 46080
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 0, 369280
PRIMARY_LOG_FILE,PAGE,POS = S0000012.LOG, 14151, 3685322855
STANDBY_LOG_FILE,PAGE,POS = S0000012.LOG, 14151, 3685322855
HADR_LOG_GAP(bytes) = 132242668
STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000012.LOG, 14151, 3685322855
STANDBY_RECV_REPLAY_GAP(bytes) = 0
PRIMARY_LOG_TIME = 06/25/2019 10:45:42.000000 (1561459542)
STANDBY_LOG_TIME = 06/25/2019 10:45:42.000000 (1561459542)
STANDBY_REPLAY_LOG_TIME = 06/25/2019 10:45:42.000000 (1561459542)
STANDBY_RECV_BUF_SIZE(pages) = 2048
STANDBY_RECV_BUF_PERCENT = 0
STANDBY_SPOOL_LIMIT(pages) = 1000
STANDBY_SPOOL_PERCENT = 0
STANDBY_ERROR_TIME = NULL
PEER_WINDOW(seconds) = 300
PEER_WINDOW_END = 06/25/2019 11:12:03.000000 (1561461123)
READS_ON_STANDBY_ENABLED = N
#Secondary output:
Database Member 0 -- Database ID2 -- Standby -- Up 1 days 15:45:18 -- Date 2019-06-25-10.56.19.820474
HADR_ROLE = STANDBY
REPLAY_TYPE = PHYSICAL
HADR_SYNCMODE = NEARSYNC
STANDBY_ID = 0
LOG_STREAM_ID = 0
HADR_STATE = PEER
HADR_FLAGS =
PRIMARY_MEMBER_HOST = az-idb01
PRIMARY_INSTANCE = db2id2
PRIMARY_MEMBER = 0
STANDBY_MEMBER_HOST = az-idb02
STANDBY_INSTANCE = db2id2
STANDBY_MEMBER = 0
HADR_CONNECT_STATUS = CONNECTED
HADR_CONNECT_STATUS_TIME = 06/25/2019 10:55:05.078116 (1561460105)
HEARTBEAT_INTERVAL(seconds) = 7
HEARTBEAT_MISSED = 0
HEARTBEAT_EXPECTED = 10
HADR_TIMEOUT(seconds) = 30
TIME_SINCE_LAST_RECV(seconds) = 1
PEER_WAIT_LIMIT(seconds) = 0
LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 598.000027
LOG_HADR_WAIT_ACCUMULATED(seconds) = 598.000
LOG_HADR_WAIT_COUNT = 1
SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 0, 46080
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 0, 367360
PRIMARY_LOG_FILE,PAGE,POS = S0000012.LOG, 14151, 3685322855
STANDBY_LOG_FILE,PAGE,POS = S0000012.LOG, 14151, 3685322855
HADR_LOG_GAP(bytes) = 0
STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000012.LOG, 14151, 3685322855
STANDBY_RECV_REPLAY_GAP(bytes) = 0
PRIMARY_LOG_TIME = 06/25/2019 10:45:42.000000 (1561459542)
STANDBY_LOG_TIME = 06/25/2019 10:45:42.000000 (1561459542)
STANDBY_REPLAY_LOG_TIME = 06/25/2019 10:45:42.000000 (1561459542)
STANDBY_RECV_BUF_SIZE(pages) = 2048
STANDBY_RECV_BUF_PERCENT = 0
STANDBY_SPOOL_LIMIT(pages) = 1000
STANDBY_SPOOL_PERCENT = 0
STANDBY_ERROR_TIME = NULL
PEER_WINDOW(seconds) = 1000
PEER_WINDOW_END = 06/25/2019 11:12:59.000000 (1561461179)
READS_ON_STANDBY_ENABLED = N
Настройка Azure Load Balancer
Во время настройки виртуальной машины можно создать или выбрать выход из подсистемы балансировки нагрузки в разделе "Сеть". Выполните следующие действия, чтобы настроить стандартную подсистему балансировки нагрузки для установки высокого уровня доступности базы данных DB2.
Выполните действия, описанные в статье "Создание подсистемы балансировки нагрузки", чтобы настроить стандартную подсистему балансировки нагрузки для системы SAP с высоким уровнем доступности с помощью портал Azure. Во время настройки подсистемы балансировки нагрузки рассмотрите следующие моменты:
- Конфигурация внешнего IP-адреса: создание внешнего IP-адреса. Выберите ту же виртуальную сеть и имя подсети, что и виртуальные машины базы данных.
- Серверный пул: создайте внутренний пул и добавьте виртуальные машины базы данных.
-
Правила для входящего трафика: создание правила балансировки нагрузки. Выполните те же действия для обоих правил балансировки нагрузки.
- Внешний IP-адрес: выберите внешний IP-адрес.
- Внутренний пул: выберите внутренний пул.
- Порты высокой доступности: выберите этот параметр.
- Протокол. Выберите TCP.
-
Зонд работоспособности: создайте зонд работоспособности со следующими сведениями:
- Протокол. Выберите TCP.
- Порт: например, номер экземпляра 625<>.
- Интервал. Введите 5.
- Пороговое значение пробы: введите 2.
- Время ожидания простоя (минуты): введите 30.
- Включите плавающий IP-адрес: выберите этот параметр.
Примечание
Свойство конфигурации пробы работоспособности, также известное как numberOfProbes на портале, не учитывается. Чтобы управлять числом успешных или неудачных последовательных проб, задайте для свойства probeThreshold значение 2. В настоящее время невозможно задать это свойство с помощью портал Azure, поэтому используйте Azure CLI или команду PowerShell.
Примечание
Если виртуальные машины без общедоступных IP-адресов добавляются в внутренний пул внутренней подсистемы балансировки нагрузки Azure уровня "Стандартный", они не имеют исходящего подключения к Интернету. Для включения маршрутизации на общедоступные конечные точки требуется дополнительная конфигурация. Дополнительные сведения о том, как обеспечить исходящее подключение, см. в статье "Подключение к общедоступной конечной точке для виртуальных машин" с помощью Azure Standard Load Balancer в сценариях высокой доступности SAP.
Важно
Не включайте метки времени TCP на виртуальных машинах Azure, размещенных за Azure Load Balancer. Включение меток времени TCP может привести к сбою проверок работоспособности. Задайте для параметра net.ipv4.tcp_timestamps значение 0. Для получения дополнительной информации см. Пробы работоспособности балансировщика нагрузки.
[A] Добавьте правило брандмауэра для порта пробы:
sudo firewall-cmd --add-port=<probe-port>/tcp --permanent
sudo firewall-cmd --reload
Создание кластера Pacemaker
Чтобы создать базовый кластер Pacemaker для этого сервера IBM Db2, см. статью "Настройка Pacemaker на Red Hat Enterprise Linux в Azure".
Конфигурация Db2 Pacemaker
При использовании Pacemaker для автоматического переключения после отказа, если происходит сбой узла, необходимо настроить экземпляры Db2 и Pacemaker соответствующим образом. В этом разделе описывается этот тип конфигурации.
Следующие элементы имеют один из следующих префиксов:
- [A]: применимо ко всем узлам;
- [1]: применимо только к узлу 1
- [2]: применимо только к узлу 2
[A] Необходимые условия для конфигурации Pacemaker:
Завершите работу обоих серверов баз данных с пользователем db2<sid> с помощью команды db2stop.
Измените среду оболочки для пользователя db2<sid> на /bin/ksh:
# Install korn shell sudo yum install ksh # Change users shell sudo usermod -s /bin/ksh db2<sid>
Конфигурация Pacemaker
[1] Конфигурация IBM Db2 HADR для Pacemaker:
# Put Pacemaker into maintenance mode sudo pcs property set maintenance-mode=true[1] Создание ресурсов IBM Db2:
При создании кластера на RHEL 7.x обязательно обновите агенты ресурсов пакета до версии
resource-agents-4.1.1-61.el7_9.15или более поздней версии. Чтобы создать ресурсы кластера, используйте следующие команды:# Replace (" ") with your values for instance name db2sid, database SID, and virtual IP address/Azure Load Balancer. sudo pcs resource create Db2_HADR_ID2 db2 instance="db2id2" dblist="ID2" master meta notify=true resource-stickiness=5000 #Configure resource stickiness and correct cluster notifications for master resource sudo pcs resource update Db2_HADR_ID2-master meta notify=true resource-stickiness=5000 # Configure virtual IP - same as Azure Load Balancer IP sudo pcs resource create vip_db2id2_ID2 IPaddr2 ip="10.100.0.40" # Configure probe port for Azure load Balancer sudo pcs resource create nc_db2id2_ID2 azure-lb port=62500 #Create a group for ip and Azure loadbalancer probe port sudo pcs resource group add g_ipnc_db2id2_ID2 vip_db2id2_ID2 nc_db2id2_ID2 #Create colocation constrain - keep Db2 HADR Master and Group on same node sudo pcs constraint colocation add g_ipnc_db2id2_ID2 with master Db2_HADR_ID2-master #Create start order constrain sudo pcs constraint order promote Db2_HADR_ID2-master then g_ipnc_db2id2_ID2При создании кластера на RHEL 8.x обязательно обновите агенты ресурсов пакета до версии
resource-agents-4.1.1-93.el8или более поздней версии. Дополнительные сведения см. в статье о ресурсе Red Hat KBAdb2с проблемой повышения HADR до состоянияPRIMARY/REMOTE_CATCHUP_PENDING/CONNECTED. Чтобы создать ресурсы кластера, используйте следующие команды:# Replace (" ") with your values for instance name db2sid, database SID, and virtual IP address/Azure Load Balancer. sudo pcs resource create Db2_HADR_ID2 db2 instance="db2id2" dblist="ID2" promotable meta notify=true resource-stickiness=5000 #Configure resource stickiness and correct cluster notifications for master resource sudo pcs resource update Db2_HADR_ID2-clone meta notify=true resource-stickiness=5000 # Configure virtual IP - same as Azure Load Balancer IP sudo pcs resource create vip_db2id2_ID2 IPaddr2 ip="10.100.0.40" # Configure probe port for Azure load Balancer sudo pcs resource create nc_db2id2_ID2 azure-lb port=62500 #Create a group for ip and Azure loadbalancer probe port sudo pcs resource group add g_ipnc_db2id2_ID2 vip_db2id2_ID2 nc_db2id2_ID2 #Create colocation constrain - keep Db2 HADR Master and Group on same node sudo pcs constraint colocation add g_ipnc_db2id2_ID2 with master Db2_HADR_ID2-clone #Create start order constrain sudo pcs constraint order promote Db2_HADR_ID2-clone then g_ipnc_db2id2_ID2[1] Запустите ресурсы IBM Db2:
Поместите Pacemaker из режима обслуживания с помощью следующей команды:
sudo pcs property set maintenance-mode=false[1] Убедитесь, что состояние кластера ОК и все ресурсы запущены. Не важно, на каком узле работают ресурсы.
sudo pcs status 2 nodes configured 5 resources configured Online: [ az-idb01 az-idb02 ] Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started az-idb01 Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2] Masters: [ az-idb01 ] Slaves: [ az-idb02 ] Resource Group: g_ipnc_db2id2_ID2 vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb01 nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb01 Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled
Важно
Необходимо управлять кластеризованным экземпляром Db2 с помощью инструментов Pacemaker. При использовании команд db2, таких как db2stop, Pacemaker обнаруживает действие как сбой ресурса. При выполнении обслуживания можно поместить узлы или ресурсы в режим обслуживания. Pacemaker приостанавливает ресурсы мониторинга, а затем можно использовать обычные команды администрирования db2.
Внесение изменений в профили SAP для использования виртуального IP-адреса для подключения
Чтобы подключиться к основному экземпляру конфигурации HADR, уровень приложений SAP должен использовать виртуальный IP-адрес, определенный и настроенный для Azure Load Balancer. Требуются следующие изменения:
/sapmnt/<SID>/profile/DEFAULT.PFL
SAPDBHOST = db-virt-hostname
j2ee/dbhost = db-virt-hostname
/sapmnt/<SID>/global/db6/db2cli.ini
Hostname=db-virt-hostname
Установка основных и диалоговых серверов приложений
При установке основных и диалоговых серверов приложений в конфигурации DB2 HADR используйте имя виртуального узла, выбранное для конфигурации.
Если вы выполнили установку перед созданием конфигурации DB2 HADR, внесите изменения, как описано в предыдущем разделе, и как показано ниже для стеков SAP Java.
Проверка URL-адреса JDBC для систем стека ABAP+Java или Java
Используйте средство настройки J2EE для проверки или обновления URL-адреса JDBC. Так как средство конфигурации J2EE является графическим инструментом, необходимо установить X-сервер:
Войдите на основной сервер приложений экземпляра J2EE и выполните следующую команду:
sudo /usr/sap/*SID*/*Instance*/j2ee/configtool/configtool.shВ левом кадре выберите хранилище безопасности.
В правой рамке выберите ключ
jdbc/pool/\<SAPSID>/url.Измените имя узла в URL-адресе JDBC на имя виртуального узла.
jdbc:db2://db-virt-hostname:5912/TSP:deferPrepares=0Нажмите кнопку "Добавить".
Чтобы сохранить изменения, щелкните значок диска в левом верхнем углу.
Закройте средство настройки.
Перезапустите экземпляр Java.
Настройка архивации журналов для установки HADR
Чтобы настроить архивацию журналов Db2 для установки HADR, рекомендуется настроить как основную, так и резервную базу данных для автоматического извлечения журналов из всех расположений архива журналов. База данных-источник и резервная база данных должны иметь возможность извлекать файлы архива журналов из всех расположений архива журналов, в которых один из экземпляров базы данных может архивировать файлы журнала.
База данных-источник является единственной, которая выполняет архивацию журналов. При изменении ролей HADR серверов баз данных или сбоя новая база данных-источник отвечает за архивацию журналов. Если настроено несколько расположений архива журналов, журналы могут быть архивироваться дважды. Если требуется локальная или удаленная синхронизация, вам также может понадобиться вручную скопировать архивные журналы со старого основного сервера в расположение активных журналов нового основного сервера.
Рекомендуется настроить общую папку NFS или GlusterFS, где журналы записываются с обоих узлов. Общий ресурс NFS или GlusterFS должен быть высокодоступен.
Вы можете использовать существующие общие папки NFS с высоким уровнем доступности или GlusterFS для транспорта или каталога профилей. Дополнительные сведения можно найти здесь
- GlusterFS на виртуальных машинах Azure на Red Hat Enterprise Linux для SAP NetWeaver.
- Высокий уровень доступности sap NetWeaver на виртуальных машинах Azure в Red Hat Enterprise Linux с помощью Azure NetApp Files для приложений SAP.
- Azure NetApp Files (для создания общих папок NFS).
Проверка настройки кластера
В этом разделе описывается, как протестировать настройку HADR Db2. Каждый тест предполагает, что на виртуальной машине az-idb01 работает главный сервер IBM Db2. Необходимо использовать пользователя с привилегиями sudo или root (не рекомендуется).
Начальное состояние для всех тестовых случаев объясняется здесь: (crm_mon -r или pcs status)
-
pcs status— это моментальный снимок состояния Pacemaker во время выполнения. -
crm_mon -r— непрерывный вывод состояния Pacemaker.
2 nodes configured
5 resources configured
Online: [ az-idb01 az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb01
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb01 ]
Slaves: [ az-idb02 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb01
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb01
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
Исходное состояние системы SAP задокументировано в разделе Обзор конфигурации Transaction DBACOCKPIT, как показано на следующем рисунке.
Тестирование внедрения IBM Db2
Важно
Перед началом теста убедитесь, что:
У Pacemaker нет сбоев (pcs status).
Ограничения по местоположению отсутствуют (остатки теста миграции).
Синхронизация IBM Db2 HADR работает. Проверьте идентификатор пользователя db2<.>
db2pd -hadr -db <DBSID>
Перенесите узел, на котором выполняется база данных-источник Db2, выполнив следующую команду:
# On RHEL 7.x
sudo pcs resource move Db2_HADR_ID2-master
# On RHEL 8.x
sudo pcs resource move Db2_HADR_ID2-clone --master
После завершения миграции выходные данные состояния crm выглядят следующим образом:
2 nodes configured
5 resources configured
Online: [ az-idb01 az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb01
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb02 ]
Stopped: [ az-idb01 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb02
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb02
Исходное состояние системы SAP задокументировано в разделе Обзор конфигурации Transaction DBACOCKPIT, как показано на следующем рисунке.
Миграция ресурсов с pcs resource move создает ограничения по расположению. Ограничения расположения в этом случае препятствуют запуску экземпляра IBM Db2 в az-idb01. Если ограничения расположения не удаляются, ресурс не может вернуться.
Удалите ограничение на местоположение, и резервный узел будет запущен на az-idb01:
# On RHEL 7.x
sudo pcs resource clear Db2_HADR_ID2-master
# On RHEL 8.x
sudo pcs resource clear Db2_HADR_ID2-clone
И состояние кластера изменится на:
2 nodes configured
5 resources configured
Online: [ az-idb01 az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb01
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb02 ]
Slaves: [ az-idb01 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb02
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb02
Перенесите ресурс обратно в az-idb01 и снимите ограничения расположения:
# On RHEL 7.x
sudo pcs resource move Db2_HADR_ID2-master az-idb01
sudo pcs resource clear Db2_HADR_ID2-master
# On RHEL 8.x
sudo pcs resource move Db2_HADR_ID2-clone --master
sudo pcs resource clear Db2_HADR_ID2-clone
- В RHEL 7.x —
pcs resource move <resource_name> <host>создает ограничения расположения и может вызвать проблемы с переходом - В RHEL 8.x —
pcs resource move <resource_name> --masterсоздает ограничения расположения и может вызвать проблемы с передачей. -
pcs resource clear <resource_name>: очищает ограничения расположения -
pcs resource cleanup <resource_name>: очищает все ошибки ресурса
Тестирование перехода вручную
Вы можете протестировать переход вручную, остановив службу Pacemaker на узле az-idb01 :
systemctl stop pacemaker
Состояние узла в az-ibdb02 будет выглядеть примерно так:
2 nodes configured
5 resources configured
Node az-idb01: pending
Online: [ az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb02
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb02 ]
Stopped: [ az-idb01 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb02
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb02
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
После переключения можно снова запустить службу на az-idb01:
systemctl start pacemaker
Завершение процесса Db2 на узле, на котором выполняется основная база данных HADR
#Kill main db2 process - db2sysc
[sapadmin@az-idb02 ~]$ sudo ps -ef|grep db2sysc
db2ptr 34598 34596 8 14:21 ? 00:00:07 db2sysc 0
[sapadmin@az-idb02 ~]$ sudo kill -9 34598
Если экземпляр Db2 завершится сбоем, Pacemaker перемещает основной узел и сообщает следующее состояние:
2 nodes configured
5 resources configured
Online: [ az-idb01 az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb02
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb02 ]
Stopped: [ az-idb01 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb02
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb02
Failed Actions:
* Db2_HADR_ID2_demote_0 on az-idb01 'unknown error' (1): call=49, status=complete, exitreason='none',
last-rc-change='Wed Jun 26 09:57:35 2019', queued=0ms, exec=362ms
Pacemaker перезапускает основной экземпляр базы данных Db2 на том же узле. Или производится переключение на узел, на котором выполняется вторичный экземпляр базы данных, и сообщается об ошибке.
Завершение процесса Db2 на узле, на котором выполняется вторичный экземпляр базы данных
[sapadmin@az-idb02 ~]$ sudo ps -ef|grep db2sysc
db2id2 23144 23142 2 09:53 ? 00:00:13 db2sysc 0
[sapadmin@az-idb02 ~]$ sudo kill -9 23144
Узел попадает в состояние сбоя, и сообщается об ошибке.
2 nodes configured
5 resources configured
Online: [ az-idb01 az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb02
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb01 ]
Slaves: [ az-idb02 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb01
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb01
Failed Actions:
* Db2_HADR_ID2_monitor_20000 on az-idb02 'not running' (7): call=144, status=complete, exitreason='none',
last-rc-change='Wed Jun 26 10:02:09 2019', queued=0ms, exec=0ms
Экземпляр Db2 перезагружается во вторичной роли, назначенной ранее.
Остановите БД с использованием команды db2stop force на узле, на котором выполняется экземпляр основной базы данных HADR.
Как пользователь db2 sid выполните команду: db2stop force.
az-idb01:db2ptr> db2stop force
Обнаружен сбой:
2 nodes configured
5 resources configured
Online: [ az-idb01 az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb02
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Slaves: [ az-idb02 ]
Stopped: [ az-idb01 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Stopped
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Stopped
Failed Actions:
* Db2_HADR_ID2_demote_0 on az-idb01 'unknown error' (1): call=110, status=complete, exitreason='none',
last-rc-change='Wed Jun 26 14:03:12 2019', queued=0ms, exec=355ms
Экземпляр базы данных-получателя Db2 HADR был повышен до основной роли:
2 nodes configured
5 resources configured
Online: [ az-idb01 az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb02
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb02 ]
Slaves: [ az-idb01 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb02
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb02
Failed Actions:
* Db2_HADR_ID2_demote_0 on az-idb01 'unknown error' (1): call=110, status=complete, exitreason='none',
last-rc-change='Wed Jun 26 14:03:12 2019', queued=0ms, exec=355ms
Сбой основного узла виртуальной машины без перезагрузки ("сценарий остановки") в HADR
#Linux kernel panic - halts OS
sudo echo b > /proc/sysrq-trigger
В таком случае Pacemaker обнаруживает, что узел, на котором выполняется основной экземпляр базы данных, не отвечает.
2 nodes configured
5 resources configured
Node az-idb01: UNCLEAN (online)
Online: [ az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb02
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb01 ]
Slaves: [ az-idb02 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb01
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb01
Следующим шагом является проверка ситуации с разделением мозга . После того как оставшийся узел определяет, что узел, который последний раз запускал основной экземпляр базы данных, не работает, выполняется отработка отказа ресурсов.
2 nodes configured
5 resources configured
Online: [ az-idb02 ]
OFFLINE: [ az-idb01 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb02
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb02 ]
Stopped: [ az-idb01 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb02
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb02
Если обнаружена паника ядра, агент ограждения перезапускает отказавший узел. После восстановления узла в сети необходимо снова запустить кластер pacemaker:
sudo pcs cluster start
Когда вышедший из строя узел снова в сети, экземпляр Db2 запускается в роли вторичного узла, и статус кластера обновляется до:
2 nodes configured
5 resources configured
Online: [ az-idb01 az-idb02 ]
Full list of resources:
rsc_st_azure (stonith:fence_azure_arm): Started az-idb02
Master/Slave Set: Db2_HADR_ID2-master [Db2_HADR_ID2]
Masters: [ az-idb02 ]
Slaves: [ az-idb01 ]
Resource Group: g_ipnc_db2id2_ID2
vip_db2id2_ID2 (ocf::heartbeat:IPaddr2): Started az-idb02
nc_db2id2_ID2 (ocf::heartbeat:azure-lb): Started az-idb02