MySQL 复制大量变化的数据

MySQL 复制大量变化的数据

你好,我有一个主 MySQL 服务器,该服务器有 950 GB 的数据,而从属服务器由于某种原因已经停止,并且存在 80 GB 的数据差异。因此我开始设置新的从属服务器。

由于数据在变化,多个数据库的转储、复制和恢复将花费大量时间。所以我还有其他选择吗?

答案1

不要惊慌。主服务器和副本服务器之间的表(或整个数据库)的大小(在磁盘上)不太可能相同。

SELECT COUNT(*) FROM tbl将为您提供准确的行数(查询开始时);在两台服务器上运行该命令。如果它们相同(或接近),我会宣布“误报”。如果不同,我们需要更多详细信息来帮助您。

dba.stackexchange.com 将是讨论 MySQL 管理问题的更好的论坛。

答案2

终于解决了这个问题,

以下是我面临和解决的一些挑战。

  1. 从属复制已停止(只有主控端处理所有 R&W 操作)
  2. 主服务器是私有的,不能向公众访问(主服务器和从服务器位于私有云中)
  3. 无法转储和恢复,因为单个表大约有 300GB(因为 MySQL 在恢复之前将表存储在 /tmp/shm/ 中,在我的情况下只有 80GB)
  4. 主从服务器没有活动的互联网连接。(无法安装任何软件包。

以下是我解决这个问题的方法。

1.尝试添加安装包的路由。(安装 NFS-utils 和 percona xtrabackup)

  1. 仅从属服务器获得了互联网连接。主服务器仍然被阻止。

  2. 在从属服务器上安装了软件包(在主服务器上手动安装了所有软件包,大约 35 个软件包)

4 在/目录中创建NFS在从属中并挂载到主控上

5 执行 percona xtrabackup 并在 master 中的挂载文件夹中进行备份。

6 备份后将文件夹移至/var/lib/mysql并启动mysql。

工作正常。

如果你的数据经常变化并且量很大,percona xtrabackup 应该是你的首选。

以下是我为 percona 设置所遵循的文档 https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/full_backup.html

相关内容