SQL Server - синхронизация двух баз данных - PullRequest
1 голос
/ 15 января 2009

У нас есть складская база данных, которая содержит данные за год до настоящего времени. Я хочу создать базу данных отчетов, которая представляет данные за последние 3 месяца для целей отчетности. Я хочу иметь возможность синхронизировать две базы данных. Прямо сейчас каждые 10 минут я выполняю пакет, который извлекает самые последние строки из хранилища и добавляет их в базу данных отчета. Проблема в том, что я получаю только новые строки, но не новые обновления.

Я хотел бы знать, каковы различные способы решения этого сценария.

Спасибо

Ответы [ 4 ]

2 голосов
/ 15 января 2009

просмотр репликации, зеркалирования или доставки журналов

1 голос
/ 16 января 2009

Если вы используете SQL 2000 или ниже, репликация - ваш лучший выбор. Поскольку вы делаете это каждые десять минут, вам непременно следует обратить внимание на репликацию транзакций.

Если вы используете SQL 2005 или более позднюю версию, у вас есть больше доступных вариантов. Снимки базы данных, доставка журналов и зеркалирование, как предложено выше в SQLMenace. Их пригодность зависит от вашего оборудования. Вам нужно будет провести некоторое исследование, чтобы выбрать оптимальное для ваших нужд.

0 голосов
/ 15 января 2009

Можно ли добавить столбцы в эту базу данных? Вы можете добавить столбец Last_Activity в БД и записать триггер, который обновляет дату / метку времени в этой строке, чтобы отразить последнее изменение. Для любых новых записей дата / время будут отражать метку времени, когда была добавлена ​​строка.

Таким образом, когда вы берете последние три месяца, вы будете захватывать активность последних трех месяцев, а не только новые вещи.

0 голосов
/ 15 января 2009

Возможно, вам следует прочитать о репликации или спросить об этом администратора вашей БД.

...