Репликация на одном сервере в разных базах данных.Mysql 5.6

dba.stackexchange https://dba.stackexchange.com/questions/103020

Вопрос

Что у меня есть :

  • компьютер под управлением Windows с одним экземпляром сервера MySQL 5.6.
  • две базы данных с именами test и test2.
  • Test в базе данных есть таблица под названием activity с колоннами id и class

То, что мне нужно :

  • репликация test.activity таблица для test2 база данных с условием , что Test.activity.class = 'B'.

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

Это было полезно?

Решение

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

Другие советы

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

Если вы просто хотите реплицировать данные, вы можете добавить триггер при обновлении или при вставке, или и то, и другое, что вам нужно.Таким образом, вы можете легко использовать свое состояние.Репликация Master / Slave была бы лучше для разных серверов.

Вы можете посмотреть здесь для примеров триггеров mysql.И здесь это образец для вашего случая.

Если я правильно понял ваши потребности, у вас может быть 2 экземпляра MySQL на одном сервере (OS), тогда вы могли бы настроить один из них как Master, а другой как Slave.Вы должны создать разные my.conf, мы назвали их my1.conf и my2.conf, чтобы каждый из них отличался по номеру порта, пути к сокету, пути к ошибке журнала и некоторым другим параметрам.При таком подходе вы запустите 2 демона MySQL с разными конфигурациями.Для получения полного документа, пожалуйста, перейдите по https://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html .

Попробуйте mysql sandbox, это, вероятно, решит вашу проблему (http://mysqlsandbox.net/)

Потому что:

репликация таблицы test.activity в базу данных test2 с условием это Test.activity.class = 'B'.

Встроенная репликация не помогает, и в этом случае лучше оставить обе базы данных на одном сервере и просто установить триггер для ВСТАВКИ / ОБНОВЛЕНИЯ / УДАЛЕНИЯ в главную базу данных, который проверит условия и внесет прямые изменения во вторую базу данных.

Это самый простой способ.Есть много других возможных вариантов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top