 Выбор инструмента для репликации

Выбор инструмента для репликации

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

  • Портфельная репликация является удобным способом поддержания файла базы данных в обновленном состоянии. Например, можно перетащить файл базы данных, записанный на стационарном компьютере, на значок Портфель переносного компьютера. При этом создается новая реплика. Для получения дополнительных сведений нажмите кнопку [image] .

  • Команды репликации в меню Сервис Microsoft Access, доступные в базе данных (.mdb) и в проекте (.adp), позволяют создавать реплики и синхронизировать их по требованию при работе в Microsoft Access. Для получения дополнительных сведений о репликации в базе данных нажмите кнопку [image] . Для получения дополнительных сведений о репликации в проекте нажмите кнопку [image] .

  • Объекты доступа к данным (DAO) и объекты репликации и Jet (JRO) предоставляют методы и свойства, позволяющие разработчикам программным способом выполнять репликацию и синхронизацию баз данных и проектов. Для получения дополнительных сведений о DAO нажмите кнопку [image] . Для получения дополнительных сведений о JRO нажмите кнопку [image] .

  • Диспетчер репликации Microsoft — это полнофункциональное средство управления репликами, планирования синхронизации и просмотра элементов набора реплик. Диспетчер репликации входит в комплект средств разработчика Microsoft Office 2000 Developer. Для получения дополнительных сведений нажмите кнопку [image] .


 Диспетчер репликации Microsoft

Диспетчер репликации Microsoft

Диспетчер репликации Microsoft можно использовать в следующих целях.

  • Управление большим количеством реплик.

  • Поддержка пользователей переносных компьютеров, которые не всегда подключены к сети.

  • Создание реплик нескольких баз данных.

  • Составление расписания синхронизации элементов набора реплик.

  • Устранение ошибок.

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

Примечание. Если глобальная реплика, являющаяся репликой-разветвителем для локальной или анонимной реплики, будет перемещена или скопирована при помощи любого средства, отличного от команды Move Replica диспетчера репликации, то синхронизация глобальной реплики с локальными или анонимными репликами данного набора реплик будет невозможна. При этом локальные и анонимные реплики также не смогут синхронизироваться с глобальной репликой, которая их породила.


 Новые возможности репликации

Новые возможности репликации

Команды репликации в меню Сервис Microsoft Access, доступные в базе данных Microsoft Access (.mdb) и в проекте Microsoft Access (.adp), позволяют создавать реплики и синхронизировать их по требованию при работе в Microsoft Access.

  • Репликация в проекте Access. Репликация данных в проекте Access путем создания публикаций и подписки.

  • Объекты репликации и Jet (JRO). JRO предоставляют методы и свойства, используя которые разработчики могут программно реплицировать и синхронизировать базы данных и проекты Access.

  • Репликация Web-сервера. Позволяет работать с файлами даже после отключения от Web-сервера.

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

  • Возможность запрета удалений. Позволяет запретить пользователям удалять записи в реплике.

  • Локальные и анонимные реплики. Создание локальных реплик и анонимных реплик. Локальные и анонимные реплики могут синхронизироваться только со своей родительской, глобальной репликой. Анонимные реплики рекомендуется использовать в Интернет-приложениях, где требуется большое число реплик.

  • Просмотр конфликтов. Стандартным инструментом Access для урегулирования и устранения конфликтов синхронизации является программа Просмотр конфликтов.

  • Свойство RowLevelTracking. Когда это свойство таблицы установлено в значение True, конфликты будут обрабатываться на уровне строк таблицы. По умолчанию конфликты обрабатываются на уровне столбцов.

  • Свойство ConflictFunction. Это свойство используется для замены программы просмотра конфликтов Microsoft Access пользовательской процедурой устранения конфликтов синхронизации.

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

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

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


Устранение проблем репликации базы данных

Изменяется имя таблицы или запроса

При изменении данных в одном элементе набора они не распространяются на другие элементы набора

При изменении структуры объекта в основной реплике, в других репликах она не изменяется

Не удается найти основную реплику

Невозможно открыть основную реплику

Невозможно сделать реплику основной репликой

В наборе реплик есть две основные реплики

Замена процедуры устранения конфликтов синхронизации

В портфель перетаскивается файл базы данных. Как запретить его репликацию?


 Назначение реплики основной репликой

Назначение реплики основной репликой

  1. Убедитесь, что ни реплика, ни текущая основная реплика нигде не используются.

  2. Откройте реплику, которую нужно сделать новой основной репликой.

  3. В меню Сервис выберите команду Репликация и подкоманду Синхронизация.

  4. Выберите для синхронизации текущую основную реплику.

  5. Установите флажок Сделать основной репликой 'ИмяФайлаРеплики'.

  6. Нажмите кнопку OK.


 Восстановление основной реплики

Восстановление основной реплики

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

  1. Убедитесь, что в наборе реплик нет основной реплики.

  2. Откройте реплику, которую необходимо сделать новой основной репликой.

  3. В меню Сервис выберите команду Репликация и подкоманду Синхронизация.

  4. Выберите реплику из списка и нажмите кнопку OK.

  5. Повторите пункты 2-4 необходимое количество раз для синхронизации с каждой репликой набора.

    Важно! Убедитесь, что синхронизация проведена со всеми репликами набора.

  6. В меню Сервис выберите команду Репликация и подкоманду Восстановить основную реплику.

  7. Нажмите кнопку Да.


 Создание реплики базы данных

Создание реплики базы данных

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

    Важно! Рекомендуется перед проведением репликации ознакомиться с изменениями, которые вносятся в базу данных при ее репликации. Для этого достаточно нажать кнопку [image] .

  2. Если база данных защищена паролем, то его необходимо удалить.

    Инструкции

  3. В меню Сервис выберите команду Репликация и подкоманду Создать реплику.

  4. Нажмите кнопку Да в ответ на вопрос о закрытии базы данных.

  5. Нажмите кнопку Да или Нет (рекомендуется Да) в ответ на вопрос о создании резервной копии базы данных (это диалоговое окно выводится только при преобразовании базы данных в основную реплику).

  6. В диалоговом окне Размещение новой реплики выберите место для размещения новой реплики.

  7. В диалоговом окне Размещение новой реплики нажмите кнопку Приоритет, введите приоритет реплики и нажмите OK. Для получения информации об установке приоритета реплик нажмите кнопку [image] .

  8. В диалоговом окне Размещение новой реплики установите флажок Запретить удаление, чтобы пользователи не могли удалять записи из реплики.

  9. В диалоговом окне Размещение новой реплики выберите область видимости реплики в раскрывающемся списке Тип файла. Для получения сведений об областях видимости реплик нажмите кнопку [image] .

  10. Нажмите кнопку OK.

