Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Merge репликация - динамическая гориз.фильтрация
|
|||
|---|---|---|---|
|
#18+
Пытаюсь создать публикацию из одной статьи, где используется динамическая горизонтальная фильтрация hostname=HOST_NAME(). Делаю все это с помощью хранимых процедур. В процедуре sp_addmergearticle описываю фильтр @subset_filterclause = N'hostname=HOST_NAME()'. Далее, при попытке запустить агент Snapshot, он начинает генерировать момент.снимок и неожиданно вываливается с ошибкой "Line 1: Incorrect syntax near 'where'." Что это за фигня такая? Все перекопал, но тщетно. Причем, стоит зайти в свойства публикации и открыть там фильтр, то после этого snapshot генерируется нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2002, 06:33 |
|
||
|
Merge репликация - динамическая гориз.фильтрация
|
|||
|---|---|---|---|
|
#18+
Странно. У меня репликация настраивается тоже хранимыми процедурами, но такой проблемы не возникает. И ваш тест с фильтром прошел без ошибок, снапшот нормально генерится. В sp_addmergepublication не забыли указать параметр @dynamic_filters = N'true'? Какая версия SQL, все ли сервис-паки стоят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2002, 09:47 |
|
||
|
Merge репликация - динамическая гориз.фильтрация
|
|||
|---|---|---|---|
|
#18+
SQL2000, servicepack2 Значится так: публикацию создаю мастером, динамический характер статьи настраиваю там же. Есть хранимая процедура, где удаляются подписчики на публикацию, из публикации удаляется статья, меняется ее структура, затем статья снова включается в публикацию, обновляется снапшот и создаются подписчики. Ни в этой процедуре, ни в Enterprise Managere агент снапшота до конца не отрабатывает, в Session details дело доходит до "Generating trigger script for article", а дальше эта ошибка "Line 1: Incorrect syntax near 'where'". Но если в Enterprise Managere просто посмотреть фильтр статьи и запустить агент снова, все идет на ура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2002, 10:40 |
|
||
|
Merge репликация - динамическая гориз.фильтрация
|
|||
|---|---|---|---|
|
#18+
Конкретно в вашем случае не знаю, почему не работает. У меня комплект тот же Исходя из описанной ситуации могу предложить следующий workaround: для изменения структуры таблицы, участвующей в репликации, необязательно исключать ее из публикации, менять таблицу, а потом снова все настраивать. Можно менять структуру и на ходу. Посмотрите процедуры sp_repladdcolumn, sp_repldropcolumn. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2002, 13:08 |
|
||
|
Merge репликация - динамическая гориз.фильтрация
|
|||
|---|---|---|---|
|
#18+
За ночь родилось еще одно предложение Не связанное с workaround'ом. Попробуйте заскриптовать публикацию сразу после перенастройки ее хранимыми процедурами, т.е. когда есть ошибка создания снапшота. Потом зайдите в настройки фильтра статьи, после чего по вашим словам все начинает работать. И заскриптуйте еще раз. Ну а потом остается только сравнить полученные скрипты и найти 10 отличий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2002, 06:42 |
|
||
|
Merge репликация - динамическая гориз.фильтрация
|
|||
|---|---|---|---|
|
#18+
вообще-то под изменением структуры я подразумевал изменение типа/размерности колонок статьи Спасибо за совет "найди десять отличий", попробую, может и получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2002, 04:26 |
|
||
|
Merge репликация - динамическая гориз.фильтрация
|
|||
|---|---|---|---|
|
#18+
Таки расщелкал я эту проблемку Оказывается, если в публикации только одна статья и есть динамическая фильтрация, агент не может сгенерить снапшот. Только добавил еще одну статью - вуаля, заработало А вот механизма этой проблемы я так и не понял. Теперь думаю - этот эксперимент с одной статьей воспроизводим на других серверах? Спасибо за советы и внимание! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2002, 06:33 |
|
||
|
Merge репликация - динамическая гориз.фильтрация
|
|||
|---|---|---|---|
|
#18+
Не думаю, что добавление еще одной статьи - это решение проблемы. У меня прекрасно работает и с одной. Вот пример: exec sp_addmergepublication @publication = 'Test Replica', @dynamic_filters = N'true' exec sp_addpublication_snapshot @publication = 'Test Replica' exec sp_grant_publication_access @publication = 'Test Replica', @login = N'sa' exec sp_addmergearticle @publication = 'Test Replica', @article = 't1', @source_owner = N'dbo', @source_object = 't1', @type = N'table', @subset_filterclause = 'hostname=HOST_NAME()' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2002, 11:40 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32021380&tid=1824166]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 526ms |

| 0 / 0 |
