将大量 MYSQL 数据移动到另一台主机

将大量 MYSQL 数据移动到另一台主机

我有一个很大的 MYSQL DB(3 TB),需要将其移动到另一台尚未启动的主机。最好的方法是什么?
我计划压缩 mysqldump 或二进制文件,选择哪种压缩软件?我希望能够创建许多 minizip,以便可以逐步将它们下载到我的客户端。当前主机操作系统是 redhat。
我应该如何下载文件?从 ssh 服务器内置 ftps 是最好的方法吗?
最后,最重要的是,主机本身已经用完了磁盘空间,有几百 GB 需要缓冲。我该如何压缩 mysqldumps?

答案1

您可以通过 ssh 管道传输 mysqldump(启用压缩可能会使其速度更快,具体取决于数据和服务器功能)并将其保存到本地计算机(或直接保存到目标服务器)。您还可以通过 gzip/bzip2/xz 管道传输 mysqldump 命令,这样它在管道本地端生成的文件就会小得多。

据我所知,使用二进制数据库不是推荐的备份/恢复方法。

答案2

最好的解决方案是将您的数据复制到另一台服务器上托管的另一个数据库,然后将数据转储为逐表插入

答案3

如果您的本地文件系统只有几百 GB 可用,而您的数据库为 3TB……我不知道您如何进行转储。

您可以尝试按照 Chris S 的建议通过 ssh 到另一台主机进行操作。

您还可以通过 NFS 或 Samba 挂载远程机器的磁盘并直接转储到那里。

如果您想将转储文件分割成多个部分,您可以使用“split”命令(阅读手册页以了解选项...默认选项是分割成非常小的部分,最终可能会得到几千个小块...)。

实际上,没有一种“最佳”的传输方式,但如果是通过本地网络,几乎任何方式都可以。如果您在长距离(我的意思是几千公里)或高延迟链路上进行传输,我不建议使用通用 ssh 进行大文件传输。

相关内容