Потокове реплікація та відмова на PostgreSQL


14

Я роблю доказ концепції про реплікацію PostgreSQL. Після обговорення на форумі ми вирішили перейти до потокової реплікації, оскільки продуктивність хороша порівняно з іншими рішеннями. PostgreSQL не забезпечує автоматичну відмову для потокової реплікації. Ми можемо переключити підлеглий на керування за допомогою тригерного файлу, але він не керований. Тому я хотів би отримати рішення з автоматичним відмовою і високою доступністю.

Доступні різні рішення:

  1. Repmgr
  2. Linux серцебиття
  3. Pgpool-II (лише для автоматичного виходу з ладу)
  4. Будь-який інший інструмент у випадку, якщо ви використовували.

Моє запитання - який розчин слід використовувати?

Відповіді:


8

У нашому магазині ми вибрали repmgr та pgbouncer замість pgpool. repmgr має кілька приємних інструментів для налаштування та підтримки кластеру реплікуваних серверів баз даних. У нашому випадку 1 ведучий та 2 раби (один тест на відмову та один живий тест читання, який може стати відмовою від нового майстра). pgpool має проблеми зі зміною конфігурації, у більшості випадків вам доведеться перезапустити службу, і для цього у вас є час простою. Це проблема, коли вам потрібна наявність 24x7x365.

repmgrd (deamon) допомагає обрати нового господаря після відмови, ви дійсно не хочете, щоб розділилася ситуація з мозком. У нас є одна віртуальна ip-адреса для основної бази даних, база даних, яка є головним на той момент. Коли інший сервер стає головним, це єдиний сервер, що використовує цю адресу. Кожен сервер бази даних також має власну ip-адресу для запитів лише для читання.

repmgr підтримують ті самі хлопці, які створили в першу чергу поточну реплікацію, тому вони знають, про що говорять. Вийде версія 2.0.

Підготуйтеся до найгіршої ситуації, зробіть серйозне тестування, витягнувши кілька джерел живлення та мережі! Коли щось піде не так, багато інших речей вже пішли не так і будуть кусати вас у спину, коли ви не можете собі цього дозволити.

Реплікація - це одне, справна помилка після серйозних проблем - інша річ.


1

Ми використовуємо одночасно два різних рішення в поєднанні ...

Pgpool-II для синхронної реплікації та Slony2 для асинхронної (тригерованої) реплікації.

Продуктивність відмінна


Дякую за відповідь ... Насправді я намагаюся Pgpool-II із поточною реплікацією. Це забезпечує автоматичну відмову. Але якщо я запустити основний вузол знову, чи може pgpool-II знову запуститися як майстер або вузол очікування?
Саураб

Наскільки я точно не знаю. вам доведеться зробити відновлення основного вузла вручну. Наша настройка дещо інша. це мультимайстерне середовище, і всі вузли мають рівні права. Якщо один вузол виходить із синхронізації, балансири навантажень відмовляються перенаправляти клієнтів до цього вузла.
користувач5701
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.