|
Программирование >> Программирование баз данных
Как и в случае системы репликации путем слияния, при подготовке системы транзакционной репликации к работе необходимо обеспечить первоначальную синхронизацию опубликованных статей в базах данньпс издателя и подписчиков. Такая задача обычно решается с помощью автоматической синхронизации на основе репликации снимков. В таких ситуациях, когда автоматическая синхронизация является либо неосуществимой, либо недостаточно эффективной, для подготовки баз данных подписчиков к работе может применяться синхронизация вручную. Это - относительно простой процесс, который описан Н14же. 1. Вызовите на выполнение команду BACKUP DATABASE, чтобы создать резервную копию базы данных издателя. 2. Доставьте резервную копию на магнитной ленте на тот узел, где эксплуатируется система подписчика. 3. Вызовите на выполнение команду RESTORE DATABASE, чтобы создать базу данных и объекты базы данных, а также загрузить данные. Это позволяет обеспечить синхронизацию баз данных издателя и подписчика на тот момент, когда была создана резервная копия. Транзакционная репликация может также использоваться для репликации хранимых процедур. Еще раз отметим, что простейшая реализация системы транзакционной репликации позволяет вносить изменения только в базу данньгх издателя. Из этого следует, что возможность возникновения конфликтов исключена. Предусмотрена также возможность реализовать транзакционную репликацрпо по принципу транзакционной репликации с немедленным обновлением баз данных подписчиков. Под этим подразумевается, что изменения могут быть внесены и в базу данных издателя, и в базу данных подписчика. Транзакции, происходящие в базе данных подписчика, рассматриваются как распределенные. Для обеспечения того, чтобы локальнью данные и данные в базе данньгх издателя обновлялись одновременно, в целях предотвращения конфликтов обновления, используется координатор распределенных транзакций Microsoft (MS DTC). Как средство возобновления нормальной работы в том случае, если в сети возникают нарушения связи, такие как разрывы соединений или переход отдельных узлов сети в автономный режим, применяется отложенное обновление, при котором обновления помещаются в упорядоченный список операций, подлежащих выполнению. Еще один вариант состоит в том, что распределенные транзакции могут быть реализованы непосредственно, а не в рамках системы транзакционной репликации. Это позволяет добиться меньшей задержки, чем при использовании транзакционной репликации, но задержка распространения, связанная с передачей изменений из базы данных издателя во все базы данных подписчиков, все равно останется. При условии, что между компьютерами, на которых эксплуатргруют-ся базы данных системы репликации, поддерживаются надежные соединения, с помощью распределенных транзакций достигается возможность почти немедленного распространения обновлений по всем базам данных при внесении изме-нешй в данные любой базы данных. Но если быстродействие и надежность соединений между компьютерами системы репликации недостаточно велики, то могут возникать проблемы производительности, а также конфликты, обусловленные возникновением блокировок. Агент чтения журнала В процессе транзакционной репликации используется агент чтения журнала (Log Reader Agent). После подготовки базы данных для применения в системе транзакционной репликгщии относящийся к этой базе данных журнал транзакций контролируется агентом чтения журнала на наличие изменений в публикуемых таблицах. После обнаружения изменений агент берет на себя ответственность за копирование информации о транзакциях, которые рассматриваются как предназначенные для репликации, из базы данных издателя в базу данных распределителя (рис. 20.7). В транзакционной репликации используется также агент распределения, который отвечает за передачу транзакций из базы данных распределителя базу (базы) данных подписчика (подписчиков). Издатель Опубликованные данные Агент чтения журнала Распределитель Журнал транзакций Агент распределения Подписчик Подписчик Рис. 20.7. Организация процесса транзакционной репликации Процесс транзакционной репликации При условии, что начальная синхронизация уже выполнена, в процессе транзакционной репликации выполняются перечисленные ниже основные действия. L Информация об изменениях передается в базу данных издателя и регистрируется в относящемся к этой базе данных журнале транзакций. 2. Агент чтения журнала читает журнал транзакций и выявляет изменения, отмеченные как предназначенные для репликации. 3. Изменения, информация о которых получена из журнала транзакций, вводятся в базу данных распределителя. 4. Агент распределения применяет эти изменения к соответствующим таблицам базы данных. Предусмотрена возможность выполнить настройку программы агента чтения журнала, для того чтобы чтение журнала транзакций происходило непрерывно или по установленному графику. Как и в системе репликации путем слияния, программа агента распределения обычно эксплуатируется на компьютере издателя. если применяются push-подписки, и на компьютере подписчика в случае использования pull-подписок, но может быть настроена на дистанционную эксплуатацию с помощью программы Management Studio или средств RMO. Условия использования транзакционной репликации Транзакционная репликация применяется, если желательно или необходимо уменьшить задержку и обеспечить надежное предоставления подписчикам относительно актуальной информации. Чтобы иметь возможность проводить обновления почти в реальном времени, обычно требуется, чтобы система репликации эксплуатировалась в локальной сети, но и в условиях распределенной сети часто удается обеспечить репликацию по расписанию с помощью запланированных обновлений. Если решено использовать запланированные обновления, то приходится идти на то, что время задержки увеличится, но приобретается то преимущество, что контроль над выполнением репликации становится явным. Еще раз вернемся к рассмотрению примера с сетью магазинов садового инвентаря и обсудим проблему контроля наличия товаров, о которой речь шла выше. Допустим, вьщвигается такое требование, чтобы каждый магазин имел актуальную или почти актуальную информацию о наличии товаров. При этом обеспечивается возможность использовать планируемую репликацию для передачи данных подписчикам. А теперь рассмотрим, при каких обстоятельствах решение этой задачи становится более затруднительным. Предположим, что торговля садовым инвентарем осуществляется не только непосредственно в магазинах; в сети магазинов имеется штат коммивояжеров, которые посещают наиболее крупных заказчиков и принимают у них заказы. Этим торговым агентам требуется относительно актуальная информация о наличии товаров, но они не могут сидеть за компьютером и ждать, когда поступят обновления от издателя. Для систем репликации такого типа может потребоваться использовать pull-подписки, поскольку подобная организация работы позволяет торговым агентам самим решать, когда следует подключиться к базе данных издателя и загрузить информацию о последних по времени транзакциях. Возможно, читатель сам смог обнаружить, какие потенциальные проблемы возникают в обоих этих сценариях. Например, может оказаться так, что данные поступают в удаленные базы данных, но возможность внесения изменений в данные с помощью средств этих баз данных отсутствует. Информация об этой проблеме приведена ниже. Система транзакционной репликации, работа которой организована таким образом, используется для поддержки операций передачи копий данных, предназначенных только для чтения, в базы данных подписчиков. Специальные требования к планированию При планировании работы системы транзакционной репликации необходимо решить важную проблему, связанную с вьщелением достаточного объема памяти. В частности, должно быть отведено достаточно места для журнала транзакций на компьютере издателя и для базы данных на компьютере распределителя. Проверьте каждую таблицу, которая подлежит публикации. Таблица, которая должна быть опубликована в рамках системы транзакционной репликации, обязана иметь первичный ключ. Определенные проблемы возникают и в том случае, если в любой из публикуемых таблиц имеются столбцы с данными типа text или image. Операции INSERT, UPDATE и DELETE поддерживаются применительно к данным лю-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |