посоветуйте механизмы синхронизации баз данных

NataNata

ситуация
есть два компа, один - основной, другой - запасной. И, соответственно, на каждом компе висит по идентичной проге-серверу. Клиенты висят на основном сервере. В случае каких-то проблем должны переключиться на запасной. Есть поставщик некоторых данных, который может использоваться только одним сервером; активный (т.е. либо основной, либо запасной) сервер эти данные собирает, переваривает и сохраняет в некоторые базы данных на своем компе.
Каковы имеются в природе стандартные решения, способы, алгоритмы и т.д. для синхронизации баз данных между серверами, если, основной сервер на время сдох и приходиться использовать запасной сервер (который должен продолжить сбор данных с поставщика на основе базы данных основного сервера а потом возвращаться опять на основной (который должен продолжить сбор данных с поставщика на основе базы данных запасного)? Под базами данных будем считать просто некоторые хранилища какой-то информации (MSSQL и Oracle тут непричем, конкретно в моем проекте они не используются из-за очень специфического вида данных)

hwh2010

Под базами данных будем считать просто некоторые хранилища какой-то информации
тебе нужна синхронизация файловых систем (ну или их директорий) что ли?

katrin2201

если dbms, то стандарт - master/slave replication
если в целом - ретранслируй все запросы на запись на слейв тоже

FRider

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

krishtaf

есть два стандартных решения:
- active - passive (failover) cluster с разделяемым(общим, shared) хранилищем - SAN, NFS, iSCSI и т.д.
- active - passive (failover) cluster с репликацией данных - репликация может быть как на уровне хранилища или Volume Manager-а или ФС или приложения (СУБД и т.д.)

ava3443

по второму пункту - предлагаю не мешать кластер с репликацией в одно.
они не всегда присутствуют одновременно: например, переключение на Disaster Recovery сайт совсем не часто делают под управлением кластера, но естественно всегда есть репликация.

krishtaf

здесь про Disaster Recovery между сайтами ничего и не обсуждается :cool:
тупо про банальный кластер из двух узлов
Оставить комментарий
Имя или ник:
Комментарий: