Смекни!
smekni.com

Математико-механический факультет (стр. 2 из 3)


Database Data Comparison сравнивает данные обеих баз, а также позволяет выбирать для сравнения отдельные таблицы или наборы таблиц. Результаты отображаются в цветовом режиме, генерируется скрипт для синхронизации.


Система основана на технологии Microsoft .NET, которая обеспечивает быструю подгрузку данных, а уникальный алгоритм построения разницы схем и данных позволяет быстро обрабатывать большие базы.

DBSync – набор продуктов для синхронизации конкретных пар разнородных баз данных.

DBSync for Access & MySQL предоставляет возможность синхронизировать и конвертировать MS Access и MySQL базы данных путем несложного определения настроек в построенном по принципу Wizard приложении. Программа не только предоставляет возможность конвертировать данные, синхронизируя их, но и позволяет выбрать определенные таблицы для конвертации, задавать параметры работы приложения посредством командной строки и выбирать между возможностью копировать идентичные записи из исходной базы данных в назначенную, или же одинаковые записи не копировать. Пользователи также имеют возможность выбирать тип таблиц: MyISAM, HEAP, BDB или ISAM. Планировщик задач позволяет программировать компьютер для запуска определенных приложений в заданные сроки, что значительно облегчает распределение нагрузки и отслеживание выполнения запланированных задач.

Другие имеющиеся приложения:

DBSync for FoxPro & MSSQL

DBSync for MS Access & MSSQL

Итак, видно, что имеется большое количество хороших и удобных продуктов синхронизации баз данных. Но основным недостатком их является невозможность осуществлять перманентный контроль различий содержимого разнородных баз. Кроме того, в основном это средства либо для контроля данных между базами одного производителя, либо синхронизация схем разнородных баз. Очень мало продуктов предлагают возможность синхронизации данных от разнородных источников, это приложения для фиксированных пар баз данных, среди которых отсутствует реализация для Progress Database.

2.3 Способы синхронизации баз данных

Синхронизация данных — это ликвидация различий между двумя копиями данных. Предполагается, что ранее эти копии были одинаковы, а затем одна из них, либо обе были независимо изменены.

Репликация (англ. replication) — механизм синхронизации содержимого нескольких копий объекта (например, содержимого базы данных). Репликация — это процесс, под которым понимается копирование данных из одного источника на множество других и наоборот.

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

Репликацию можно классифицировать по нескольким характеристикам.

1. По направлению репликации.

Если данные изменяются только в одной из БД, а в другой данные только хранятся и не подвергаются изменениям, то такую репликацию будем называть однонаправленной или односторонней. Если же данные могут изменяться и вводиться на всех БД, то такой вид репликации будем называть мультинаправленной или многосторонней.

2. По времени проведения репликации относительно транзакций.

Синхронная репликация

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

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

Aсинхронная репликация

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

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

К недостаткам этой схемы относится то, что данные могут оказаться несовместимыми (то есть несовместимыми с точки зрения пользователя). Иными словами, избыточность может проявляться на логическом уровне.

Рассмотрим кратко проблему согласованности (или, скорее, несогласованности). Дело в том, что реплики могут становиться несовместимыми в результате ситуаций, которых трудно (или даже невозможно) избежать и последствия которых трудно исправить.

В частности, конфликты могут возникать по поводу того, в каком порядке должны применяться обновления. Например, предположим, что в результате выполнения транзакции А происходит вставка строки в реплику X, после чего транзакция B удаляет эту строку, а также допустим, что Y — реплика X. Если обновления распространяются на Y, но вводятся в реплику Y в обратном порядке (например, из-за разных задержек при передаче), то транзакция B не находит в Y строку, подлежащую удалению, и не выполняет своё действие, после чего транзакция А вставляет эту строку! Суммарный эффект состоит в том, что реплика Y содержит указанную строку, а реплика X — нет.

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

3. По способу передачи информации во время процесса репликации.

Если соединение серверов, хранящих распределенные БД, происходит при помощи программы клиента, которая с одной стороны подсоединяется к своему серверу, а с другого конца имеет прямую связь с БД другого сервера и может подключиться напрямую к данным другого сервера, для прямого изменения и анализа реплицируемых данных с обеих концов, имея при этом гарантированный устойчивый канал связи (ADSL, выделенный канал, двупроводная линия Dial-Up и пр.), то такой вид синхронизации назовем прямым. Если же канал неустойчивый и не гарантирует устойчивую связь без падений во время процесса синхронизации и данные приходится передавать цельными пачками, при этом принимающая сторона во время закачки и анализа данных не имеет немедленной возможности опросить источник при возникновении на ее взгляд сомнительных моментов, а решение "Что делать?" принимать в любом случае нужно, то такой вид синхронизации будем называть недетерминированной или вероятностной.

4. По способу анализа реплицируемой информации.

Репликация моментальных снимков (snapshot replication) - это периодическая репликация целостного набора данных, зафиксированного по состоянию на определенный момент времени, с локального сервера на удаленные. Лучше использовать этот тип репликации в БД, где количество реплицируемых данных невелико, а источник данных статичен. Репликация моментальных снимков наиболее подходит для работы с не слишком интенсивно изменяемыми данными, для небольших объемов реплицируемой информации, которые могут обновляться полностью без существенного увеличения нагрузки на сеть, а также для данных, которые не нужно постоянно поддерживать в актуальном состоянии (допустим, архивные данные об объемах продаж предприятия).

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

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

5. По времени проведения сеанса репликации.