mysql主从-热添加从库
来自: http://my.oschina.net/swingcoder/blog/619074
为了尽量减少对业务的影响,使用从某台从库热拷贝数据的方法来添加从库。此种方法优点是比较快速。在运营环境选择闲时操作。
添加从库的步骤
0、新的从库安装好,不要启动和初始化数据,其数据和配置将从旧的从库复制过去
1、将主库置于只读状态,不允许写入
flush tables with read lock;
#这步会影响业务,如果关系不大可执行。一般情况不能只开主库不开从库同步,因为应用层一般会去从库取数据,如果没有同步,取不到数据,会导致业务混乱!为安全起见,可以临时锁表或业务下线,彻底断绝新数据的更新。
2、将从库停止同步
stop slave;
3、对从库数据库打包
tar -zcvf mysql-data.tar.gz mysql/
#注意!!如果压缩很慢,或出现压缩时文件有修改,则不要再压缩了,因为数据有变化,请检查上面的步骤是否彻底关掉了数据写入的可能。ib_logfile0 有变动好像没有影响。
4、将打包文件传输到另外一台机器
scp mysql-data.tar.gz x.x.x.x:/data/mysql
将从库的my.cnf传到新的从库(注意新的从库安装了mysqld,但不要启动),在新的从库修改my.cnf里的server_id参数
scp /etc/my.cnf x.x.x.x:/etc/
5、恢复主库读写状态
unlock tables;
6、恢复其他从库同步进程
start slave
7、配置新的从库
删除 mysql/auto.conf文件,里面标识了从库uuid
8、启动新的从库
service mysqld start
mysql>show slave status\G
检查是否正常。对比master 的log position与从库的Exec_Master_Log_Pos是否一致。