Синхронизация файла базы данных MS Access - PullRequest
1 голос
/ 15 июля 2010

Я занимаюсь разработкой базы данных, содержащей около 10 таблиц. В основном это будет использоваться в 2 или 3 отдаленных географических местоположениях (назовем их A, B и C). Желаемый рабочий процесс будет следующим: A, B и C всегда должны иметь одну и ту же базу данных. Поэтому, когда A вносит какие-либо изменения, он должен иметь возможность отправить эти изменения B и C. Отправка электронной почты по всему файлу mdb не имеет смысла, так как его размер составляет 15+ мегабайт. Поэтому я хотел бы отправить новые дополнительные записи и изменения только в B и C. Изменения, внесенные B и C, также должны быть отражены для других соответствующих сторон. Как я могу это сделать? У меня есть несколько идей, но я знаю, как их реализовать.

решение 'A' - экспортировать таблицы данных только в файл xls и отправить его по электронной почте. Но импорт таблиц в файл mdb может быть немного сложным, верно? и файл xls также со временем будет становиться все больше и больше.

решение 'B' - попробуйте извлечь только изменения и отправить по электронной почте только новые детали? (но как извлечь только те)

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

Любые рекомендации будут приветствоваться!

Ответы [ 3 ]

4 голосов
/ 16 июля 2010

Что касается источников информации о репликации, начните с моей Jet Replication Wiki .

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

Самым простым решением с приложением Access будет размещение приложения на Windows Terminal Server / Citrix, и пользователи будут запускать его через подключение к удаленному рабочему столу или с помощью Sharepoint.,В решении Terminal Server / Citrix нет места для отключенных пользователей, но Sharepoint может приспособить автономное использование и синхронизировать изменения при подключении.Access 2010 и Sharepoint 2010 предоставляют множество новых функций, в том числе улучшенный дизайн схемы, эквивалент триггеров и значительно улучшенную производительность для больших списков Sharepoint, поэтому для меня нет ничего проще, если вы выберете Sharepoint, вы захотите использовать A2010и Sharepoint 2010.

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

Windows Terminal Server / Citrix является самым простым, с наименьшим количеством движущихся частей и полностью централизованным администрированием, и очень хорошо работает при относительно небольших инвестициях.

Sharepoint сложнее, чем WTS /Citrix, но менее сложный и более централизованный, чем решение Jet Replication.

Если бы это был я, я бы, вероятно, пошел с WTS / Citrix, если бы не было необходимости в отключенном использовании, но я бы выделил слюнунад испытанием A2010 / Sharepoint 2010. Если бы потребовалось отключенное использование, то я бы определенно пошел по маршруту Sharepoint.

2 голосов
/ 15 июля 2010

Вы хотите использовать «Jet Replication». Смотри

0 голосов
/ 16 июля 2010

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

Требуется что-то настроить. Раньше документация ужасала его, но я нашел статьи, написанные Майклом Капланом (он же Мичка), которые рассказали мне, как это сделать.

Если ваша конечная среда будет достаточно стабильной, то используйте Access весь путь. Если нет, то я призываю вас воспользоваться советом HansUp и использовать SQL Server или SharePoint.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...