LINUX.ORG.RU
ФорумAdmin

Перенос mysql без даунтайма

 


5

2

А как ВЫ переносите живой и работающий mysql сервер без даунтайма? :)

//ну или создаете новую реплику :)

★★★★★

Последнее исправление: tazhate (всего исправлений: 1)

самописный скрипт, который реплицирует БД на другой сервер, а после репликации одновременно меняет конфиги (чистит кеш) в нужных сайтах

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

самописный скрипт, который реплицирует БД на другой сервер, а после репликации одновременно меняет конфиги (чистит кеш) в нужных сайтах

Нутро покаж

tazhate ★★★★★
() автор топика
Ответ на: комментарий от tazhate

master-master репликация. У меня есть ресурс на котором одна мастер-нода, а две-слейв. На мастере админка, на слейвах отображение инфо :)

black_13
()
Ответ на: комментарий от black_13

master-master репликация. У меня есть ресурс на котором одна мастер-нода, а две-слейв. На мастере админка, на слейвах отображение инфо :)

А если репликации нет?

tazhate ★★★★★
() автор топика
Ответ на: комментарий от tazhate

для 1 сайта

#!/bin/bash
mysqldump -uusername -h11.11.11.11 -ppassword database > db1.sql
mysql -uusername2 -h22.22.22.22 -ppassword2 database < db1.sql
cd ~/sites/forum1/
cp -f ~/Documents/newconfig.php config.php
rm -R cache

reprimand ★★★★★
()
Ответ на: комментарий от tazhate

а вообще, то я предполагаю, что есть какой-то более изящный вариант
Но какой - хз, меня пока скрипт(ы) устраивает(ют), да и особо не вникал.

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

mysqldump -uusername -h11.11.11.11 -ppassword database > db1.sql

Если мускуль под нормальной нагрузкой - это его положит автоматом.

tazhate ★★★★★
() автор топика
Ответ на: комментарий от tazhate

Как ты это сделаешь без даунтайма? :)

Если InnoDB, то mysqldump с опциями --single-transaction и --master-data.

anonymous
()
Ответ на: комментарий от tazhate

это его положит автоматом

положит именно mysql? или i/o?
по идее, конечно, работа замедлится, но чтобы оно падало - странно как-то, не должно

если i/o то можно через pipe в gzip
кроме того, есть доп. опции в man mysqldump

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

положит именно mysql? или i/o?

Из-за высокого i/o и обращений к мускулю - все остальные приложения, которые его юзают - пойдут лесом.

по идее, конечно, работа замедлится, но чтобы оно падало - странно как-то, не должно

Это не работа замедлится, это сайт по 3-4 минуты открываться будет с 502ой :)

если i/o то можно через pipe в gzip

Не поможет, потому что i/o генерирует как раз сам mysqldump заставляя mysql судорожно читать базу/ы.

tazhate ★★★★★
() автор топика
Последнее исправление: tazhate (всего исправлений: 1)
Ответ на: комментарий от reprimand

Это всё надо сделать атомарно, а это в данном варианте даунтайм и есть. Нужно настроить именно репликацию, чтобы базы на старой и новой нодах были одинаковы во время работы движка. Тогда можно поменять URI для подключения к БД.

Krieger_Od ★★
()
Ответ на: комментарий от reprimand

сервер без даунтайма
скрипт, который реплицирует БД на другой сервер, а после репликации одновременно меняет конфиги (чистит кеш)

жжжесть. )))

vxzvxz ★★★
()
Ответ на: комментарий от black_13

А бэкапов данный БД нету? Не смущает mysqldump в момент бэкапа?

Бэкапы - чистерство :) вопрос был с нуля.

tazhate ★★★★★
() автор топика
Ответ на: комментарий от black_13

Сорри, седня тяпница ... я перестал чтолибо понимать в этом посте :) Что бы вы не делали, удачи вам!

Еще раз:
у тебя есть из ниоткуда взявшийся mysql сервер, без бекапов и реплик. Полностью standalone. Копий данных нигде нет.
Задача: перенести без даунтайма.
Как ты это сделаешь?

tazhate ★★★★★
() автор топика
Ответ на: комментарий от Krieger_Od

если БД не сверхнагружена - со стороны пользователя реальный downtime составляет менее секунды после изменения конфига

reprimand ★★★★★
()
Ответ на: комментарий от vxzvxz

разным людям - разные потребности при разных условиях - разные решения
жесть? что сказать-то хотел? предложи свой вариант

reprimand ★★★★★
()
Ответ на: комментарий от black_13

Перевод базы в R/O считается даунтаймом?

Само собой. У тебя ж допустим сайт, который активно пишет чота там, юзвери тусуются и трафик льется как из ведра.

