如何继续设置辅助 mysql linux 从属服务器?

如何继续设置辅助 mysql linux 从属服务器?

我在生产环境中拥有一个 mysql 数据库主服务器和一个从服务器。我想设置额外的 mysql 从服务器。数据库中有大约 15 TB 的数据,并且数据库中有 MYISAM 和 InnoDB 表。

我正在考虑以下选择:

  1. 关闭主数据库并将 mysql 数据文件夹复制到辅助从属数据库。Innodb 表可以这样复制吗?
  2. 运行带有读锁的刷新表,将文件 scp 到新的从属文件并解锁表,这对于 myisam 表是可能的,我也可以对 innodb 表执行同样的事情吗?

感谢您关注这个问题。

答案1

由于您已经有了从服务器,因此无需关闭主服务器。不过,您需要关闭从服务器(好吧,这是最简单的方法,虽然不是绝对必要的,但在下面的过程中是必需的)。

这是我用来创建从属(linux,lvm 上的 mysql 数据)的过程:

  • 停止现有的从站
  • 创建 LVM 快照
  • 启动从属
  • 将快照挂载到 /snap 下
  • 将 /snap/var/lib/mysql 复制到新从属服务器上的 /var/lib/mysql
  • 确保在新的从属服务器上设置了 server-id,并且将其设置为与旧从属服务器不同的值
  • 在新的从服务器上启动 mysqld

最后一步:如果复制有效,则卸载并销毁 lvm 快照。

如果您的 mysql 数据不在 linux+lvm 上,您可以跳过 lvm 步骤,但需要保持现有从属服务器上的 mysql 关闭,直到复制到新的从属服务器完成。

答案2

您不需要停止从属服务器,您可以使用 innobackupex 将实际备份流式传输到新的从属服务器:

在实际的奴隶上你可以发出

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 文件中,可以找到实际的 binlog 文件和 binlog 位置,需要将第二个从服务器指向该位置。Innobackupex 可在此处找到:http://www.percona.com/software/percona-xtrabackup

我每天都会重建这样的从属系统,事实证明这是好的。

相关内容