Сведения о вопросе

Sadijon

08:52, 2nd August, 2020

Теги

MySQL   rsync    

Будет ли биться MyISAM при синхронизации?

Просмотров: 249   Ответов: 4

Сейчас синхронизирую базы с удаленные серваком останавливая мускул и запуская rsync. Но базы растут и с ними растет и время простоя.
Вопрос в том насколько велика вероятность получить битые таблицы если не останавливать мускул на период синхронизации? А если сначала сделать LOCK TABLES? А потом еще прогонять проверку. Из активности в база на 99% SELECT-ы.

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



  Сведения об ответе

lesha

11:22, 20th August, 2020

FLUSH TABLES WITH READ LOCK;
Только эта конструкция глобально блокирует все операции записи в файлы на сервере. SELECT-ы работают.

Не очень понятны предпосылки к такому решению. Почему бы не воспользоваться репликацией или простым дампом?


  Сведения об ответе

COOL

12:45, 24th August, 2020

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

Можно вместо rsync использовать mysqldump, потом gzip, scp на удаленном сервере и mysql < dump.sql на локальном — будет то же самое, но удаленный сервер простаивать почти не будет (останется только лаг на время выполнения дампа).


  Сведения об ответе

dumai

09:15, 12th August, 2020

А зачем такой изврат с rsync? Чем не подошла репликация?

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


  Сведения об ответе

LAST

03:20, 4th August, 2020

Есть еще вариант — использовать LVM и снапшоты. Простоя не будет, правда на время поднятия снапшота скорость диска будет падать.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться