none
Одосторонняя синхронизация таблиц между sql server 2008 и sql server 2000 RRS feed

  • Вопрос

  • Добрый день!

    Есть центральная база данных MAINBASE на sql server 2000 и зависимая от нее база DEPENDBASE на sql server 2008 (удалена на несколько км). В базе DEPENDBASE есть несколько таблиц с такой же структурой как и в MAINBASE, которые нужно поддерживать в актуальном состоянии при изменении оных на MAINBASE (sql server 2000). В DEPENDBASE эти таблицы служат только для отображения инф, править их никто не будет, т.е. обратная синхронизация с MAINBASE не нужна. Нужно поддерживать и данные и структуру этих таблиц на sql server 2008. Синхронизация нужна по запросу пользователя базы DEPENDBASE, т.е. непостоянная. Подскажите, пожалуйста, как это лучше сделать. Знаю про linked server и про репликацию. Не знаю, что лучше. Про последний вариант говорят много проблем за собой тянет.

    Заранее благодарен.

    С уважением, Сергей



    • Изменено httpal 23 октября 2013 г. 7:26
    23 октября 2013 г. 6:45

Ответы

Все ответы

  • Синхронизация нужна по запросу пользователя базы DEPENDBASE, т.е. непостоянная.



    я бы вам рекомендовал посмотреть в сторону SSIS-пакетов...проще реализовать и поддерживать

    http://www.t-sql.ru

    23 октября 2013 г. 7:08
    Отвечающий
  • Соглашусь с Алексеем. Решайте через какое-нибудь ETL средство. Например тот же SSIS, если он у вас всё равно есть вместе с MSSQL 2008.  
    23 октября 2013 г. 10:33
  • Чтобы не создавать новой темы, подскажите, пожалуйста, по компонентам SSIS. При пополнении таблицы на DEPENDBASE использую сл. компоненты: "Задача потока данных" в потоке управления и в потоке данных "Источник OLE DB" соединенный с "Назначение OLE DB". Таким образом, при запуске, все записи из таблицы базы MAINBASE вставляются в одноименную таблицу базы DEPENDBASE. Мне нужно, чтобы была проверка на не существующие записи в таблице DEPENDBASE и их добавление.

    Какие компоненты лучше и проще использовать для этого?

    Заранее благодарен.


    • Изменено httpal 8 ноября 2013 г. 6:21
    8 ноября 2013 г. 6:14
  • У меня немного сдержанное отношение к тому, чтобы ВСЁ делать внутри SSIS. Особенно на больших объёмах данных. Поэтому я бы вставил всё в буферную таблицу, а с ней сделал обычный sql-ный MERGE. 

    Т.е. последовательность такая:
    Execute SQL Task - Cleanup buffer table (truncate)
    Dataflow Task - Import data to buffer table
    Execute SQL task - Merge 

    8 ноября 2013 г. 7:32