Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Декабрь 2003 → | ||||||
2
|
3
|
4
|
5
|
6
|
7
|
|
---|---|---|---|---|---|---|
9
|
10
|
11
|
12
|
13
|
14
|
|
16
|
17
|
18
|
19
|
20
|
21
|
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
30
|
Статистика
-20 за неделю
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#171<< #172 |
СОДЕРЖАНИЕ
Использование динамических фильтров совместно с динамическими снимками
Динамические фильтры в репликации позволяют использовать возвращаемые системными функциями SUSER_SNAME() и HOST_NAME()
значения для выделения своих разделов данных каждому подписчику. Кроме этих функций, динамическую фильтрацию можно
построить на определяемых пользователем функциях - UDF. Для демонстрации совместного использования динамических фильтров и снимков создадим две базы данных: filtertest и subscriber1, которые содержат таблицу _test, а также двух пользователей, для которых мы будем фильтровать данные в публикации. Кроме того, таблицу на издателе заполним тестовыми данными.
2. Создаём публикацию filtertest для репликации слиянием таблицы _test Воспользуемся стандартным мастером создания публикаций, и обращаем внимание только на отличные от предложений мастера по умолчанию особенности. 3. Во-первых, нужно указать, что мы будем использовать динамические фильтры. 4. В этом примере мы используем только горизонтальный фильтр. 5. Наш фильтр будет динамическим. 6. Выбираем фильтруемую таблицу и указываем условие в предложении WHERE. 7. Указываем функцию для выверки реплицируемых данных. 8. Указываем, необходимо ли минимизировать трафик реплицируемых данных. 9. После создания публикации, изменить фильтр можно в её свойствах. 10. В свойствах публикации можно изменить и другие параметры фильтрации. Тот факт, что информация о наличии в публикации динамических фильтров хранится в системных таблицах, позволяет не сложным образом преобразовывать существующие публикации в публикации с использованием динамических фильтров. 12. Условие фильтрации хранится в системной таблице sysmergearticles. 13. Добавляем динамический снапшот. Поскольку стандартный моментальный снимок (снапшот) не удобен из-за слишком продолжительного применения, существует возможность воспользоваться мастером создания динамических моментальных снимков. 14. Указываем значение для фильтра динамического снапшота.
Для каждого подписчика должен быть создан свой динамический моментальный снимок. Для этого, каждому подписчику
необходимо оказать то значение используемых в фильтре системных функций, на основании которого будут фильтроваться
данные. Поскольку в нашем примере данные фильтруются функцией SUSER_SNAME(), которая возвращает имя оперирующего
реплицируемыми данными пользователя на подписчике, нам необходимо указать в качестве значения для фильтра динамического
снапшота имя пользователя u1. От имени этого пользователя будут осуществляться операции с данными и запускаться агент
репликации слиянием. Целью нашей динамической фильтрации является выделение подписчику такого горизонтального раздела
данных, который содержал бы записи таблицы _test со значением поля name_user равным u1. CONSTRAINT DF_name_user DEFAULT (suser_sname()) FOR name_user Поэтому, в визарде создания динамического снимка для значения функции SUSER_SNAME() мы указываем имя пользователя, который будет вставлять данные на подписчике. 15. Указываем расположение динамического снапшота для нашего условия фильтрации. Каждому получающему динамический снимок подписчику, для которого применимо выбранное прежде значение системной функции, необходимо предварительно завести специальную папку, откуда он будет забирать моментальный снимок с отфильтрованными по указанному значению данными. Эта папка должна отличаться от папок, где хранятся стандартные снимки. 16. Создаём подписку и указываем для неё место расположения динамического снапшота.
Именно эту папку, которую мы определили в предыдущем шаге в качестве динамического снимка подписчиков, у которых
значение поля name_user равно u1, мы укажем и в визарде создания подписки, а также пометим эту папку, как содержащую
динамический моментальный снимок. 17. Редактируем свойства подписки. После создания публикации или подписки, у Вас есть возможность внести изменения в их свойства. 18. Изменяем логин для подключения подписчика к издателю. В нашем примере мы изменим имя и пароль пользователя, от имени которого подписчик будет подключаться к издателю и дистрибутору. Это необходимо сделать, т.к. мастер по умолчанию использует для такого подключения логин, под которым выполнялись операции по созданию подписки. 19. Расположение динамического снапшота подписки можно изменить. Если Вы забыли указать папку расположения динамического моментального снимка или необходимо изменить её расположение, всё это можно сделать в соответствующей закладке окна свойств подписки. 20. Изменяем владельца задания, запускающего агента репликации на подписчике.
Для каждой подписки мастером автоматически создаётся своё задание по расписанию, основная цель которого - запуск с
необходимыми параметрами соответствующего агента репликации. 21. Запускаем сеанс создания динамического снимка, а потом сеанс репликации. Завершая подготовительные действия, запустим задание, которое создаёт определённый нами динамический моментальный снимок, а потом запустим задание, запускающего агента репликации слиянием. При первом запуске агента репликации произойдёт первоначальная синхронизация, протокол которой можно посмотреть в истории задания или в хронологии работа агента репликации слиянием. 22. Внесём записи под пользователем u1 на подписчике:
После исполнения представленного выше скрипта и повторного, ручного запуска задания агента репликации слиянием, мы увидим, что данные на подписчике содержат только те строки, которые мы отфильтровали, а на издателе присутствует весь объём введённых нами данных. 23. Особенности формирования динамического снимка. Если открыть находящийся в указанной нами для моментального снимка папке BCP файл, мы увидим, что в нём также присутствуют только отфильтрованные данные. В отличие от стандартного снимка, у нас нет возможности передавать файлы динамического моментального снимка в виде сжатого CAB файла. При больших размерах моментального снимка можно заархивировать его вручную, передать или перенести на подписчика, а потом применять снимок из локальной для подписчика папки.
Статьи на русском языке
Моделирование квазиструктурированных данных Новые и обновлённые технические статьи Microsoft
Analysis Services Crashes If You Incrementally Update a Non-Changing Dimension
Is a Temporary Table Really Necessary? Самые популярные темы недели
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
Порт в MSSQL 7
|
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||