В IBM DB2 есть функция для базы данных HADR - чтение в режиме ожидания.Это позволяет подключать резервную базу данных для запросов только для чтения (с определенными ограничениями на типы данных и уровни изоляции)
Я пытаюсь настроить это как источник данных в приложении, которое выполняется в профиле свободы websphere.
Ранее это приложение использовало автоматический перенаправление клиента (которое гарантирует, что все соединения направлены на текущий основной)
Однако я хотел бы настроить его таким образом, чтобы яможет иметь потоки SELECT / только для чтения для запуска в резервной базе данных, а другие - для первичной.Это также должно работать, когда поглощение выполнено в базе данных (то есть резерв становится первичным и наоборот).Цель этого состоит в том, чтобы разделить количество созданных соединений между всеми доступными базами данных
Как правильно это сделать?
Что я пытался сделать (предположим, мои серверы - это dbserver1 и dbserver2):
Создайте 2 источника данных, один с URL-адресом db dbserver1, а другой с dbserver2.
- Это работает до тех пор, пока не будет выполнен захват и ролисерверы переключаются.
Создайте 2 источника данных, один с URL-адресом базы данных dbserver1 (с параметрами автоматического перенаправления клиента), а другой только с dbserver2.
- При такой конфигурации приложение работает нормально, но если dbserver2 становится основным, то все запросы к нему выполняются.
Настройка haproxy и использованиеэто определить, что является основным, а какой резервным.Создайте 2 источника данных, указывающих на haproxy
- Когда в базе данных выполняется захват, возникают исключения соединения (не только во время захвата, но и в течение некоторого времени после него)