Репликаця mysql “master – slave” очень хорошо подойдет для создания онлайн бекапа базы mysql, настраивается все просто:
1. Настраиваем master server:
– my.cnf прописываем
1 2 |
server-id=1 log_bin = /var/log/mysql/mysql-bin.log |
2. Создаем на master сервере пользователя под которым будет работать репликация:
1 2 |
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'ip_slave_server' IDENTIFIED BY 'slave_user';\ FLUSH PRIVILEGES; |
3. Проверяем статус master сервера:
1 |
SHOW MASTER STATUS; |
4. Делаю полный дамп всех баз на мастере:
1 |
mysqldump -uroot -p --all-databases>/home/alldb.sql |
5. Копирую на slave сервер дамп:
1 |
scp /home/alldb.sql root@slave_server:/home |
6. На slave сервре распаковываю дамп:
1 |
mysql -uroot -p </home/alldb.sql |
7. Настраиваем на slave сервере информацию о master сервере:
в my.cnf:
1 2 3 4 5 6 |
server-id=2 relay-log = relay-bin relay-log-info-file = relay-log.info relay-log-index = relay-log.index log_bin = /var/log/mysql/mysql-bin.log slave-skip-errors = 1062 |
далее в mysql выполняем:
1 2 3 |
mysql> CHANGE MASTER TO MASTER_HOST='ip_master_server', MASTER_USER='slave_user', MASTER_PASSWORD='slave_user', MASTER_LOG_FILE = 'mysql-bin.000001'; SLAVE START; SHOW SLAVE STATUS\G |
Последний вывод должен показать статус слейвового потока, если все хорошо, мыувиим примерно следующее: