powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Репликация
7 сообщений из 7, страница 1 из 1
Репликация
    #32007251
Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите плиз как наладить репликацию следующего вида...
Есть здоровая таблица с данными .Целый день операторы ее апдейдят .Можно ли передавать только те записи которые отапдейтились. Например таблица счетов и остатков по ним. Один счет в течении дня может апдейтиться много раз.Нужно в конце дня передавать только последнее состояние счета,а не все транзакции которые происходили с ним в течении дня.Снапшот не приемлим ,в связи с объемом таблицы. Дополнительные поля в таблицу добавить нельзя. Зацепиться можно только за поле с датой проводки по счету.
...
Рейтинг: 0 / 0
Репликация
    #32007259
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайте о Merge репликации в BOL, вероятно это то что Вам нужно.
...
Рейтинг: 0 / 0
Репликация
    #32007261
Олег Яговкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При настройке Merge-репликации, если выбрать опцию установки фильтра, наверное в условии WHERE можно прописать что нибудь подобное.
...
Рейтинг: 0 / 0
Репликация
    #32007264
Screem6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если нужны только апдейты, то можно отредактировать sp для вставки и удаления, а можно установить шедуллер по реже
...
Рейтинг: 0 / 0
Репликация
    #32007265
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариантов несколько.
1. Полусамопальный. Только если между двумя серверами, и количество задействованных в репликации таблиц мало. Завести в таблице вспомогательное битовое поле, которое будет устанавливаться из триггера при любой модификации данных, а сбрасываться из JOB-а сразу после отработки агента snapshot-репликации. В snapshot-репликации настроить фильтр по данному полю. Объема бояться не нужно, поскольку происходит передача только тех записей, у которых установлен флаг того, что данная запись модифицирована с момента последней синхронизации. Нечто вроде атрибута "archive" для файлов. Можно идею несколько развить, чтобы устранить проблемы, которые могут возникнуть при модификации данных непосредственно во время работы snapshot-агента. Для этого вместо bit-поля нужно использовать поле DateTime (или SmallDateTime) и фильтр устанавливать по времени начала синхронизации, которое прописывается перед запуском синхронизации во вспомогательную таблицу. Ну, там уже додумаешь, если нужно.
2. Merge-репликация передает только последние версии записей автоматом.
...
Рейтинг: 0 / 0
Репликация
    #32007282
JINX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что если добавить поле типа Timestamp?
...
Рейтинг: 0 / 0
Репликация
    #32007388
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А что если добавить поле типа Timestamp?
А зачем? Если для того, чтобы узнать, изменилась ли запись со времени последней репликации, то нужно ее сравнивать с прежним значением этого поля. А для этого нужно по медленной линии просканировать значения данного поля на удаленном сервере для каждой записи (для того, чтобы выявить, какие записи модифицировались, а какие нет). Если размер записи небольшой, то сам процесс сканирования плюс последующая перекачка информации может обойтись дороже, чем snapshot-репликация.

Поля типа TimeStamp используются при репликации транзакций с целью выявления ошибок несогласованности транзакций. Например, запись с узла1 при snapshot-синхронизации передалась на узел2. После этого ее модифицировали на узле1, и репликацией транзакций передают новую версию на узел2. При этом сравниваются поля TimeStamp, которое было до модификации на узле1 с полем Timestamp на узле2. Если они НЕ совпадают, значит запись была модифицирована на подписчике уже после синхронизации, и не соответсвует ожидаемому состоянию. В таком состоянии передача изменения с узла1 может привести к нежелательному наложению двух модификаций на разных узлах друг на друга. Репликация транзакций выявляет подобные случаи и выдает сообщения об ошибках синхронизации.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Репликация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]