Примечания

  • При реплицировании базы данных все таблицы, запросы, формы, отчеты, макросы и модули по умолчанию реплицируются вместе с данными. Для получения дополнительных сведений о том, как запретить репликацию форм, отчетов, макросов и модулей, нажмите кнопку [image] .

  • Для получения сведений по другим вопросам, связанным с репликацией проекта Microsoft Access, нажмите кнопку [image] .


Создание реплики с помощью портфеля

  1. Убедитесь, что приложение «Портфель» установлено на компьютере. Если «Портфель» установлен, то на рабочем столе Windows должен присутствовать значок Портфель.

    Если приложение «Портфель» не установлено, выполните следующие действия:

    • Нажмите кнопку Пуск, выберите команду Настройка и подкоманду Панель управления. Щелкните значок Установка и удаление программ, выберите вкладку Установка Windows и дважды щелкните элемент Стандартные программы. Далее следуйте инструкциям на экране.

    • Для установки программы репликации с помощью портфеля запустите программу установки Microsoft Access. Для получения дополнительных сведений нажмите кнопку [image] .
  2. Если база данных защищена паролем, то его необходимо удалить.

    Инструкции

  3. В окне проводника Windows выберите папку, в которой расположена база данных Microsoft Access.

  4. Перетащите файл базы данных на значок Портфель на рабочем столе Windows.

    Важно! Перед проведением репликации базы данных следует ознакомиться с изменениями, которые вносятся в базу данных при ее репликации. Для этого достаточно нажать кнопку [image] .


 Удаление реплики из набора реплик

Удаление реплики из набора реплик

  1. В проводнике Windows найдите реплику, которую нужно удалить.

  2. Щелкните эту реплику и нажмите клавишу DEL.

  3. Попытайтесь выполнить синхронизацию с только что удаленным элементом набора реплик из другого элемента этого набора (эта процедура позволяет оповестить другие элементы о произведенном удалении).

Осторожно! Не удаляйте из набора реплик основную реплику, если она не перестала функционировать. Удаление основной реплики сделает невозможным изменение структуры базы данных. Рекомендуется также проверять реплику на наличие конфликтов. Если этого не делать, то конфликтующие записи будут потеряны при удалении или перемещении реплики.


 Сравнение областей видимости глобальных, локальных и анонимных реплик

Сравнение областей видимости глобальных, локальных и анонимных реплик

В Microsoft Access существует три типа областей видимости реплик: глобальная, локальная и анонимная.

Данный раздел содержит справочные сведения по следующим вопросам.

Применение реплики

Автономные среды в Интернете

Пользовательские приложения в Интернете

Создание реплики

Возможность использования в качестве основной реплики

Область видимости реплики в Access 95 и 97

Устранение конфликтов

Синхронизация

Планирование

Поддержка портфельной репликации

Применение реплики

  • Глобальная
 Выступает в роли реплики-разветвителя в наборе реплик
  • Локальная
Топология управления
  • Анонимная
 Топология управления/Интернет

Возврат в начало

Автономные среды в Интернете

  • Глобальная
 Да
  • Локальная
 Да
  • Анонимная
 Да. Анонимные реплики рекомендуется использовать в Интернет-приложениях, где требуется большое число реплик

Возврат в начало

Пользовательские приложения в Интернете

  • Глобальная
 Да
  • Локальная
 Да
  • Анонимная
 Да. Используйте Интернет в качестве средства распространения большого числа реплик.

Возврат в начало

Создание реплики

  • Глобальная
 Да. Создает глобальные, локальные или анонимные реплики.
  • Локальная
 Да. Создает новые локальные реплики.
  • Анонимная
 Да. Создает новые анонимные реплики.

Возврат в начало

Возможность использования в качестве основной реплики

  • Глобальная
 Поддерживается. При реплицировании базы данных первая созданная реплика (основная реплика) является глобальной.
  • Локальная
 Не поддерживается
  • Анонимная
 Не поддерживается

Возврат в начало

Область видимости реплики в Access 95 и 97

  • Глобальная
 По умолчанию
  • Локальная
 Не применимо
  • Анонимная
 Не применимо

Возврат в начало

Устранение конфликтов

  • Глобальная
 Конфликты могут устраняться любой глобальной репликой.
  • Локальная
 Все конфликты регистрируются и устраняются репликой-разветвителем (глобальной репликой).
  • Анонимная
 Все конфликты регистрируются и устраняются репликой-разветвителем (глобальной репликой).

Возврат в начало

Синхронизация

  • Глобальная
 Синхронизируется с любыми глобальными репликами набора реплик и с любыми локальными и анонимными репликами, созданными этим набором.
  • Локальная
 Синхронизируется только со своей репликой-разветвителем (глобальной репликой).
  • Анонимная
 Синхронизируется только со своей репликой-разветвителем (глобальной репликой).

Возврат в начало

Планирование

  • Глобальная
 Диспетчер репликации может планировать синхронизацию с любой глобальной или локальной (дочерней) репликой. Синхронизация с анонимными репликами не может быть запланирована.
  • Локальная
 Реплики-разветвители могут планировать синхронизацию с локальной репликой. Локальные реплики могут планировать синхронизацию со своими репликами-разветвителями (глобальными репликами).
  • Анонимная
 Анонимные реплики могут планировать синхронизацию со своими репликами-разветвителями (глобальными репликами).

Возврат в начало

Поддержка портфельной репликации

  • Глобальная
 Да
  • Локальная
 Нет
  • Анонимная
 Нет

Возврат в начало


 Установка приоритета реплики

Установка приоритета реплики

