Я не администратор базы данных; Я являюсь основным разработчиком приложения на базе корпоративной базы данных.
В настоящее время я выбираю несколько новых машин для обновления нашей существующей корпоративной базы данных. В настоящее время мы используем Postgres 8.4 с базой данных на нашем сайте аварийного восстановления, которая получает обновления через определенные промежутки времени через некоторую пользовательскую работу rsync, выполненную бывшим сотрудником.
Одной из основных проблем, которую мы пытаемся решить, является задержка между двумя глобальными офисами. У нас есть сотрудники в Нью-Йорке и сотрудники в Лондоне. В настоящее время лондонских сотрудников постигла участь нашей трубы VPN. Я действительно не в состоянии изменить эту инфраструктуру.
Что я хотел бы сделать, так это перейти на Postgres 9 и настроить потоковую репликацию. Подчиненное устройство будет находиться в лондонском офисе, что упростит проблемы чтения для пользователей. Проблема, которую я предвижу, заключается в записи на ведомое устройство (не уверен, как PG справляется с этим, насколько я понимаю, ведомое устройство находится в режиме только для чтения). В идеале записи должны быть отправлены мастеру в Нью-Йорке (записи из Лондона очень редки, но необходимы) самой базой данных. Кроме того, я могу настроить отказоустойчивость, чтобы он действовал как резервная копия с возможностью горячей замены (заменяя DR). Опять же, все содержится в конфигурации Postgres без дополнительного кода.
Это мое идеализированное решение. Как далеко я? Это вообще возможно?
Я немного ошеломлен широтой этой темы, и Google мне не особо помогает. Я был бы признателен за любые советы от некоторых опытных администраторов баз данных с анекдотами, соответствующей документацией или примерами.
В настоящее время мы используем SQLAlchemy в качестве основного интерфейса к базе данных, если это уместно. Это означает, что мы не привязаны к Postgres.
Всем спасибо.