cyberflow_gravatar

Cyberflow

I am linux system administrator.


Navigation
» Home
» Categories
» Code
» XML Feed

Установка slave mysql-percona сервера

14 May 2014 » ha, linux, databases

Хочу сразу заметить, что способов развернуть slave сервер существует масса. Я хочу рассказать лишь об одном из них. Во-первых для себя, т.к. я часто применяю его в работе. Во-вторых для тех, у кого стоит задача по развертыванию независимого (поясню: это значит что перенос файлов базы с одного сервера на другой не подходит, как в моём случае. Т.е. репликация не полная) slave и при этом репликация производиться только над некоторыми БД, а не над всем, что есть.

Подразумевается, что уже есть мастер сервер, на котором крутятся БД и настроен для репликации.

Теперь надо сделать dump баз данных, при этом будем использовать атрибуты add-drop-database для добавление в dump строчки удаляющей базу перед её созданием и master-data для добавления информации о бин-логах и их позиции на момент создания dump’a. Так же, чтобы избежать переноса служебных баз, формируем список баз для переноса исключив из них все служебные базы mysql (в список можно добавить и другие базы по аналогии). После создания dump’a переносим его на slave сервер.

# DATABASE_LIST=$(mysql -NBe 'show schemas' | grep -wv 'mysql\|performance_schema\|information_schema')
# mysqldump  --databases $DATABASE_LIST --add-drop-database --master-data -u root -p > dbdump.db
# scp dbdump.db mysql-slave-host:~/

На slave сервере добавляем необходиму информацию для репликации. Это можно сделать и после развертывания dump’a. Так же я пропущу описание настройки репликации в конфигурации mysql.

# mysql
mysql> CHANGE MASTER TO MASTER_HOST='mysql-master-host', MASTER_USER='$replica_user', MASTER_PASSWORD='$slavepass';

Теперь можно залить сделанный dump и после этого включить репликацию.

# mysql -p < ~/dbdump.db
# mysql
mysql> slave start;