Приоритет реплики определяет учет изменений записей в случае конфликта при синхронизации.

Данный раздел содержит справочные сведения по следующим вопросам.

Различие приоритетов в Access

Определение приоритета реплики

Простой случай

Сложный случай

Дополнительные сведения

Различие приоритетов в Access

В Microsoft Access 95 и 97 конфликты синхронизации разрешались с помощью правила, по которому применялась запись, изменявшаяся наиболее часто. В Access 2000 реплике в наборе реплик при ее создании назначается приоритет, и в случае конфликта синхронизации применяется реплика с наивысшим приоритетом. При равенстве приоритетов применяется реплика с минимальным значением свойства ReplicaID. См. сведения о свойствах, добавляемых в базу данных при ее репликации.

Возврат в начало

Определение приоритета реплики

Каждой реплике назначается значение приоритета в диапазоне от 0 до 100, где 100 представляет высший приоритет. При репликации базы данных реплике по умолчанию назначается приоритет 90. Последующим репликам по умолчанию назначается значение приоритета, равное 90 процентам от приоритета разветвителя. Приоритет локальной и анонимной реплики всегда равняется 0. Локальные и анонимные реплики автоматически отбрасываются, если изменения в них конфликтуют с их глобальной репликой-разветвителем. Если из локальных или анонимных реплик в разветвитель отправляются изменения, не приводящие к конфликтам, то разветвитель становится владельцем изменений.

Access отслеживает хронологию изменения приоритета для каждой записи в наборе реплик. При синхронизации проверяются хронологические значения приоритета и в случае возникновения любого конфликта применяется запись с наивысшим значением приоритета. Для понимания схемы приоритетов рассмотрим пример основной реплики «A» с приоритетом 100. Реплика «A» реплицируется в две реплики, реплику «B» с приоритетом 90 и реплику «C» с приоритетом 95.

Назначенные приоритеты в наборе реплик.

Возврат в начало

Простой случай

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

Возврат в начало

Сложный случай

Если одна запись изменяется несколько раз после последней синхронизации, то победителем в конфликте оказывается измененная запись с максимальным историческим значением приоритета. Предположим, что реплика «A» создает вторую версию записи и отправляет ее реплике «B». Реплика «B» создает третью версию, которая отправляется назад в реплику «A», с которой выполняется объединение. Предположим далее, что реплика «C» также создала версию номер два записи и синхронизируется с репликой «A». При выборе максимального хронологического приоритета изменений, имевших место после изменения исходной записи (приоритет 100 для реплики «A» и приоритет 95 для версии строки в реплике «C»), изменения в репликах «A» и «B» окажутся победителями в конфликте с изменениями в реплике «C». Однако так как реплика «A» была создана раньше реплики «B», то окончательно победителем в конфликте окажется реплика «A». Одно из преимуществ такого правила заключается в том, что изменения, внесенные в реплику с наивысшим приоритетом, никогда не отменяются механизмом устранения конфликтов репликации.

Возврат в начало

Дополнительные сведения

Синхронизация данных в наборе реплик

Создание реплики базы данных

Возврат в начало


 Установка периода удержания в наборе реплик

Установка периода удержания в наборе реплик

Период удержания в наборе реплик определяет число дней, в течение которого несинхронизированные записи сохраняются в системных таблицах. Период удержания задается при преобразовании базы данных в реплицируемую. При реплицировании базы данных с помощью диспетчера репликации, объектов доступа к данным (DAO) или объектов репликации и Jet (JRO), по умолчанию устанавливается значение периода удержания, равное 60 дням. Если репликация базы данных выполняется с помощью Microsoft Access или портфеля, то период удержания будет по умолчанию составлять 1000 дней.

Период удержания можно изменить в основной реплике при помощи диспетчера репликации или свойства RetentionPeriod JRO. Период удержания должен быть в диапазоне от 5 до 32000 дней. Если реплики синхронизируются не часто, то набор реплик должен иметь большой период удержания. Если же реплики синхронизируются часто и размер реплик нужно сохранять небольшим, то следует использовать меньший период удержания.

Реплика или основная реплика должна получать и отсылать данные и схему базы данных в течение периода удержания. Когда в Microsoft Access или диспетчере репликации открывается реплика, срок действия которой истекает в ближайшие 5 дней, появится сообщение, напоминающее о том, что реплика скоро станет недействительной. Если период удержания для реплики истекает, диспетчер репликации и Access не будут выполнять синхронизацию этой реплики с другими элементами набора реплик. Если реплика не будет синхронизирована с другой репликой набора в течение периода удержания, то при следующей попытке синхронизировать эту реплику она будет удалена из набора. Если истечет срок действия основной реплики, то нужно будет выполнить восстановление основной реплики и преобразовать существующую или новую реплику в основную реплику.

Дополнительные сведения

Создание реплики базы данных в Access

Создание реплики с помощью портфеля

Диспетчер репликации Microsoft

Репликация с помощью объектов доступа к данным (DAO)

Репликация с использованием объектов репликации и Jet (JRO)

Синхронизация данных в наборе реплик


 Два способа устранения конфликтов: на уровне строк и на уровне столбцов

Два способа устранения конфликтов: на уровне строк и на уровне столбцов

В Microsoft Access 95 и 97 конфликты определялись на уровне строк. Конфликт возникал при любом изменении одной и той же записи в нескольких репликах, даже если в разных репликах изменялись разные поля. Например, изменение телефона клиента в одной реплике и его почтового индекса в другой реплике вызывало конфликт.

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

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

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

Примечание. При использовании объектов репликации и Jet (JRO) режим устранения конфликтов может быть установлен только для всей базы данных, а не для отдельных таблиц. При преобразовании базы данных в реплицируемую можно присвоить свойству ColumnLevelTracking значения True или False с помощью метода MakeReplicable JRO.

Дополнительные сведения

Создание реплики базы данных

Репликация с использованием объектов репликации и Jet (JRO)

Репликация в проекте Microsoft Access


 Конфликты синхронизации

Конфликты синхронизации

Конфликты могут возникать при изменении данных в двух или более репликах.

Данный раздел содержит справочные сведения по следующим вопросам.

