我安装了MySQL数据库服务器Windows Server
。
其中存在多个数据库,database A
包含一个名为' tlog'的大表,大小约为220gb。
我想将database A
移到另一台服务器进行备份。
我知道我可以使用SQL Dump或使用MySQL Workbench / SQLyog来进行表格复制。
但由于服务器中的磁盘存储空间有限(小于50GB),因此无法进行SQL转储。
服务器正在服务于其他工作,所以基本上是CPU& RAM也是有限的。结果,复制表没有用完CPU&无法使用RAM。
有没有其他方法可以将巨大的database A
移到另一台服务器上?
提前致谢。
答案 0 :(得分:2)
你有几种方法:
同时转储和压缩:mysqldump ... | gzip > blah.sql.gz
这种方法很好,因为你的数据库可能会小于50GB;因为数据库转储应该是ASCII;然后你就可以动态压缩它。
您可以使用从属复制;这种方法需要转储数据。
您也可以使用xtrabackup
。
您可以关闭数据库,并rsync
数据目录。
注意:您实际上不必关闭数据库;但是你可以做多个rsync
s;并且最终没有任何改变(如果数据库繁忙则不太可能;在慢速时间必须这样做);这意味着数据库将同步。
我必须使用相当大的PostgreSQL数据库(1TB +)来执行此方法。需要几个rsync
s:但是,嘿;这是0停机时间的成本。
如果你在虚拟环境中,你可以:
如果您担心在转储或转移过程中消耗资源,可以使用ionice
和renice
来限制转储/转移的优先级。