• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Селективная репликация баз

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

deeeman

Добрый день!

Есть 2 сервера в домене. Есть база на главном и реплика базы на втором сервере.
Требуется настроить реплицирование так что в главную базу попадали только определенные документы из второй базы, а во вторую вообще ничего не должно попадать из первой.

вколбашиваю формулу отбора в настройках репликации у базы (правой кнопкой по базе, Replication- sittings - Advanced - ставлю галочку Documents by Selection formula и вставляю формулу)

Запускаю вручную репликацию главной бд (правой кнопкой по базе, Replication-Replicate, выбираю вторую бд, ок )

те документы которые были указаны в формуле скопировались в главную, а вот все остальные документы были УДАЛЕНЫ ((((

почему так происходит?
что то с правами доступа?
 
A

Akupaka

предположительно (нужно тестить):
1) нужная формула репликации с второго на главный;
2) второй сервер инициирует репликацию (причем только этой базы! настраивается в сервер-сервер документе соединения, в серверной адреске) в режиме толкать;
3) второй сервер не имеет права удалять документы в реплике на главном сервере;
4) первый сервер не должен инициировать репликацию этой БД со вторым;
5) никогда не реплицируй документы между серверными репликами ВРУЧНУЮ! только через консоль.

читай "Inside Notes", это книга такая :gifts:
 
K

Klido

5) никогда не реплицируй документы между серверными репликами ВРУЧНУЮ! только через консоль.
естественно, вручную под учеткой пользователя(в данном случае админа?) возможно получить совершенно иной, отличный от сервера эффект...
 
A

Akupaka

Klido
было бы не плохо, если бы остальные пункты ты тоже прокомментировал или дал свой вариант настройки репликации :gifts:
 
K

Klido

Akupaka
в остальных пунктах всё нормально :gifts:
п.5 - в данном случае ключевой, если даже все предыдущие пункты настроены верно...
 
D

deeeman

про 5 пункт: вписываешь свою учетку в адресной книге как full access и реплицируешь сколько хочешь без проблем помоему....


а если сделать так:

т к первый сервер у нас рулит с мегаправами, то

1. настроить репликацию с первого на второй в режиме втягивать (Pull Only)
2. Формулу отбора сделать на первой бд

будет ли это правильно?
 
D

deeeman

ясно...

дак все таки будет ли правильно сделать?

1. настроить репликацию с первого на второй в режиме втягивать (Pull Only)
2. Формулу отбора сделать на первой бд

?
 
K

Klido

1.
т к первый сервер у нас рулит с мегаправами
у него и так, наверное, задач много? теоретически грамотнее распределить нагрузку по созданию и запуску события репликации на второстепенные сервера...
2. Тут всё зависит от п.1 :gifts:
 
D

deeeman

да на загрузку сервера вообще начихать, главное чтобы лишнего не поудаляло...
 
K

Klido

3) второй сервер не имеет права удалять документы в реплике на главном сервере;
вообще вот этот пункт..

ну а глубже - например, когда в центре надо хранить полную версию базы, а в филиалах только своё - использовать доступ на уровне авторских полей (и соотвтетствующей настройке ACL для конкретного сервера), прописывая в каждый конкретный документ конкретный же сервер, на которм он создан... тогда он к чужим докам вообще не будет иметь возможности доступа на изменение/удаление
 
30.05.2006
1 345
12
BIT
0
..
те документы которые были указаны в формуле скопировались в главную, а вот все остальные документы были УДАЛЕНЫ ((((

почему так происходит?
что то с правами доступа?
Всё правильно, так и должнО быть:
Если на сервере-источнике есть БОЛЕЕ НОВЫЙ док-т, которого на сервере-приёмнике быть не должно (в соотв. с формулой ИЛИ Readers-полем) - он будет удалён (причём без "окурка")
 
S

San40S

Всем привет!
Дабы не писать новый топик, опишу свой вопрос здесь...

Есть у меня оригинальная БД (назовем ее образно БД1) на первом сервере (СЕРВ1), она в кластере (БД2) с сервером 2 (СЕРВ2).
Далее, мне нужно создать еще одну реплику БД3 на СЕРВ1, но чтобы в БД3 попадали все документы, но не полностью весь документ, а только некоторые его поля. А, еще.., должны реплицироваться только документы(!!!) ACL, дизайн и прочее - реплицироваться не должно!
Тобишь, БД1 и БД2, спокойненько должны себе реплицроваться в кластере (документы, дизайн, агенты, ACL и прочее), а вот в БД3 должны попадать только измененные документы(!!!) с ограниченным набором полей. Обратно, БД3 ничего не должна отдавать - ни документы, ни дизайн, ни ACL - ничего(!!!)

Что я пытался сделать...
Из БД2 на СЕРВ2 создаю реплику для БД3 на СЕРВ1. (Replica ID у всех трех БД одинаковая, но если надо, то в третьей можно поменять)
В свойствах репликации БД3 отключаю обновления дизайна, агентов, АЦЛ... оставляю только обновления полей и в списке выбираю нужные мне поля.
В Connections, настраиваю:
Source server - СЕРВ1;
Destination server - СЕРВ2;
Files/Directory path to replicate - указываю путь и название БД3;
Replication Type - Pull Only.

Что у меня в итоге получается:
Проходит репликация, и в БД2 обновляется дизайн из БД3... в БД1 дизайн же остается прежним.
Набор полей реплицируется вроде правильно.
Если отключить в БД2 обновление дизайна в свойствах репликации, то он тогда не будет обновляться с БД1.

Что я делаю не так, что мне надо сделать по-другому?
В админке, я ни "бум-бум" :'(
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!