源服务器:1张表 - InnoDB -> 700GB - 15亿条记录(可用磁盘空间:200GB)
目标服务器位于同一网络中。
目标服务器将有大量可用空间,源服务器只有 200GB 可用空间。
1 - 该表有 15 亿条记录,因此逐行查询并不是最好的方法。
2 - 我目前发现的唯一可行的方法可能是复制 IBD 文件并尝试使用 TABLESPACE 恢复它,根据此链接中的说明: https://community.spiceworks.com/t/recover-mysql-来自-frm-and-ibd-files 的数据库/1014394
使用 MariaBackup,如果我有可用空间,我就可以将文件保存在源位置。不幸的是,不可能通过网络将文件通过 MariaBackup 直接发送到源服务器,对吗?
除了这两种之外还有什么更好的导出方式吗?
多谢。=)
您可以将转储直接从一台主机流式传输到另一台主机,磁盘上根本没有临时文件:
假设带宽较高,请在目标服务器上执行以下操作:
(如果带宽较低,则按照 Kondybas 的建议进行压缩/解压缩可能比不使用 zip 时快 3 倍。)
当然,在 Linux/UNIX 中,您可以从目标系统挂载网络文件系统 - 比如说,您的数据库位于src上,并且您想要复制到tgt。在linux中,您可以使用NFS(在tgt上安装 NFS 服务器,在src上安装 NFS 客户端)并执行以下操作:
例如,参见网络文件系统(NFS) ——我相信这也适用于 MacOS。在 Windows 中,您具有映射网络驱动器功能,该功能也适用于 Linux,但设置起来有些困难。
而且,如果您在云中,您可以将一个新的、更大的磁盘连接到源,转储数据,将其分离并将其连接到目标。这通常比通过网络复制要快。