Репликация изменений базы данных - PullRequest
0 голосов
/ 27 октября 2010

Я хочу «реплицировать» базу данных на внешний сервис.Для этого я мог бы просто скопировать всю базу данных (SELECT * FROM TABLE).

Если были внесены некоторые изменения (INSERT, UPDATE, DELETE), нужно ли мне снова загружать всю базу данных или есть журналфайл, описывающий эти операции?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 октября 2010

Похоже, ваша "внешняя служба" - это не просто еще одна база данных, поэтому традиционная репликация может не сработать.Было бы здорово узнать больше об этом сервисе, чтобы мы могли настроить ответы.В зависимости от того, как долго вам нужно получать данные для внешнего сервиса и требования к производительности вашего приложения, могут быть следующие основные параметры:

  • Триггеры: добавить триггеры INSERT / UPDATE / DELETE, которые обновляют данные вашей внешней службыкогда ваши данные изменяются (это может повлиять на производительность вашего приложения, но предоставлять данные для вашей внешней службы практически в реальном времени)
  • Обработка журналов: вы можете анализировать изменения из журналов и использовать некоторый уровень ETL, чтобы убедиться, чтоони будут правильно работать в хранилище данных вашей внешней службы.Я бы не советовал вдаваться в подробности, если вы не знакомы с их структурой для вашей конкретной СУБД.
  • Инкрементные разности: вы можете запускать разницы на некотором интервале (например, 3 раза в день) и иметьЗадание cron или запланированное задание запускают скрипт, который перемещает все данные в большую порцию.Это отдает приоритет производительности вашего приложения над внешней службой.

Если вы выберете триггеры, вы сможете настроить существующее решение репликации на основе триггера для обновления вашей внешней службы.Я не использовал их, поэтому понятия не имею, насколько это безумно, просто идея.Вот некоторые примеры: Bucardo и Slony .

0 голосов
/ 28 октября 2010

Существует много способов репликации базы данных PostgreSQL. В текущей версии 9.0 Группа глобального развития PostgreSQL представила две новые функции: «Горячий резерв» и «Потоковая репликация», которые выводят PostgreSQL на новый уровень и представляют встроенное решение.

В вики есть полный обзор новых возможностей PostgreSQL-9.0: http://wiki.postgresql.org/wiki/PostgreSQL_9.0

Существуют и другие приложения, такие как Bucardo, Slony-I, Londiste (Skytools) и т. Д., Которые вы также можете использовать.

Теперь, что вы хотите сделать для обработки журналов? Что именно вы хотите? С уважением

...