Различия характеров конфликтов в Access

Конфликты одновременного обновления

Конфликты уникальности ключа

Конфликты проверки условий на значения таблиц

Конфликты нарушения целостности данных при обновлении

Конфликты нарушения целостности данных при удалении

Конфликты блокировки

Конфликты недействительных внешних ключей

Различие регистра символов в наборах реплик

Конфликты в частичных репликах

Устранение конфликтов

Различия характеров конфликтов в Access

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

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

Возврат в начало

Конфликты одновременного обновления

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

Возврат в начало

Конфликты уникальности ключа

Конфликты уникальности ключа могут происходить в следующих случаях.

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

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

Возврат в начало

Конфликты проверки условий на значения таблиц

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

Возврат в начало

Конфликты нарушения целостности данных при обновлении

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

Возврат в начало

Конфликты нарушения целостности данных при удалении

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

Возврат в начало

Конфликты блокировки

Конфликты блокировки происходят в случаях, когда запись не может быть распространена при синхронизации на другие реплики из-за того, что таблица заблокирована другим пользователем. Microsoft Access сделает несколько попыток обновить запись, но если это не поможет, то процесс синхронизации прекратится и база данных будет возвращена в предыдущее состояние. При этом Access выдаст сообщение об ошибке, но конфликт зарегистрирован не будет.

Возврат в начало

Конфликты недействительных внешних ключей

Конфликты недействительных внешних ключей возникают при наличии некорректной записи первичного ключа. Это может быть вызвано конфликтом любого другого типа.

Возврат в начало

Различие регистра символов в наборах реплик

Число конфликтов может быть выше в тех наборах реплик, которые используются с базами данных различных типов — например, Access и Microsoft SQL Server — если в них используются различающиеся параметры языковой сортировки или учета регистра символов при сортировке. Это связано с тем, что уникальные значения ключа в одной базе данных могут не быть уникальными в другой базе данных, использующей иные параметры сортировки. Эта проблема распространяется на индексированные текстовые данные и на метаданные, но не относится к неиндексированным текстовым данным. При создании реплик, использующих различные параметры сортировки, требуется уделять повышенное внимание обеспечению уникальности метаданных и индексированного текста для всех методов сортировки.

Возврат в начало

Конфликты в частичных репликах

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

Возврат в начало

Устранение конфликтов

Если одна и та же запись реплицированной базы данных изменяется сразу в нескольких репликах, то при синхронизации набора реплик возникает конфликт. Для устранения этих конфликтов Access вызывает программу Просмотр конфликтов. Этот мастер показывает сведения о каждом конфликте; в нем нужно вручную указывать, данные какой из измененных записей следует принять. См. устранение конфликтов синхронизации между элементами набора реплик.

Возврат в начало


 Синхронизация данных в наборе реплик

Синхронизация данных в наборе реплик

В Microsoft Access, диспетчере репликации и объектах репликации и Jet (JRO) можно выбрать один из трех различных методов синхронизации данных: прямую, косвенную и по Интернету.

Данный раздел содержит справочные сведения по следующим вопросам.

Прямая синхронизация

Косвенная синхронизация

Синхронизация по Интернету

Перемещение и копирование глобальных реплик

Дополнительные сведения

Прямая синхронизация

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

Если при попытке выполнить прямую синхронизацию с репликой, присутствующей в списке известных реплик, эта реплика не будет найдена, то она будет исключена из набора реплик.

Возврат в начало

Косвенная синхронизация

Косвенная синхронизация полезна при работе в автономной среде, например, на переносном компьютере.

Косвенную синхронизацию можно настроить только с помощью диспетчера репликации, входящего в комплект средств разработчика Microsoft Office 2000 Developer (MOD). После того, как косвенная синхронизация будет настроена в диспетчере репликации, ее можно выполнять с помощью Microsoft Access, диспетчера репликации или JRO.

Возврат в начало

Синхронизация по Интернету

Синхронизация по Интернету представляет собой удобный способ синхронизации реплик в тех автономных средах, которые имеют доступ к Интернету.

Для настройки синхронизации по Интернету нужно использовать диспетчер репликации, который входит в комплект средств разработчика Microsoft Office 2000 Developer (MOD).

Возврат в начало

Перемещение и копирование глобальных реплик

Если глобальная реплика, являющаяся репликой-разветвителем для локальной или анонимной реплики, будет перемещена или скопирована при помощи любого средства, отличного от команды Move Replica диспетчера репликации, то синхронизация глобальной реплики с локальными и анонимными репликами данного набора реплик будет невозможна. При этом локальные и анонимные реплики также не смогут синхронизироваться со своей родительской глобальной репликой.

Возврат в начало

Дополнительные сведения

Диспетчер репликации Microsoft

Сравнение областей видимости реплик

Конфликты синхронизации

Синхронизация с другим элементом набора реплик

Репликация в проекте Microsoft Access

Возврат в начало


 Устранение конфликтов синхронизации между элементами набора реплик

Устранение конфликтов синхронизации между элементами набора реплик

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

  1. Запустите средство устранения конфликтов репликации Просмотр конфликтов одним из следующих способов.
    • Откройте базу данных, которую нужно проверить на наличие конфликтов. Если конфликты существуют, то будет задан вопрос о необходимости их разрешения. Для продолжения нажмите кнопку Да.

    • В меню Сервис выберите команду Репликация и подкоманду Устранить конфликты.
  2. В окне Просмотр конфликтов выберите в списке таблицу, имеющую конфликты, и нажмите кнопку Просмотр.

  3. Для каждого конфликта, представленного в программе Просмотр конфликтов, выберите один из следующих вариантов.
    • Чтобы сохранить данные реплики 1, выберите параметр Сохранить текущие данные.

    • Чтобы изменить данные реплики 1 и скопировать их в реплику 2 при следующей синхронизации, выберите параметр Сохранить обновленные данные.

    • Чтобы сохранить данные реплики 2 и заменить данные реплики 1 при следующей синхронизации, выберите параметр Заменить конфликтующими данными.

    • Чтобы изменить данные реплики 2 и заменить данные реплики 1 при следующей синхронизации, выберите параметр Заменить обновленными данными.
  4. Нажмите кнопку Устранить.

  5. Повторите шаги 3 и 4 необходимое число раз для устранения всех конфликтов в таблице.

