=====================从slave上创建新的slave。===================================
master:192.168.0.206
old_slave:192.168.0.208
new_slave:192.168.0.207
一、首先创建new_slave上的新实例。
207上,new-slave
scp -r mysql-5.7.17-linux-glibc2.5-x86_64/* /data/mysql_3307/
cp /data/mysql_3306/my.cnf /data/mysql_3307/
touch /data/mysql_3307/error.log
sed -i 's/3306/3307/g' my.cnf
mkdir /data/mysql_3307/binlog
mkdir /data/mysql_3307/redo
mkdir /data/mysql_3307/undo
mkdir /data/mysql_3307/tmp
mkdir /data/mysql_3307/relaylog
mkdir /data/mysql_3307/slow
mkdir /data/mysql_3307/data
cp /etc/init.d/mysqld_3306 /etc/init.d/mysqld_3307
sed -i 's/3306/3307/g' /etc/init.d/mysqld_3307
(可以直接使用mysql_5_7_17_glibc_install_all.sh脚本来创建,只是关闭之后,需要删除几个目录文件:
rm -rf /data/mysql_3306/data/*
rm -rf /data/mysql_3306/undo/*
)
二、在old_slave上创建备份,并直接传送到207的数据目录
208上,old-slave
innobackupex --user=root
--password=mysql
--parallel=4
--socket=/data/mysql_3306/mysql.sock
--no-timestamp
--slave-info
--stream=xbstream .|
lz4 -B4 |
ssh test206
"cat - | lz4 -d -B7 | xbstream -x -C /data/mysql_3306/data/"
新添加了--slave-info参数。
(本地:innobackupex --user=root
--password=mysql
--socket=/data/mysql_3306/mysql.sock
--no-timestamp
--slave-info bak)
三、完成之后,需要prepare,让数据一致。
207上。
xtrabackup --prepare --target-dir=/data/mysql_3307/data/
cp data/undo00* undo/
chmod 750 undo/*
chown -R mysql.mysql /data/mysql_3307/
/etc/init.d/mysqld_3307 start
启动之后,自动与master同步了 。
可能存在的问题:
2017-05-09T11:17:12.015913+08:00 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2017-05-09T11:17:12.016033+08:00 0 [ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 768 pages (rounded down to MB) than specified in the .cnf file: initial 65536 pages, max 0 (relevant if non-zero) pages!
2017-05-09T11:17:12.016059+08:00 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic er
这个多半是配置和old-slave不一致的问题。检查。