Вообще, репликация основывается на двух различных концепциях:
♦ использование протокола транзакций;
♦ использование триггеров.
Как уже было сказано, Database Engine хранит все значения измененных строк (значения как «до», так и «после») в системных файлах, называемых протоколами транзакций. Если для выбранных строк нужно выполнить репликацию, система запускает новый процесс, который читает данные из протокола транзакций и отправляет их одной или более целевым базам данных.
Другой метод основан на триггерах. Изменение таблицы, содержащей данные, для которых должна быть выполнена репликация, вызывает соответствующий триггер, который по порядку создает новую таблицу с данными и запускает процесс репликации.
Обе концепции имеют как преимущества, так и недостатки. Репликация, основанная на протоколе, характеризуется улучшенной производительностью, поскольку процесс, который читает данные из протокола транзакций, выполняется асинхронно и оказывает очень небольшое влияние на производительность всей системы. С другой стороны, реализация репликации, основанной на протоколе транзакций, является весьма сложной для компаний, создающих системы баз данных, потому что система базы данных должна не только управлять дополнительными процессами и буферизацией, но и разрешать проблемы одновременного доступа между системой и процессами репликации, которые обращаются к протоколу транзакций.