tazhate ★★★★★
() автор топика
Ответ на: комментарий от reprimand

ionice + nice?

На что? :) на mysqldump это бесмысленно, он не трогает не i/o, не процессор не грузит. Выть начинает mysql.

tazhate ★★★★★
() автор топика
Ответ на: комментарий от tazhate

Ну тогда мой вариант ответа - НИКАК!

А вообще тема интересная, может чегото и недопонимаю в современных технологиях. Последим, вдруг кто что придумает!

black_13
()
Ответ на: комментарий от reprimand

В любом случае, комбинацию nice+ionice стоит попробовать.

У меня такая ситуация была - не помогало :)

tazhate ★★★★★
() автор топика
Ответ на: комментарий от tazhate

Полностью standalone. Копий данных нигде нет.

А какой там raid? ;-) Я как-то просто вытащил диск из зеркала и восстановил на другом. Это, правда, не БД было. Да и вообще ничего особо важного... Кстати, средствами твоей любимой ФС такое не сделать?

cipher ★★★★★
()
Последнее исправление: cipher (всего исправлений: 1)
Ответ на: комментарий от tazhate

т.е. ты уже применял это к mysqldump?
если НЕ через mysqldump, то надо делать репликацию. Других вариантов я не вижу

reprimand ★★★★★
()
Ответ на: комментарий от cipher

Я как-то просто вытащил диск из зеркала и восстановил на другом.

На очень активном сервере есть риск получить неконсистентную базу на выходе от такого действия.
Именно поэтому варианты с ФС отпадают.

tazhate ★★★★★
() автор топика
Ответ на: комментарий от reprimand

т.е. ты уже применял это к mysqldump?

Да.

если НЕ через mysqldump, то надо делать репликацию. Других вариантов я не вижу

Ага. Читаем вторую строку поста ;)

tazhate ★★★★★
() автор топика

А ты как?

Кроме репликации, можно дампить во время минимальной нагрузки, и лить на целевую тачку через пайп.

Если база небольшая конечно.

invokercd ★★★★
()
Ответ на: комментарий от ifhbr0

innobackupex'ом снять дамп, запилить мастер-мастер.

И давно уже у нас innodb/myisam нормально в мастер/мастер работает?
Плюс для мастера/мастера нужен рестарт боевого мускуля. А это даунтайм.

tazhate ★★★★★
() автор топика
Ответ на: комментарий от invokercd

можно дампить во время минимальной нагрузки

Вот мы это уже обсудили и выянилось, что как бы нет :) не вариант

tazhate ★★★★★
() автор топика
Ответ на: комментарий от tazhate

да уж. Вот незадача. Хоть бери и пиши собственный велосипед для замены mysqldump

reprimand ★★★★★
()

Эх, ясно кароче.
Никто не хочет (либо не умеет) делать реплику без даунтайма и мускульдампа под нагрузкой.

Узрите:
https://www.percona.com/doc/percona-xtrabackup/2.1/howtos/setting_up_replicat...

invokercd reprimand

Эту же тулзу отлично юзать под бекапы (для которых она и сделана, кстати).

tazhate ★★★★★
() автор топика
Ответ на: комментарий от tazhate

вопрос был «как вы переносите». если надо перенести, то есть отказаться от старого без простоя (точнее с минимальным) - нужен м-м. если бы ты написал «как поднять м-с под нагрузкой», я бы не упоминал мастер-мастер.

ifhbr0
()
Ответ на: комментарий от tazhate

А-ха-ха!

Так это был экзамен??? Спасибо за двойку :)

P.S. Тоесть фишка в том что innobackupex «более дружественно» делает бэкап базы MySQL чем mysqldump?

black_13
()
Ответ на: комментарий от black_13

P.S. Тоесть фишка в том что innobackupex «более дружественно» делает бэкап базы MySQL чем mysqldump?

Ага. Код открыт, можно поглядеть как именно.
Меня это на сервере с нагрузкой спасло.

tazhate ★★★★★
() автор топика
Ответ на: комментарий от ifhbr0

точнее с минимальным

А я вот без простоя )

tazhate ★★★★★
() автор топика
Ответ на: комментарий от tazhate

Так вопрос был, любой вариант, кроме реплики?

Дамп не катит при серьезных нагрузках, а где серьезные нагрузки там по-любому есть репликация.

За ссылочку спасибо.

invokercd ★★★★
()
Ответ на: комментарий от invokercd

а где серьезные нагрузки там по-любому есть репликация.

Неа :)

tazhate ★★★★★
() автор топика
Ответ на: комментарий от invokercd

Так вопрос был, любой вариант, кроме реплики?

Вопрос был, любой вариант кроме mysqldump и когда из коробки ничего не преднастроено.

tazhate ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.