我有一个安装了MySQL数据库服务器的Windows Server
其中有多个数据库,database A包含一个名为“ tlog”的巨大表,大小约为220gb。

我想将database A移至另一台服务器以进行备份。

我知道我可以执行SQL Dump或使用MySQL Workbench / SQLyog进行表复制。


但是由于服务器中的磁盘存储空间有限(小于50GB),因此无法进行SQL Dump。
服务器正在处理其他工作,因此基本上CPU和RAM也受到限制。因此,无法复制没有占用CPU和RAM的表。


还有其他方法可以将巨大的database A移动到另一台服务器吗?

提前致谢。

最佳答案

您有几种方法:

方法1

同时转储和压缩:mysqldump ... | gzip > blah.sql.gz

这种方法很好,因为您的数据库可能会少于50GB。因为数据库转储应为ASCII;然后您就可以动态压缩它。

方法二

您可以使用从属复制;此方法将需要转储数据。

方法3

您也可以使用xtrabackup

方法4

您可以关闭数据库,然后关闭rsync数据目录。

注意:实际上,您不必关闭数据库。但是,您可以执行多个rsync;最终什么都不会改变(如果数据库繁忙则不太可能;必须在缓慢的时间内完成);这意味着数据库将已经同步。

我必须对相当大的PostgreSQL数据库(1TB +)执行此方法。这需要几个rsync:但是,嘿!停机时间为零。

方法5

如果您在虚拟环境中,则可以:


克隆磁盘映像。
如果您使用的是AWS,则可以创建AMI。
您可以添加另一个磁盘并仅在本地同步;然后分离磁盘,然后重新连接到新的VM。


如果您担心在转储或传输期间消耗资源,可以使用ionicerenice限制转储/传输的优先级。

10-04 12:22
查看更多