товарищи, поможите!

Хочу понять в какую сторону смотреть в части решения проблемы. С MS SQL я знаком не столь глубоко, в связи с чем возникла следующая проблемка:

Два одинаковых приложения, пишут данные в БД. Т.е. есть два отдельно работающих приклада и две отдельные БД. Оба приложения активные. Связь по сетке между БД и приложениями — присутствует.
Необходимо произвести копирование данных из БД первого приложения в БД второго в соответствующие таблицы, выполнив некоторое преобразование.

Структура БД (упрощенна):
БД состоит из двух таблиц.
Table 1: id (autoincrement), componentguid (text )
Table 2: id (autoincrement ), cid (prim key на id из table 1 ), msg ( text)

Известно, что значения полей id всех таблиц в обоих БД пересекаются. Необходимо произвести merge таблиц, с преобразованием соответствующих полей id и cid.

Можно ли это все сделать с помощью MS SQL службы SSIS, так же необходимо, чтобы базы таким образом синхронизировались постоянно, по мере поступления данных в первую базу, как вариант производить merge по расписанию.

Tagged with →  

9 Responses to MS SQL

  1. SalaTa:

    триггер, срабатывающий при вставке данных в таблицу?

  2. Yried:

    апдейты строк должны синхронизироваться?

  3. Yried:

    конечно, данных мало:
    версии и редакции SQL Server
    можно ли модифицировать клиенты
    объемы таблиц
    объемы изменений в день
    требования к актуальности данных

  4. 46lSwet:

    Пока всё на стадии проекта, но примерно так:
    — MS SQL 2008 R2 std.
    — Клиенты модифицировать не получится, иначе такой задачи бы не возникло.
    — По объему сложно на данный момент сказать, в разных БД по-разному будет.
    — Про актуальность немного не понял, но если речь идёт про скорость синхронизации, то на данный момент не столь существенно, необходимо для начала рабочее решение.

  5. 46lSwet:

    Да, такой вариант рассматривался, пытаюсь понять, как это можно штатными сервисами MS SQL добиться.

  6. 46lSwet:

    не, не нужно. Тут просто слив данных в одну базу, с корректировкой cid под новые id.

  7. Yried:

    тогда к первому серверу добавляешь связанный второй сервер (linked server) и триггер на вставку — 3 минуты работы

  8. 46lSwet:

    Ок, спасибо, буду смотреть дальше!

  9. Mroodin:

    Написать пакет по импорту из одной базы в другую. Можно преобразовать id прибавлением числа, значительно большего, чем может быть id в исходной базе (например 100000, зная, что в исходной столько не будет идентификаторов)
    Сделать job, который будет запускать ночной пакет для переноса.

Добавить комментарий