можно управлять наряду с прочими объектами, после сбоев сервера она
восстанавливается также вместе с другими.
Без дисциплины работать трудно
Теперь, когда общий механизм тиражирования ясен, попробуем
разобраться в некоторых аспектах его применения.
Как уже упоминалось, возможны два режима тиражирования: синхронный,
когда все изменения данных распространяются немедленно, и асинхронный,
когда по отношению к этим изменениям применяется алгоритм "запомнить и
передать" (store and forward), а момент передачи выбирается по заданному
правилу (или явно инициируется, например, после восстановления связи).
Синхронный вариант оправдан, по-видимому, в примере с банком и его
филиалами, приведенном в самом начале раздела (в случае асинхронного
тиражирования появляется опасность, что нечистый на руку клиент банка
может, к примеру, несколько раз закрыть свой счет, быстро перемещаясь из
филиала в филиал, - впрочем, как показано ниже, данная проблема может
быть разрешена и иначе). По сравнению с вариантом использования
синхронной связи без тиражирования, преимущества состоят в том, что, во-
первых, запросы выполняются на локальном сервере и не требуют передачи
данных между серверами, во-вторых, транзакции, хотя и требуют
распространения изменений, все же выполняются для клиентов быстрее,
поскольку это распространение происходит асинхронно по отношению к
транзакциям (клиент не ждет окончания обмена данными между серверами).
Другой важный пример использования синхронного тиражирования -
поддержка "зеркальной" БД на резервном сервере, причем оба сервера
(основной и резервный) в этом случае могут работать параллельно.
Что касается асинхронного тиражирования, то оно применимо тогда,
когда нет возможности поддерживать постоянную связь между серверами, а
временным рассогласованием данных можно поступиться (опять-таки в
предположении, что состояние БД во времени предсказуемо). Если на Западе
в качестве примера чаще всего приводят торгового агента, разъезжающего со