Вопрос

03Cp> Я не смог ничего найти, чтобы я уверен, что ответ u003Cem>нет, что ты, нуб?u003C/em> Но я чувствую необходимость спрашивать все равно :)u003C/

03Cp> Есть ли простая утилита, которая позволила бы получить новый ведомый сервер в существующем мастере u003Cstrong>безu003C/strong> необходимости выполнять дамп на мастере?u003C/

03Cp> Я настроил рабов традиционным образом несколько раз, поэтому я не без знания о процессе, но мне интересно, если кто-то почувствовал то же самое, что я u003Cem>должен быть прощеu003C/em> .u003C/

03Cp> Я ожидал, что такая утилита будет использовать что-то похожее на XtraBackup Percona, но вместо того, чтобы выводить в файл дампа, он будет транслировать вывод непосредственно к рану, а затем автоматически включает в себя рабские отношения после завершения подачи.u003C/

03Cp> Это реалистично?u003C/

03Cp> Я заметил вариант потоковой передачи в XtraBackup, но не смог найти примеры за пределами своей способности просто сохранить TAR на другом сервере, что не то, что я искал. Я хочу, чтобы решение, которое могло бы поток прямо в назначение DB без требования работать с файлом сброса вообще. Это особенно удобно при работе с u003Cem>большимиu003C/em> наборами набора данных.u003C/

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

Решение

03Cp> Что-то близкое к тому, что вы просите, можно сделать с mysqldump. Вы можете транслировать свой вывод прямо на раб.u003C/

# mysqldump -h master -A --master-data --single-transaction --quick | mysql -h slave

03Cp> mysqldump добавят CHANGE MASTER TO к выходу. Однако он не включает MASTER_HOST, MASTER_USER и MASTER_PASSWORD. Он должен быть настроен отдельно.u003C/

# mysql -h slave -e "CHANGE MASTER TO MASTER_HOST='master',
  MASTER_USER='repl', MASTER_PASSWORD='replpass'; START SLAVE;"

03Ch3> Дополнительные замечания:u003C/h

    03Col> N.u0
  1. 03Cli> Вы можете запустить вышеупомянутую команду на Master или Placve или любой другой хост. Обратите внимание на опция -h в mysqldump и mysql. См. 03Ca href="http://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html#option_mysql_host" rel="nofollow">MySQL вариантыu003C/.u003C/l
  2. i> N.u0
  3. 03Cli> Мастер не находится вниз, когда вы берете свалку.u003C/l
  4. i> N.u0
  5. 03Cli> Там не будет никаких проблем идентификаторов бинлога, потому что независимо от того, где вы проходите mysqldump -h master, дамп придет от мастера. Соответственно, координаты Binlog указывают на Binlog на мастере.u003C/l
  6. i> N.u0
  7. 03Cli> Настоящие значения по умолчанию приведут к таблице таблицы InnoDB, то есть если не указано --single-transaction, что отрицает требование табличного блокировки для постоянного дампа.u003C/l
  8. i> N.u0
  9. 03Cli> Использование --quick обеспечит большие таблицы прочитаны одну строку за раз, а не буферизировать весь строк, установленный в памяти, что более способствует этому типу потоковой дамп.u003C/l
  10. i> N.u003C/o

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

03Cp> XtraBackup поддерживает потоковую передачу, см. 03Ca href="https://www.percona.com/doc/percona-xtrabackup/2.3/howtos/recipes_ibkx_stream.html" rel="nofollow">https://www.percona.com/doc/percona-xtraBackup/2.3/howtos/recipes_ibkx_stream.htmlu003C/u003C/

03Cp> Но вам нужно будет изменить один из примеров (например, innobackupex --stream=tar ./ | ssh user@desthost "cat - > /data/backups/backup.tar"), поэтому он может применить журнал, а затем копировать после потоковой передачи.u003C/

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