SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.04.2013 14:11:42

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Переезд с MySQL на Percona

Планируем съехать с MySQL 5.1.52 на Percona XtraDB Cluster 5.5.30. Хочется переехать максимально безболезненно и с минимальным простоем, т.к. на текущем СУБД работает не малонагруженный сервис с 1000 запросов в секунду. Работает репликация, со слейва можем слить базу чтобы не останавливать мастер, но запустится ли репликация между MySQL и Percona? Больше всего интересует такой нюанс: в MySQL таблицы MyISAM, в Percona таких не бывает, будем делать InnoDB (XtraDB).

Какие могут возникнуть проблемы при таком переезде и как можно минимизировать простой мастера?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#2 29.04.2013 17:09:49

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Переезд с MySQL на Percona

Репликация будет работать. Переход с MyISAM на XtraDB также возможен, если не используются fulltext индексы. В зависимости от того что именно делать, могут возникнуть любые проблемы, но заранее этого предсказать нельзя.

Неактивен

 

#3 29.04.2013 17:20:21

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Переезд с MySQL на Percona

Полнотекстовые индексы отсутствуют.

Я представляю себе такой порядок действий.
1. Остановить slave MySQL и слить базы на Percona.
2. Стартовать репликацию на Percona в качестве slave с нужной позиции.
3. После того, как база на Percona будет синхронизирована, отключить master MySQL, СУБД Percona сделать master и подключить к нему клиентов.

По сути, простой сервиса будет только на третем шаге, но всё ли я учёл? smile
Кстати, из-за отсутствия достаточного опыта, не могу быть уверенным в правильном выполнении второго шага. Позиция бинлога актуальна вроде как для master сервера. Есть ли возможность определить эту позицию на slave сервере? Или надо останавливать репликацию и брать позицию бинлога с мастера?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#4 29.04.2013 18:57:52

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Переезд с MySQL на Percona

можно сделать бэкап на мастере с помощью percona backup, тогда бэкап будет актуальным и содержать позицию в бинлоге мастера

для вашей схемы используйте SHOW SLAVE STATUS, он покажет позицию в бинлоге мастера

Неактивен

 

#5 29.04.2013 22:13:35

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Переезд с MySQL на Percona

rgbeast написал:

можно сделать бэкап на мастере с помощью percona backup, тогда бэкап будет актуальным и содержать позицию в бинлоге мастера

Но в таком случае, я так понимаю, надо останавливать мастер?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#6 29.04.2013 22:25:13

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Переезд с MySQL на Percona

Neval написал:

Но в таком случае, я так понимаю, надо останавливать мастер?

Да, для MyISAM будет блокировка таблиц. Для Innodb это возможно транзакционно без остановки. Перенести слейв, как вы предложили, не проблема - просто заменить на нем бинарник MySQL на Percona и запустить. ALTER из MyISAM в Innodb можно сделать уже на перконе при остановленном треде слейва.

Неактивен

 

#7 14.05.2013 17:44:29

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Переезд с MySQL на Percona

Никак нам не удаётся настроить синхронизацию...
На текущем MySQL мастере прописана переменная auto_increment_increment = 2, на Перконе почему-то значение из конфига игнорится и в сессии значение auto_increment_increment показывает 1, из-за чего данные рассинхронизированы.

Когда к перконе было подключено два слейва, то значение переменной auto_increment_increment в сессии было 3. Т.е. получается, что Перкона сам устанавливает значение auto_increment_increment равное количеству серверов в кластере. Можно ли это как-то обойти?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#8 14.05.2013 18:28:47

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Переезд с MySQL на Percona

Обнаружили параметр wsrep_auto_increment_control, был включен. Выключили и вроде всё поднялось, будем далее мониторить.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#9 01.06.2013 13:14:33

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Переезд с MySQL на Percona

rgbeast написал:

ALTER из MyISAM в Innodb можно сделать уже на перконе при остановленном треде слейва.

На MyISAM репликация успешно работала несколько дней, на днях сконвертировал таблицы в InnoDB, сегодня запустил репликацию и увидел, что она жутко отстаёт. Отстаёт таки сильно, вот выявил запросы, выполнившиеся на мастере в течение 3х минут, а на слейве они выполнялись в течение 13ти. С такими темпами у меня бинлог на мастере скоро перестанет быть актуальным...

Seconds_Behind_Master     90278
и постоянно растёт.

Подскажите куда копнуть? Могут ли индексы таблиц на это повлиять так сильно или стоит пересмотреть какие-то конфиги?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#10 01.06.2013 13:53:49

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Переезд с MySQL на Percona

Увеличил на слейве такие параметры:
innodb_buffer_pool_size
innodb_log_file_size

Увеличивал до тех пор, пока не ощутил разницы в значениях. Отставание стало меньше, но всё же есть небольшое. Какие ещё параметры стоит поковырять? Пробовал использовать innodb_flush_method=O_DIRECT и skip-innodb-doublewrite, разницы не увидел.

Нагуглил параметры innodb_additional_mem_pool_size и innodb_thread_concurrency, но их в конфиге нет и в переменных состояния их не нашёл, потому не знаю сколько есть сейчас и на сколько можно увеличивать.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#11 03.06.2013 19:42:34

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Переезд с MySQL на Percona

Попробуйте посмотреть на сами запросы. См. также ботанический определитель

Неактивен

 

#12 03.06.2013 23:09:10

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Переезд с MySQL на Percona

Спасибо, занятная презентация, очень давно её не смотрел smile В моём случае проблема решилась путём выставления параметра innodb_flush_log_at_trx_commit в 0, было значение 1.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson