Entry tags:
Синхронизация содержимого баз
«Штирлиц бежал по Цветочной улице, а Плейшнеры все падали и падали»
Народсрется наобсуждает вечную тему - реализация синхронизации/репликации содержимого баз, применительно к Firebird. Вообще говоря, существуют готовые решения для такого, но, насколько я помню, любое подобное решение в итоге накладывает какие-то не совсем вменяемые ограничения на дизайн базы.
В принципе, мне это тоже предстоит реализовывать, но по той причине, что основную обезъянью работу за меня будет делать кодогенератор, меня больше волнуют теоретические и высокоуровненые аспекты, а думать я над ними сейчас не в состоянии. Скорее всего, сделаю составной ключ "ID базы, ID записи".
Народ
В принципе, мне это тоже предстоит реализовывать, но по той причине, что основную обезъянью работу за меня будет делать кодогенератор, меня больше волнуют теоретические и высокоуровненые аспекты, а думать я над ними сейчас не в состоянии. Скорее всего, сделаю составной ключ "ID базы, ID записи".
no subject
до обеда советских газет!sql.ru"no subject
no subject
Количество какое-то неразумное, да.
no subject
no subject
Кстати, насчет MSSQL - существуют ли там сейчас row-level триггера? А то они были statement-level и меня это как-то печалило при реализации подобных логов - приходилось извращаться, чтобы записи update получить.
no subject
получить updateнутые записи достаточно просто:
select t1.*
from mytable t1
join inserted i on i.ID=t1.ID
join deleted i on i.ID=t1.ID
no subject
select t1.*
from mytable t1
join inserted i on i.ID=t1.ID
join deleted d on d.ID=t1.ID
no subject
no subject
Между двумя базами - 2PC, у FB оно штатно работает.
Там другие проблемы - восстановление базы при сдыхании, правильный ордер накатывания логов и взаимодействие сервиса-синхронизатора с транзакциями (типа того, что если есть длинная транзакция, а во время ее закончилась коротенькая) - то сервис, подключившись, увидит данные короткой, а длинной нет, несмотря на то что она работала раньше.
no subject