Подходящий метод для синхронизации онлайн и оффлайн данных - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть два приложения с собственной базой данных.

1.) Настольное приложение, которое имеет интерфейс winforms vb.net, работает в автономной корпоративной сети и хранит данные в центральной базе данных [SQL Server]
** Все данные ввода и другие офисные операции выполняются и хранятся в центральной базе данных

2.) Второе приложение было построено на php. он имеет HTML-страницы и работает как веб-сайт в онлайн-среде. Он хранит все данные в базе данных MySQL.
** Это приложение доступно только зарегистрированным пользователям, и им предоставляются различные отчеты о данных, обработанных 1-м приложением.

Теперь мне нужно синхронизировать данные между онлайн и автономными серверами баз данных. Я планирую следующее:
1.) Напишите небольшую программу для экспорта всех данных SQL Server [автономный сервер] в файл в формате CVS.
2.) Войдите в администраторский раздел живого сервера.
3.) Загрузите экспортированный файл cvs на сервер.
4.) Импортируйте данные из файла cvs в базу данных mysql.

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

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

Я не думаю, что есть готовое решение для того, что вы хотите использовать без настройки, но инфраструктура MS Sync (http://msdn.microsoft.com/en-us/sync/default) звучит близко.

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

1 голос
/ 08 апреля 2011

То, что вы запрашиваете, на самом деле не похоже на двунаправленную синхронизацию (или перемещение данных в обе стороны от SQL Server к MySQL и от MySQL к SQL Server), что является хорошей вещью, поскольку она действительно упрощает вашу работу. Хотя я подозреваю, что ваш метод использования CSV (который я бы предположил, что для этого вам нужно будет использовать что-то вроде BCP), одна из проблем заключается в том, что вы перемещаете ВСЕ данные каждый раз, когда запускаете процесс, и вы в основном перезаписываете вся база данных MySQL каждый раз. Это, очевидно, несколько неэффективно. Не говоря уже о том, что база данных MySQL не будет в пригодном для использования состоянии.

Одной из альтернатив (при условии, что у вас SQL Server 2008 или более поздняя версия) было бы изучение использования этого метода наряду с интегрированным отслеживанием изменений или интегрированным захватом изменений. Эта функция в SQL Server позволяет определять данные, которые изменились с определенного момента времени. Что вы можете сделать, это создать процесс, который просто извлекает изменения с момента последней проверки в CSV-файле, а затем применяет их к MySQL. Если вы сделаете это, не забудьте также применить удаление.

0 голосов
/ 19 июля 2011

Посмотрите на SQL Server Integration Service как на хорошую альтернативу.

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