Есть ли какая-либо команда SQL (или PHP), которую можно использовать, чтобы заставить мастер распространять изменения на ведомые устройства и/или ждать, пока изменения не будут распространены на все ведомые устройства?
Ожидание синхронизации подчиненного устройства
Ответы (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