如何继续build立一个辅助MySQL的Linux奴隶?

我有一个MySQL数据库主从生产。 我想要设置额外的MySQL奴隶。 数据库中大约有15TB的数据,数据库中有MYISAM和InnoDB表。

我正在考虑下面的选项:

  1. closures主数据库并将mysql数据文件夹复制到从属服务器。 Innodb表可以像这样复制吗?
  2. 使用读锁运行刷新表,scp文件到新的奴隶和解锁表,这是可能的myisam表,我可以做同样的innodb表呢?

感谢您看这个问题。

因为你已经有一个奴隶,你不需要closures主人。 你需要closuresslave(虽然这是最简单的,但并不是绝对需要的,但在下面的过程中是必需的)。

这是我用来创build一个奴隶(lvm上的Linux,MySQL数据)的过程:

  • 停止现有的奴隶
  • 采取LVM快照
  • 启动奴隶
  • 将快照安装在/ snap下
  • 拷贝/ snap / var / lib / mysql到新的slave上的/ var / lib / mysql
  • 确保server-id在新的slave上被设置,并且被设置为与旧的不同的值
  • 在新的slave上启动mysqld

作为最后一步:如果复制工作,卸载并销毁lvm快照。

如果您的mysql数据不在linux + lvm上,则可以跳过lvm步骤,但需要保持现有slave上的mysqlclosures,直到复制到新的slave。

你不需要停止奴隶,你可以使用innobackupexstream实际的备份到新的奴隶:

在实际的奴隶,你可以发出一个

 slave2> cd /var/lib/mysql; rm -rf * slave2> nc -l 9898 | tar -xvif - slave1> innobackupex --sream=tar --slave-info /tmp | nc slave2 9898 slave2> innobackupex --apply-log /var/lib/mysql 

在此之后,设置从站,您可以启动它,并在/ var / lib / mysql / xtrabackup_slave_info文件中,您可以find实际的binlog文件和binlog位置,您需要指向第二个从站。 Innobackupex可以在这里find: http ://www.percona.com/software/percona-xtrabackup

我每天重build这样的奴隶,这是被certificate的好。