Примечания

  • Конфликтующие записи могут быть потеряны при удалении или перемещении реплики. Перед удалением или перемещением реплики следует проверить ее на наличие конфликтов.

  • Для получения дополнительных сведений о конфликтах синхронизации нажмите кнопку [image] .


 Синхронизация реплики с помощью портфеля

Синхронизация реплики с помощью портфеля

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

  1. Щелкните значок Портфель и выберите файл базы данных.

  2. В меню Портфель выберите команду Обновить выделенные объекты.

  3. Нажмите кнопку Обновить для изменения и обновления портфеля.

Примечание. Портфель не поддерживает локальные и анонимные реплики.


 Синхронизация с другим элементом набора реплик базы данных

Синхронизация с другим элементом набора реплик базы данных

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

  1. Откройте элемент набора реплик, который необходимо синхронизировать.

  2. В меню Сервис выберите команду Репликация и подкоманду Синхронизация. (Если каким-либо элементом набора реплик управляет синхронизатор в Интернете, эта реплика будет присутствовать в раскрывающемся списке Directly with Replica под именем http://ИмяСервера, где ИмяСервера обозначает имя сервера Интернета).

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

  4. Если база данных является основной репликой и нужно сделать основной другую реплику, установите флажок Сделать основной репликой: 'ИмяФайла'. (Этот режим недоступен в том случае, когда одна или обе синхронизируемые реплики являются частичными репликами).

  5. Нажмите кнопку OK.

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

Примечания

  • Для получения сведений по другим вопросам, связанным с репликацией проекта Microsoft Access, нажмите кнопку [image] .

  • Для получения дополнительных сведений о синхронизации данных в наборе реплик нажмите кнопку [image] .


 Преобразование набора реплик к формату Microsoft Access 2000

Преобразование набора реплик к формату Microsoft Access 2000

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

  1. Создайте копию текущей основной реплики (созданной в Microsoft Access 97) и поместите копию на другой компьютер или полностью изолируйте ее от остальных элементов набора реплик.

  2. В Microsoft Access 97 создайте изолированную копию основной реплики, выбрав из меню Сервис команду Репликация и подкоманду Восстановить основную реплику.

  3. Создайте несколько реплик, базирующихся на новой основной реплике.

  4. Для преобразования новой основной реплики в формат Microsoft Access 2000 выберите в меню Сервис команду Служебные программы и подкоманду Преобразовать базу данных.

  5. Повторите пункт 4 для всех реплик своего набора.

  6. Синхронизируйте новую преобразованную основную реплику с только что преобразованными репликами.

  7. Поэкспериментируйте с получившейся базой данных, выполняя любые тесты.

    Если необходимо изменить некоторые объекты, то это можно сделать либо изменив исходную основную реплику после ее преобразования, либо сохранив копию для импорта измененных объектов из нее.

  8. Если работа с копией проходит нормально, то следует удалить новую основную реплику и все ее реплики. Убедитесь, что все пользователи, которые должны обращаться к основной реплике и репликам, работают с Microsoft Access 2000.

  9. Преобразуйте к формату Microsoft Access 2000 исходную основную реплику и все исходные реплики.

    Преобразованные реплики больше нельзя будет открыть в Microsoft Access 97.

Примечание. Для получения дополнительных сведений о репликации в проекте Microsoft Access нажмите кнопку [image] .


 Преобразование реплицируемой базы данных в нереплицируемую

Преобразование реплицируемой базы данных в нереплицируемую

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

Примечание. Создайте для каждой таблицы новой базы данных такой же индекс, что и в таблице реплики. Если поле s_GUID является первичным ключом (и внешние ключи в других таблицах его используют), то поле «s_GUID» следует включить в новую таблицу. Если же поле «s_GUID» не используется как первичный ключ, то нет смысла сохранять его в новой таблице. Поля «s_Lineage» и «s_Generation» не должны переноситься в новую таблицу.

  1. Создайте и откройте новую базу данных.

  2. Выберите в меню Файл команду Внешние данные и подкоманду Импорт.

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

  4. Выберите объекты базы данных — кроме таблиц — которые требуется импортировать в новую базу данных.

  5. Нажмите кнопку OK для импорта выделенных объектов.

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

    Инструкции

  7. Для каждой таблицы в новой базе данных создайте такой же индекс, какой использовался в таблице реплики.

    Инструкции

  8. Для каждой таблицы в новой базе данных создайте те же связи, которые были определены для таблицы в реплике.

    Инструкции

  9. Сохраните новую базу данных.


 Репликация баз данных предыдущих версий Microsoft Access

Репликация баз данных предыдущих версий Microsoft Access

Версии Microsoft Access до 7.0 не поддерживают репликацию баз данных и, следовательно, не могут использовать реплицированные базы данных.

Существует возможность преобразования набора реплик, созданного в Microsoft Access 97, путем его синхронизации и последующего индивидуального преобразования каждой реплики в формат Access 2000. Для получения дополнительных сведений о преобразовании набора реплик в формат Microsoft Access 2000 нажмите кнопку [image] .


 Поля типа «Счетчик» и репликация базы данных

Поля типа «Счетчик» и репликация базы данных

Если база данных будет реплицироваться, то необходимо определить подходящий размер для поля типа «Счетчик», используемого в качестве первичного ключа таблицы. При использовании поля типа «Счетчик» в качестве первичного ключа таблицы в реплицируемой базе данных следует установить для его свойства Размер поля (FieldSize) либо значение Длинное целое, либо Код репликации.

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

  • Если же между операциями синхронизации добавляется более 100 записей, то следует использовать для свойства Размер поля (FieldSize) значение Код репликации, чтобы предотвратить повторение значений в ключевых полях записей в разных репликах. Однако следует отметить, что в поле типа «Счетчик» с размером «Код репликации» генерируются 128-байтовые значения, требующие больше места на диске.


Изменения, вносимые в базу данных при ее репликации

При репликации базы данных Microsoft Access в нее автоматически вносится целый ряд изменений.

Изменения, вносимые в базу данных

Поля, добавляемые в каждую существующую таблицу базы данных

Новые таблицы, добавляемые в базу данных

Новые свойства, добавляемые в базу данных

Изменение характеристик полей типа «Счетчик»

Изменение размера файла базы данных


 Рекомендуемые действия при изменении структуры реплицированной базы данных

Рекомендуемые действия при изменении структуры реплицированной базы данных

  • Перед изменением структуры базы данных выполните синхронизацию всех реплик в наборе реплик.

  • Перед созданием нового объекта или поля проверьте все реплики, чтобы убедиться, что имя, присваиваемое новому объекту или полю, не используется в качестве имени локального объекта. (Если будет выбрано такое имя, то локальный объект будет переименован.)

  • Не создавайте связей между реплицируемыми и нереплицируемыми таблицами.

  • Убедитесь, что увеличение размера поля или добавление полей в запись не приведет к превышению максимально допустимых для реплицированных баз данных значений. Для получения дополнительных сведений об ограничениях на размеры в реплицированной базе данных нажмите кнопку [image] .

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


 Защита реплицированной базы данных

Защита реплицированной базы данных

Для защиты реплицированной базы данных можно присвоить пользователям разрешения на объекты этой базы данных. Эти разрешения не влияют на синхронизацию базы данных. Защитить реплицированную базу данных с помощью пароля нельзя. Защищенную паролем базу данных нельзя реплицировать; невозможно также назначить пароль реплицированной базе данных.

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

Для получения сведений по другим вопросам, связанным с репликацией проекта Microsoft Access, нажмите кнопку [image] .


 Репликация с использованием объектов репликации и Jet (JRO)

Репликация с использованием объектов репликации и Jet (JRO)

Существует возможность создания и сопровождения реплицируемых баз данных с помощью методов и свойств объектов репликации и Jet (JRO).

Данный раздел содержит справочные сведения по следующим вопросам.

Программирование реплицируемых баз данных

Методы

Свойства

Методы и свойства, доступные в частичных репликах

Дополнительные сведения

Программирование реплицируемых баз данных

Используйте объекты JRO, если требуется программный контроль за обменом данными и информацией о макете по всем элементам набора реплик. Например, объекты JRO могут применяться в процедуре, которая выполняет автоматическую синхронизацию пользовательской реплики с остальными репликами набора при открытии базы данных. Чтобы программно сделать базу данных реплицируемой, она должна быть закрыта.

Возврат в начало

Методы

Метод CreateReplica

Метод GetObjectReplicability

Метод MakeReplicable

Метод SetObjectReplicability

Метод Synchronize

Возврат в начало

Свойства

Свойство ActiveConnection

Свойство ConflictFunction

Свойство ConflictTables

Свойство DesignMasterId

Свойство ReplicaId

Свойство ReplicaType

Свойство RetentionPeriod

Свойство TableName

Свойство Visibility

Возврат в начало

Методы и свойства, доступные в частичных репликах

Метод Append

Метод Delete

Метод PopulatePartial

Свойство FilterCriteria

Свойство FilterType

Свойство Priority

Возврат в начало

Дополнительные сведения

Создание частичных реплик

Возврат в начало


 Преобразование набора реплик к формату Microsoft Access 2000

Преобразование набора реплик к формату Microsoft Access 2000

При преобразовании реплик, созданных в формате Microsoft Access 97, к формату Microsoft Access 2000, каждую реплику следует преобразовать отдельно. Перед началом преобразования рекомендуется синхронизировать набор реплик. Если набор реплик защищен, то также желательно (но не обязательно) преобразовать файл system.mdw, содержащий разрешения на доступ к базе данных. Для успешного выполнения преобразования все элементы набора реплик должны храниться на компьютерах с установленным Microsoft Access 2000.

Используйте консервативный подход при преобразовании набора реплик. Это позволяет проверить процедуру преобразования на вспомогательном, временном наборе реплик, перед применением ее к исходному набору.

Дополнительные сведения

Преобразование набора реплик к формату Microsoft Access 2000


 Назначение основной реплики с помощью портфеля

Назначение основной реплики с помощью портфеля

Для изменения макета базы данных при работе с копией файла .mdb в портфеле скопируйте в портфель основную реплику. Необходимо помнить, что невозможно вносить изменения в макет реплики, оставшейся на рабочем столе.


 Изменение характеристик полей типа «Счетчик» при репликации базы данных

Изменение характеристик полей типа «Счетчик» при репликации базы данных

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

Перед выполнением репликации базы данных необходимо определить, предполагают ли какие-либо приложения или пользователи использование последовательной нумерации в полях типа «Счетчик». Если это так, то можно создать дополнительное поле типа дата/время для упорядочения данных.

Примечание. Реплики в базе данных Access, которые были созданы из публикации Microsoft SQL Server, сохраняют функциональность полей счетчика для поддержки функции SQL Server Named Range. Эти диапазоны нужно проконтролировать в каждой из реплик. Чтобы получить дополнительные сведения о репликации в проекте Microsoft Access, нажмите кнопку [image] .


 Поля, добавляемые в таблицы при репликации базы данных

Поля, добавляемые в таблицы при репликации базы данных

При репликации базы данных Microsoft Access добавляет в каждую реплицируемую таблицу реплицируемой базы данных следующие системные поля.

Поле | Описание
s_GUID | Глобальный уникальный идентификатор каждой записи.
s_Lineage | Двоичное поле, содержащее информацию об истории изменения каждой записи.
s_Generation | Поле, в котором хранится информация о группах изменений.

Примечания

  • Для каждого поля таблицы типа поле MEMO или поле объекта OLE добавляется дополнительное поле с именем «Gen_ИмяПоля».

  • Системные поля «s_GUID», «s_Lineage» и «s_Generation» являются системными объектами, которые могут быть, а могут и не быть видимыми в таблицах. Чтобы сделать эти поля видимыми в реплицированных таблицах, выберите команду Параметры в меню Сервис, щелкните вкладку Вид и установите флажок системные объекты. Чтобы увидеть эти поля, откройте реплицированную таблицу.

  • Информацию, содержащуюся в системных полях реплицированных таблиц, изменять нельзя.

  • Для получения сведений по другим вопросам, связанным с репликацией проекта Microsoft Access, нажмите кнопку [image] .


 Свойства, добавляемые в базу данных при ее репликации

Свойства, добавляемые в базу данных при ее репликации

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

Свойство | Описание
Replicable или ReplicableBool | Свойство базы данных или объекта. Значение «T» данного свойства (или «True» для свойства ReplicableBool) указывает, что база данных, таблица или запрос являются реплицируемыми. Свойства Replicable и ReplicableBool взаимозаменяемы.
KeepLocal | Свойство, добавляемое таблице или запросу. Значение «T» указывает, что объект не будет реплицироваться при выполнении репликации базы данных. Для уже реплицированного объекта задать значение свойства KeepLocal невозможно.
ReplicaID | Свойство, предоставляющее каждому элементу набора реплик уникальный идентификатор. Это свойство доступно только для чтения и хранится в системной таблице «MSysReplicas».
DesignMasterID | Свойство ReplicaID (уникальный идентификатор) основной реплики. Идентификатор хранится в системной таблице «MSysRepInfo» в поле «SchemaMaster».
ColumnLevelTracking | Свойство базы данных или таблицы. Когда это свойство установлено в значение «True» (по умолчанию), конфликты будут обрабатываться на уровне столбцов таблицы. Для получения дополнительных сведений об отслеживании изменений данных нажмите кнопку [image] .
Replication ConflictFunction | Это свойство используется для замены инструмента Microsoft Access Просмотр конфликтов пользовательской процедурой устранения конфликтов синхронизации.

Примечания

  • В Access 2000 объекты Microsoft Access (формы, отчеты, макросы и модули) либо реплицируются все вместе, либо все вместе остаются локальными. Поэтому, свойства Replicable и KeepLocal применимы только к таблицам и запросам. Для получения дополнительных сведений о том, как запретить репликацию форм, отчетов, макросов и модулей, нажмите кнопку [image] .

  • Для получения дополнительных сведений о свойствах «Replicable», «KeepLocal», «ReplicaId» и «DesignMasterID» откройте редактор Visual Basic и обратитесь к его справке.


 Таблицы, добавляемые в базу данных при ее репликации

Таблицы, добавляемые в базу данных при ее репликации

При репликации базы данных Microsoft Access при выполнении некоторых условий в базу данных могут быть добавлены новые системные таблицы. Вот те из них, которые могут представлять интерес.

Таблица | Описание
MSysSidetables | Данная таблица существует только при наличии неразрешенного конфликта синхронизации между репликой пользователя и другой репликой из набора реплик. Эта таблица не реплицируется. Она служит только для информационных целей, а ее содержимое может быть изменено или удалено пользовательской процедурой устранения конфликтов или самим пользователем. Все дополнительные таблицы получают имена «таблица_conflict», где таблица представляет имя исходной таблицы.
MSysSchemaProb | Данная таблица существует только при возникновении ошибки при обновлении структуры реплики. В этой таблице сохраняются дополнительные сведения о причине ошибки. Эта таблица является локальной и не реплицируется.
MSysReplicas | В этой таблице хранится информация обо всех известных репликах данного набора реплик, например, идентификатор реплики и ее путь. Эта таблица присутствует во всех элементах набора реплик, но не является реплицируемой.
MSysTransAddress | В этой таблице хранится информация синхронизатора и задается набор синхронизаторов, известных данному набору реплик. Эта реплицируемая таблица присутствует во всех элементах набора реплик.
MSysTombstone | Эта таблица содержит информацию об удаленных записях и позволяет в процессе синхронизации распространить удаления на другие реплики. Эта таблица присутствует во всех элементах набора реплик, но не является реплицируемой.
MSysRepInfo | В этой таблице хранится информация обо всем наборе реплик, в том числе идентификатор (GUID) основной реплики. Данная таблица имеет всего лишь одну запись. Эта реплицируемая таблица присутствует во всех элементах набора реплик.
MSysExchangeLog | В данной таблице содержится информация о выполненных операциях синхронизации реплик. Эта таблица является локальной и не реплицируется.

Примечания

  • Эти таблицы становятся видимыми, если включен режим отображения системных объектов. Чтобы сделать системные объекты видимыми, выберите команду Параметры в меню Сервис, щелкните вкладку Вид и установите флажок системные объекты.

  • Информацию, содержащуюся в системных таблицах «MSysSchemaProb», «MSysExchangeLog», «MSysReplicas», «MSysTransAddress», «MSysTombstone» и «MSysRepInfo» реплицированной базы данных, изменить нельзя.


 Репликация с помощью объектов доступа к данным (DAO)

Репликация с помощью объектов доступа к данным (DAO)

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

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

Метод MakeReplica

Метод Synchronize

Свойство ConflictTable

Свойство DesignMasterID

Свойство KeepLocal

Свойство Replicable

Свойство ReplicaID

Свойство ReplicationConflictFunction

База данных Microsoft Jet предоставляет следующие дополнительные методы и свойства для создания и сопровождения частичных реплик (реплик, содержащих подмножество записей полной реплики).

Свойство ReplicaFilter

Свойство PartialReplica

Метод PopulatePartial

См. сведения о создании частичных реплик.

Примечание. Для получения дополнительных сведений об этих свойствах и методах откройте редактор Visual Basic и обратитесь к его справке.


 Дополнительные ограничения на размеры реплицированной базы данных

Дополнительные ограничения на размеры реплицированной базы данных

Добавление трех дополнительных полей («s_GUID», «s_Lineage» и «s_Generation») накладывает на реплицированные таблицы два ограничения.

  • В ядре базы данных Microsoft Jet в записи допускается не более 2048 байтов (не считая полей Memo и полей объектов OLE). Репликация требует как минимум 54 байта для хранения уникальных идентификаторов, индексов и информации об изменениях в записи. Если запись содержит поля Memo или поля объектов OLE, то при репликации для каждого из этих полей будут использоваться дополнительные 4 байта. Максимальное количество байтов в записи в реплицированной таблице рассчитывается следующим образом:

    2048 байтов
    - 54 байта для нужд репликации
    - (4 байта * количество полей Memo)
    - (4 байта * количество полей объектов OLE)
    = максимальный доступный размер записи в байтах

  • Ядро базы данных Microsoft Jet позволяет иметь в таблице до 255 полей, по крайней мере три из которых используются для репликации. Максимальное количество полей, доступных для использования в реплицированной таблице, рассчитывается следующим образом:

    255 полей
    - 3 системных поля
    - количество полей Memo и полей объектов OLE
    = количество доступных полей

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

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

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

Размер файла базы данных является существенным по двум причинам:

  • Ядро Microsoft Jet поддерживает файлы с размером до 1 Гб, но в большинстве случаев ограничивающим фактором является объем свободного места на жестком диске. Реплицированная база данных имеет объем, превышающий объем исходной базы данных, и может занять значительную часть свободного дискового пространства.

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

  • Примечание. Для получения дополнительных сведений о проекте Microsoft Access нажмите кнопку [image] .


Репликация баз данных

1. Подготовка к преобразованию базы данных в реплицированную

Выбор инструмента для репликации

2. Создание реплицированной базы данных

Создание реплики базы данных

Создание реплики с помощью портфеля

3. Синхронизация набора реплик

Синхронизация с другим элементом набора реплик базы данных

Синхронизация реплики с помощью портфеля

Устранение конфликтов синхронизации между элементами набора реплик

4. Управление реплицированными базами данных

Восстановление основной реплики

Назначение реплики основной репликой

Преобразование реплицируемой базы данных в нереплицируемую

Защита реплицированной базы данных

Удаление реплики из набора реплик

Создание резервной копии реплицированной базы данных Microsoft Access

5. Преобразование реплицированной базы данных

Преобразование набора реплик к формату Microsoft Access 2000

6. Программная репликация базы данных

Репликация с помощью объектов доступа к данным (DAO)

Репликация с использованием объектов репликации и Jet (JRO)


 Преобразование баз данных с помощью приложения «Портфель»

Преобразование баз данных с помощью приложения «Портфель»

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

Перед преобразованием базы данных следует удалить ее пароль. Разрешения на доступ к базе данных, устанавливаемые для пользователей, не влияют на синхронизацию.


 Создание резервной копии реплицированной базы данных Microsoft Access

Создание резервной копии реплицированной базы данных Microsoft Access

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


Предотвращение репликации форм, отчетов, макросов и модулей

Примечание. Этот процесс должен выполняться до преобразования базы данных в реплицируемую.

  1. В меню Файл выберите команду Свойства базы данных.

  2. Откройте вкладку Прочие.

  3. Выберите свойство ReplicateProject в поле Свойства.

  4. Щелкните переключатель Нет в области Значение.

  5. Нажмите кнопку Изменить.


 Не удается найти основную реплику

Не удается найти основную реплику

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

  1. Откройте реплику из набора реплик.

  2. В меню Сервис выберите команду Репликация и подкоманду Синхронизация.

  3. Нажмите кнопку Обзор, чтобы найти остальные элементы набора реплик на компьютере или в сети.

  4. Выберите элемент набора реплик. Если появился флажок Сделать основной репликой: 'ИмяФайла', то выбранный элемент является основной репликой.


 Невозможно сделать реплику основной репликой

Невозможно сделать реплику основной репликой

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

Если и после этого реплику нельзя будет сделать основной репликой и не будет выдано сообщений о других ошибках, то реплика, видимо, была повреждена. Удалите эту реплику и создайте новую. Для получения сведений об удалении реплики нажмите кнопку [image] .


 Невозможно открыть основную реплику

Невозможно открыть основную реплику

Основная реплика могла быть повреждена. Назначьте реплику новой основной репликой. Для получения сведений о назначении реплики основной репликой нажмите кнопку [image] .


 Замена процедуры устранения конфликтов синхронизации

Замена процедуры устранения конфликтов синхронизации

  1. Откройте основную реплику набора реплик.

  2. В меню Файл выберите команду Свойства базы данных.

  3. Щелкните вкладку Прочие.

  4. В поле Название наберите ReplicationConflictFunction.

  5. В поле Тип выберите Текст.

  6. В поле Значение введите имя своей процедуры и пару круглых скобок ( ). Например, если процедура называется MyResolver, наберите MyResolver( ).

Для получения дополнительной информации о свойстве ReplicationConflictFunction нажмите кнопку [image] .


 При изменении данных в одном элементе набора реплик они не распространяются на другие элементы набора

При изменении данных в одном элементе набора реплик они не распространяются на другие элементы набора

  1. Откройте элемент набора реплик, который нужно синхронизировать.

  2. В меню Сервис выберите команду Репликация и подкоманду Синхронизация.

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

  4. Нажмите кнопку OK.

  5. Закройте и откройте снова базу данных и просмотрите обновленные записи.

  6. Если данные не были обновлены, то данные могли изменяться в локальных объектах, которые не синхронизируются с элементами набора реплик, либо мог возникнуть конфликт с другим элементом набора. Для получения дополнительных сведений о разрешении конфликтов синхронизации нажмите кнопку [image] .


 При изменении структуры объекта в основной реплике, в других репликах она не изменяется

При изменении структуры объекта в основной реплике, в других репликах она не изменяется

  1. Откройте основную реплику.

  2. В меню Сервис выберите команду Репликация и подкоманду Синхронизация.


В портфель перетаскивается файл базы данных. Как запретить его репликацию?

Портфель реплицирует файлы базы данных Microsoft Access, которые в него перетаскиваются. Если этот файл базы данных реплицировать не нужно, измените его расширение с .mdb (или .mde) на какое-нибудь другое.


 В наборе реплик есть две основные реплики

В наборе реплик есть две основные реплики

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

  1. Выясните, какая из основных реплик является оригинальной и должна ли она оставаться основной репликой.

  2. Удалите ненужную основную реплику.

  3. Удалите все реплики, которые последний раз были синхронизированы либо с самой удаленной основной репликой, либо с другими репликами, которые последний раз были синхронизированы с удаленной основной репликой.

    Инструкции

  4. Создайте взамен удаленных реплик новые реплики на основании оставшейся основной реплики.