非常大的 MySQL 备份

1 mysql backup

我们公司有一个非常大的 MySQL 服务器,有近 1000 个数据库,总大小为 500 GB。每个客户都有自己的数据库。而每个数据库大约有120-125张表!

过去我们使用mysqldump进行备份。服务器在创建备份时非常慢,几乎需要 5 个小时才能完成备份。数据库中有 99% 的 Innodb 表。

我知道备份大量数据需要花费大量时间。但备份的最佳解决方案是什么?问题是我们的客户全天候 (24/7) 使用我们的网络应用程序。进行备份时系统非常慢。

Lig*_*bit 5

传统的做法是设置多个复制从站

然后,您定期从这些从站进行备份(mysqldump对于这部分来说可能仍然没问题)。

当从机备份时,主机不需要被阻塞;一旦这些备份完成,它就会继续复制。错开备份,以便您始终拥有最新的从属设备。

复制并不消耗 CPU 资源(除非数据库活动达到疯狂水平),并且从属服务器的备份过程根本不会影响主服务器。

所有东西都应该有冗余存储。


轶事:在之前的工作中,我们有一个 600GB 的数据库,它的备份方式与您的备份方式相同,但通过 10Mbit 管道连接到目标,这会导致整个数据库每晚阻塞 11 个小时!哎呀。从来没有在那里进行复制(笑),但将网络升级到 100Mbit 意味着它可以在 2 小时左右完成,这“很好”。当然,由于数据库在备份期间被锁定(这应该是!),因此在该时间内实际服务不可用,因此从外部甚至无法观察到备份过程对性能的影响。在您的情况下,您有多个不同的数据库,因此情况并不完全相同 - 您不必一直锁定所有内容。