|
|
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
Каким образом можно во вторую, идентичную реплицируемой, таблицу записать измененное значение (флаг) не зависимо от того какой там был раньше. надеялся можно в фильтре прописать Select col1,col2, 1 FROM <<TABLE>> WHERE ... фиг... Как то можно через DTS... а как ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2002, 11:12:40 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
Кто-нибудь (включая автора) понял вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2002, 15:10:06 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
а какой RowFilter прописывал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2002, 15:31:17 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
Для GreenSunrise: Две таблицы в разных базах. Из первой во вторую переносятся данные с флагом Col3=1 Из второй в первую та же картина. чтобы не летала запись туда сюда нужно сохранять в подписчика Col3=0. Как реализовать? :) Для AAron: SELECT <published_columns> FROM <<TABLE>> WHERE Col3=1 Или они разных типов бывают? Если нет- какая теперь разница, (для меня) Есть еше в свойстве Table Article Properties-> commands - (ну команды, процедуры) Если туда загнать процедуру которая будет изменять значение поля Col3 на 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2002, 09:13:28 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
IMHO, если репликация merge, то записи с любым флагом "летать туда сюда" не будут т.к. есть поле rowguid автоматически создающееся при настройке репликации по кот. агенты репликации и ориентируются для уникального определения записи. Если вам необходимо собирать записи с разных серверов, возможно лучше создать в таблице для каждой записи идентификатор сервера и его применить в фильтре. Если вы используете флаг для своих целей, возможно не стоить применять его в репликации. Может я так же чего то недопонял т. к. две таблицы - слабый пример для системы репликации. Необходимо рассматривать саму задачу для кот. эти две таблицы применяются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2002, 10:19:30 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
Уважаемый Олег Яговкин, думаю было бы нахальством просить сделать за меня работу :) Плохо объяснил, попробую еще раз. Есть два сервера (на каждом публикуются данные). С каждого данные отсылаются Push подпиской с использованием фильтра Col3=1 (т.е. передавать только измененные записи, у которых Col3=1, остальные изменения не учитывать). Как я понимаю, если было сделано обновление (независимо руками или репликацией) изменения публикуются и отправляются на другой сервер, где делают обновление. “то записи с любым флагом "летать туда сюда" не будут т.к. есть поле rowguid” – я вот и не пойму почему не будет обновления. Вроде изменения есть. Rowguid – сравнивается с подписчиком и если совпадает – не публикуется – так что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2002, 08:20:36 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
Так а зачем сохранять на подписчике col3 = 0? С чего запись будет "туда-сюда" летать?! С настроенным фильтром будут проходить только изменения записей, соответствующих ему. Но уж никак не "туда-сюда" :-))) Или Вы хотите, чтобы поле col3 вообще не участвовало в репликации? И было различным на паблишере и подписчике? Тогда стоит задуматься о публикации не таблиц, а вьюх. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2002, 11:49:32 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
2Леха. В догонку GreenSunrise(так как в выходные нету интернету). >>Вроде изменения есть. Rowguid – сравнивается с подписчиком и если совпадает – не публикуется – так что ли? При любых операциях с записью в системе репликации отрабатываются триггеры(кот. так же уст-ся автоматически). Данные триггеры заносят все изменения в системные табл. репликации которые затем читаются агентами репликации. Т.е. если есть изменения для записи с данным rowguid, то она соответствующим образом изменяется как на публикующем, так и на подписчике. >>с использованием фильтра Col3=1 (т.е. передавать только измененные записи, у которых Col3=1, остальные изменения не учитывать). Если же вам необходимо например из 1000 записей в табл. выделить напр. 100 (с Col3=1) (для ваших каких то целей)то при работе агентов репликации, изменения производимые в этих записях (т.к. они участвуют в фильтре) и будут передаваться между двумя таблицами. Если же вы вручную (в смысле программно) устанавливаете флаг для измененных записей чтобы их и передавать, то при репликации это не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2002, 14:06:49 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
>>С настроенным фильтром будут проходить только изменения записей, соответствующих ему Согласен, но фильтр в обеих публикациях одинаковый >>Или Вы хотите, чтобы поле col3 вообще не участвовало в репликации? И было различным на >>паблишере и подписчике? Тогда стоит задуматься о публикации не таблиц, а вьюх. Надеюсь, будет понятно из нижеизложенного. :) >>Если же вам необходимо например из 1000 записей в табл. выделить напр. 100 (с Col3=1) (для >>ваших каких то целей)то при работе агентов репликации, изменения производимые в этих >>записях (т.к. они участвуют в фильтре) и будут передаваться между двумя таблицами. >>Если же вы вручную (в смысле программно) устанавливаете флаг для измененных записей >>чтобы их и передавать, то при репликации это не нужно. И то и другое. Дело в том, что данные должны передаваться не при всех изменениях, т.е. если, например, изменения в Col1- обновлять (причем изменение может таковым считаться при изменении на конкретные значения), если в Col2 –нет – можно еще сказать о зависимости от того, например, какой пользователь изменяет (это я просто так сказал :)). >>. Т.е. если есть изменения для записи с данным rowguid, то она соответствующим образом >>изменяется как на публикующем, так и на подписчике. Уточню :), она - rowguid (в том числе)? Если да, то, что делать, если строка изменилась, но не прошла по фильтру, в следующий раз при изменении удовлетворяющем фильтрации rowguid на подписчике не найдется, и запись будет INSERTнута – а ключ вставляемой записи в таблице уже есть. И на счет “туда сюда” проверял я, агенты при изменении любой записи начинают показывать, что «выполняется одна транзакция 2 команды». Завершения этого я не дождался (оставлял на ночь :)). Или оно так и быть надо? Спасибо за советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 06:34:45 |
|
||
|
Изменение данных при репликации
|
|||
|---|---|---|---|
|
#18+
>>Уточню :), она - rowguid (в том числе)? rowguid не меняется . Это уникальный идентификатор кот. сервер присваивает каждой записи. Значение этого идентификатора складывается из идентификатора сетевой карты(кот. уникален в мире насколько я понял) и какого то временного интервала. Т. е. при INSERT записи вставляется каждый раз новый GUID (уникальный в мире до 3500 года, что гарантирует Microsoft) и дальнейшие изменения записи отслеживаются триггерами репликации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 08:40:15 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32033577&tid=1822201]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 374ms |

| 0 / 0 |
