Репликация ...

  • Автор темы Автор темы DNT
  • Дата начала Дата начала
D

DNT

Условие: есть "главная" БД в центральном офисе, есть реплики этой БД на удаленных серверах в других регионах.

Задача: сделать так, чтобы базы в регионах при репликации получали/обновляли только документы предназначенные им. Причем роли наверно не прокатят, так как защиться нужно и от регионального администратора с full access. :unsure:

Спрашиваю совета откуда копать, так как сам в вопросах реплик плаваю конкретно. :blink:
Спасибо.
 
я обычно использую поле, в котором содержатся имена центральных серверов, где хранятся все данные и еще имя филиального сервера..
для общих документов, т.е. тех что должны реплицироваться везде (общие справочники) это поле пусто..
т.о. на центральных серверах ничего не стоит в настройках репликации (в смысле нет формулы) - все реплицируется,
и соответственно, филиальная формула SELECT поле = "":"имя сервера" (или более жесткий вариант
SELECT @Contains(поле;"имя сервера") | поле="")

до кучи есть агент по расписанию, который проверяет правильность формулы и исправляет ее...
 
Для: Kee_Keekkenen

спасибо - доступно объяснили.
А формула задается в Replication - Advansed?

И ещё вопрос: а с дизайном как быть? - он мне нужен одинаковый везде...
Вот есть сейчас база на главном сервере. Мне надо делать New Copy или New Replica? Как правильно?
 
да там, галка Documents by selection formula и в поле ниже пишешь формулу..
что касается дизайна, то должны быть проставлены четыре галки (там же):
Design elements, Agents, Access control list, Deletions..
они по умолчанию и стоят..

если реплику, то New replica..

вообще реплики удобнее через Администратор делать, если на несколько серверов, но при этом одно неудобство нельзя задать формулу репликации для каждой отдельной базы (для этой цели необходимо писать агента, который будет проставлять формулы в каждой реплике свою)
 
SELECT @Contains(поле;"имя сервера") | поле="")

до кучи есть агент по расписанию, который проверяет правильность формулы и исправляет ее...

а можно еще SELECT @Contains(поле; @ServerName) | поле="") если не хочется плодить view под каждый сервер. Т.к индекс вычисляется на сервере проблем с индексацией не должно быть.
 
Селективную репликацию народ недолюбливает. Раньше она сурово глючила. Но и без глюков можно получить весьма неожиданные, хотя и предсказуемые эффекты.
Недавно я к ней вернулся. Формулы вычисляются роботом в центре. Работает.
НО: никак не могу выдрессировать админов, что-б при установке базы в новые филиалы они в новых репликах включали разрешение реплицировать формулы (при создании реплики оно автоматом выключено).

Альтернатива формулам селективной репликации: поле типа READERS с именем дочернего сервера
 
Хе.. Эт я должен иметь право выполнять restricted агенты на ВСЕХ серверах? Ни один программер у нас такого не имеет...
 
да, restricted.. ну, необязательно чтоб это исполнялось от вашего имени..
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab