Ожидание синхронизации подчиненного устройства

Есть ли какая-либо команда SQL (или PHP), которую можно использовать, чтобы заставить мастер распространять изменения на ведомые устройства и/или ждать, пока изменения не будут распространены на все ведомые устройства?


person paullb    schedule 10.03.2014    source источник


Ответы (2)


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

SELECT MASTER_POS_WAIT('mysql-bin.000042', 8675309);

См. https://dev.mysql.com/doc/refman/5.6/en/master-pos-wait.html

person Bill Karwin    schedule 10.03.2014

Стандартная репликация MySQL является асинхронной. Вам придется проверить рабов самостоятельно - возможно, но нет встроенной команды, которая сделает всю работу за вас.

MySQL 5.5 обеспечивает полусинхронную репликацию, которую я не знаю. опыт с.

Есть также синхронная репликация через такие вещи, как Galera. На работе мы используем вариант MySQL Percona XtraDB Cluster на базе Galera.

person ceejayoz    schedule 10.03.2014