1. 程式人生 > >使用innobackupex基於從庫搭建mysql主從架構

使用innobackupex基於從庫搭建mysql主從架構

oot word info conf over found upgrade datadir 參數

使用innobackupex基於從庫搭建mysql主從架構

現有的架構是一主一從,版本為Mysql5.6.37。實施要求是:利用從庫,搭建第二個從庫,版本為5.7.21

1、備份從庫1
[root@mysql02 ~]./innobackupex --user=root --password="xxxxxx" --slave-info --safe-slave-backup --parallel=3 /data/backup/
#復制my.cnf文件到新從庫
[root@mysql02 ~]$scp /etc/my.cnf 192.168.1.23:/data/backup
2、主庫授予從庫2復制賬戶
master@MySQL> grant replication slave,replication client on *.* to repl@‘192.168.1.23‘ identified by ‘repl‘;
3、從庫2:進行恢復
[root@mysql03 ~]$./innobackupex --user=root --password="xxxxxx" --apply-log --use-memory=2G /data/backup/2018-08-10_17-29-01
[root@mysql03 ~]$mv /data/backup/2018-08-10_17-29-01 /data/mysql_3306

4、準備從庫2配置文件my.cnf,根據需要修改相應參數,這裏的修改如下,
skip-slave-start
datadir = /data/mysql_3306
port = 3306
server_id = 330623
socket = /data/mysql_3306/mysql.sock
pid-file=/data/mysql_3306/mysql3307.pid
log_error=/data/mysql_3306/mysql_error.log


5、啟動從庫2
# chown -R mysql:mysql /data/backup
# mysqld_safe --defaults-file=/etc/my.cnf &

6、運行mysql時,提示Table ‘performance_schema.session_variables’ doesn’t exist
./mysql_upgrade -hlocalhost -u root -p --force -P3306 sock=/data/mysql_3306/mysql.sock
重啟數據庫
7、change master
mysql> system more /log/recover/xtrabackup_slave_info
CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000658‘, MASTER_LOG_POS=925384099
mysql> CHANGE MASTER TO
-> MASTER_HOST=‘192.168.1.21‘,
-> MASTER_USER=‘repl‘,
-> MASTER_PASSWORD=‘repl‘,
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE=‘mysql-bin.000658‘,
-> MASTER_LOG_POS=925384099;
Query OK, 0 rows affected, 2 warnings (0.31 sec)
mysql> start slave;
在從庫2,start slave時報:error:
ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
經分析,需要:
刪除5張表,並重新導入腳本
use mysql
drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;
檢查表數據,為空表,重建表
source /backup/mysql_system_tables.sql

(2)重新啟動數據庫
mysql> start slave;
mysql> show slave status\G;

使用innobackupex基於從庫搭建mysql主從架構