2010-10-18 5 views
0

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

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

пример (

transactions_australia, transactions_dubai

)

В отличие от региональных таблиц, у нас есть глобальные таблицы, которые содержат информацию из всех регионов мира.

пример (

person, address, contacts

)

вопрос мы сталкиваемся в том, что, когда раздавать пользователям привилегии этой информации мы представляем угрозу безопасности мы пытаемся преодолеть ,

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

Я не полностью согласен с таким подходом, как время, чтобы дублировать записи 11+ таблиц (которые содержат сотни тысяч записей) будет иметь далеко долго, а также вопрос о целостности данных и синхронизации является рискованно.

Я ищу альтернативу этому подходу к дублированию.

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

Например.

Если человек запись обновляется и Лицо принадлежит к Австралийской области то запись будет обновляться на мастер-сервера и репликации будет иметь место только в соответствующем сервере .

Или есть альтернативы этому?

я вкратце ознакомился с использованием взглядов однако я не думаю, что они обеспечат, что уровень экстраполяции из основного набора данных мы после.

ответ

0

MySQL предлагает выборочную репликацию, но наименьший уровень выбора - таблица.Это связано с тем, что, по большей части, таблица почти всегда может стоять отдельно от чисто точки базы данных. Попытка ограничить репликацию конкретными рядами серьезно нарушит целостность данных и станет кошмаром администрирования базы данных: MySQL будет нуждаться в дополнительной информации об использовании таблиц, чем она предназначена для решения.

В главе о репликации в документах описаны системные настройки для управления репликацией выборочных таблиц или баз данных.

+0

Мы используем выборочные таблицы в наших репликации, однако нам по-прежнему необходимо предоставить этот дополнительный слой для извлечения региональных данных из глобальных таблиц. Именно поэтому ведущий программист предположил, что у нас есть скрипт, который извлекает все записи из всех таблиц, относящихся к определенной области. Однако это так тягостно и требует много времени, что это не жизнеспособный вариант. –

+0

Могла ли глобальная таблица быть реструктурированной, чтобы облегчить такой сценарий? Не могли бы вы включить триггеры для обновления таблиц, специфичных для региона? Сценарий для копирования данных, например, предложенный вашим ведущим программистом, не является ужасной идеей, но его легко реализовать плохо. Не бойтесь попробовать безумную идею на пути к другому, жизнеспособному решению. – staticsan

Смежные вопросы