Как смоделировать репликацию публикации в SQL 2005 Express?
У меня есть клиент, у которого есть несколько географически распределенных установок стороннего коммерческого продукта, который записывает данные в свои собственные экземпляры базы данных SQL Express (CIMPLICITY HMI от GE, если вы заинтересованы). Теперь он хочет собрать данные регистрации в центральную БД для долгосрочного хранения (т.е. локальные установки будут хранить 3-месячный скользящий журнал своих собственных данных, но центральное расположение будет хранить 5-летний скользящий журнал всех данных. И суммарные данные генерация, вероятно, менее 100 МБ в месяц). Структуры таблиц будут сохраняться одинаковыми как в удаленных, так и в локальных БД, так что одни и те же / аналогичные отчеты могут легко выполняться для всех данных.
Если бы это были полные установки SQL, то я считаю, что я мог бы использовать репликацию публикации для решения проблемы. Но я имею дело с редакциями Express на удаленных концах (хотя у меня будет полная версия для игры в центральном офисе).
Поэтому я ищу, как лучше всего смоделировать репликацию публикаций на Express DB, используя инструменты сторонних производителей (и при этом не нужно выбивать собственный код). Чтобы уравновесить низкую пропускную способность данных, 3 из этих установок фактически подключаются домой через VPN, работающую по DSL, поэтому существует вероятность потери соединения. Это не считается большой проблемой, поскольку удаленные данные в конечном итоге регистрируются централизованно.
(Одним из возможных решений является преобразование всех экспресс-выпусков в полные, но я считаю, что это будет чрезмерно затруднительным, и это будет головной болью администрации. Поэтому я даже не рассматриваю это в настоящий момент)
Спасибо за вашу помощь
Питер
Кто-нибудь????!?!?
сверчки
редактировать
Я решил использовать нестандартное решение для кода, которое использует MSMQ для организации очередей на удаленной стороне. Возможно, я мог бы использовать SSIS, чтобы сделать то же самое, но для меня это было так же легко, как и мой собственный.
1 ответ
Если вы можете включить протокол TCP в выпусках SQL Express и добавить учетную запись пользователя на удаленных станциях, вы можете использовать Job Agent в главном окне SQL, чтобы снять все данные. Возможно резервное копирование и восстановление (что кажется плохой идеей, учитывая ограниченную пропускную способность). Вы можете использовать триггеры на удаленных устройствах и отправлять обновления на основной сайт, но я не уверен, как это будет работать через VPN-соединение с потерями. Наверное, самое сложное - это заставить SQL-боксы видеть друг друга. Как только вы это сделаете, он открывает множество различных вариантов.
Информация для включения TCP в SQL Express 2005: http://blogs.msdn.com/b/sqlexpress/archive/2005/05/05/415084.aspx
Мы делаем что-то подобное с HMI на некотором промышленном оборудовании, которое у нас есть, но соединения по всей локальной сети. Наш администратор баз данных написал несколько сценариев, чтобы захватить то, что нам было нужно, используя команду "вставить в", и оставил копию на основном блоке SQL.