主从复制-添加新slave服务器

假如master已经运行很久了,想对新安装的slave进行数据同步,甚至它没有master的数据。

此时,有几种方法可以使slave从另一个服务开始,例如,从master拷贝数据,从另一个slave克隆,从最近的备份开始一个slave。Slave与master同步时,需要三样东西:

1)master的某个时刻的数据快照;

2)master当前的日志文件、以及生成快照时的字节偏移。这两个值可以叫做日志文件坐标(log file coordinate),因为它们确定了一个二进制日志的位置,你可以用SHOW MASTER STATUS命令找到日志文件的坐标;

3)master的二进制日志文件。

可以通过以下几中方法来克隆一个slave:

1)、冷拷贝(coldcopy)

停止master,将master的文件拷贝到slave;然后重启master。缺点很明显。

2)、热拷贝(warmcopy)

如果你仅使用MyISAM表,你可以使用mysqlhotcopy拷贝,即使服务器正在运行。

3)、使用mysqldump

使用mysqldump来得到一个数据快照可分为以下几步:

<1>锁表:如果你还没有锁表,你应该对表加锁,防止其它连接修改数据库,否则,你得到的数据可以是不一致的。如下:

mysql> FLUSH TABLES WITH READ LOCK;

<2>在另一个连接用mysqldump创建一个你想进行复制的数据库的转储:

shell> mysqldump -uroot –p123456 -A -B –events–default-character-set>/opt/$(date+%F).sql

<3>对表释放锁。

mysql> UNLOCK TABLES;

    原文作者:温东
    原文地址: https://www.jianshu.com/p/011c0283a36d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