Ми постійно ламаємо це навколо офісу, і питання продовжує виникати. Як ви маєте справу з реплікацією PostgreSQL? Я навіть не обов'язково говорю про розширені кластери, просто простою програмою Master-Slave, Master-MultiSlave та Master-Master. Я вважаю, що налаштувати його для MySQL, як правило, досить просто. Перехід на відмову - це просто, якщо не ідеально, особливо для того, наскільки це легко налаштувати. Ми грали зі Слоні, але це трохи занадто добре (зміни схем вимагають втручання, нові бази даних вимагають втручання тощо). PGPool2 виявився досить приємним, доки вузол не впав, і ми не змогли знайти витончений спосіб (окрім зведення всього та повторного повторного впадіння вузла), щоб повернути реплікацію в синхронізацію. В основному ось що я зазвичай шукаю:
- Просте налаштування (я вирішуватиму складні налаштування, але легко розширити)
- Спрощена відмова
- Повернення впалого вузла просто вимагає часу (наприклад, як mysql. Сервер виходить з ладу, ви підносите його і чекаєте, коли реплікація наздожене)
- Зміни схеми не порушують реплікацію
- Додавання нової бази даних до сервера є безпроблемним (тобто, як mysql, ви можете реплікувати цілий сервер БД, тому на базі даних створюється нова база даних, вона автоматично поширюється на підлеглий)
MySQL обробляє більшість із них досить добре, але я певну прихильність до PostgreSQL. Крім того, у нас є деякі ситуації, коли це наш єдиний варіант, і ми хотіли б додати реплікацію до суміші. Що ви зараз використовуєте та як ви ставитесь до свого рішення? Я обіцяю, що це не MySQL проти PostgreSQL, тому що я не намагаюся почати. :)