从有限的资源服务器移动大型MySQL数据库

时间:2017-02-20 01:23:02

标签: mysql database-backups

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

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

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

  • 但由于服务器中的磁盘存储空间有限(小于50GB),因此无法进行SQL转储。

  • 服务器正在服务于其他工作,所以基本上是CPU& RAM也是有限的。结果,复制表没有用完CPU&无法使用RAM。

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

你有几种方法:

方法1

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

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

方法2

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

方法3

您也可以使用xtrabackup

方法4

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

注意:您实际上不必关闭数据库;但是你可以做多个rsync s;并且最终没有任何改变(如果数据库繁忙则不太可能;在慢速时间必须这样做);这意味着数据库将同步。

我必须使用相当大的PostgreSQL数据库(1TB +)来执行此方法。需要几个rsync s:但是,嘿;这是0停机时间的成本。

方法5

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

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

如果您担心在转储或转移过程中消耗资源,可以使用ionicerenice来限制转储/转移的优先级。