У меня есть сервер Zarafa (с Postfix в качестве агента доставки), на который я хотел бы добавить резервную копию в реальном времени. Это уже:
В случае повреждения файловой системы / базы данных, я хотел бы иметь резервную копию входящей почты в реальном времени, чтобы предотвратить потерю сообщений, полученных после ночного резервного копирования.
Доставка Zarafa работает так (отрывок из Postfix 'main.cf):
mailbox_transport = zarafa: zarafa_destination_recipient_limit = 1
virtual_alias_maps = mysql:/etc/postfix/mysql-aliases.cf
Транспорт почтового ящика (как определено в master.cf) - это инструмент, который принимает данные на стандартный ввод для доставки в хранилище Zarafa (на основе файла mysql +). Virtual_alias_maps - это команда SQL, которая в основном возвращает j.doe
в j.doe@example.com
, но только для существующих пользователей. Другими словами, он извлекает имя пользователя Zarafa из адреса электронной почты.
Одна вещь, о которой я могу думать, - это доставлять всю почту на второй транспорт, который отправляет ее на другой сервер. Этот сервер может быть простым почтовым сервером курьера, а fetchmail может быть настроен для повторной доставки с использованием SMTP на сервер, восстановленный из резервной копии.
Но это не на 100% элегантно, и я даже не знаю, как это сделать ...
Есть идеи лучше / реализации ...?
Изменить: теперь у меня есть второй почтовый сервер, настроенный так, что он сбрасывает всю входящую почту для соответствующего домена в один почтовый ящик с X-Original-To:
и Delivered-To:
заголовки, так что я могу получить их с помощью fetchmail и доставить по этим адресам (как мне сказали, у fetchmail есть опция для этого). Теперь, чтобы позволить Postfix на первичном сервере доставить два транспорта ...
Здесь вам могут подойти несколько подходов. Один из них - DRBD, но я бы рекомендовал его только для систем высокой доступности и критически важных систем.
mysqldump
на ведомом устройстве оказывает меньшее влияние на вашу производственную среду. Также убедитесь, что ваши вложения синхронизированы (обычно в файловой системе), и вам нужно регулярно проверять целостность вашего ведомого устройства.rsync
очень часто загружать двоичные файлы журналов (после очистки журналов). Можно воспроизвести журналы на более старом согласованном снимке, чтобы получить восстановление на определенный момент времени.dagent
и хотя он называется «Archiver», он может делать больше, чем просто архивировать почту.Если вы не знаете, как настроить это на уровне MySQL, я бы рекомендовал сначала поиграть с ним, чтобы вам было удобно. Я также рекомендую прочитать «Высокопроизводительный MySQL» (O'Reilly).