我需要将 MySQL 数据库移动到新位置。 根据workbench,数据库大小只有200MB,但有些表有数百万行,报告索引和数GB的数据长度。结果,EXPORT 的大小为 15GB,导出 DB 并将其复制到新位置需要花费数小时,再次导入需要花费更多时间。在此过程中网站需要离线,这样数据库才不会发生变化。第一次尝试超过 36 小时,导入失败。 这太长了,有没有比可怕的导入/导出更好/更快的方法呢?我习惯于使用 MSSQL,它可以非常快速地完成这类事情,使数据库脱机,将文件复制到新位置,安装数据库,完成。这需要几分钟,而且非常简单。一直不明白为什么 MySQL 让这变得如此困难。
最佳答案
Percona XtraBackup 是一个有用的工具,如果您有 InnoDB 表,innobackupex
将有助于进行热备份和恢复。
同时配置 InnoDB File-Per-Table备份将类似于 MyISAM 表。
如果你有 MyISAM 表,过程是:
- 停止服务器源服务器。
- 复制(并压缩)您的 database folder在安全的地方,例如:
/var/lib/mysql/your_database
。 - 停止MySQL服务器后,将文件恢复到目标服务器的同一个地方。
- 启动目标服务器。
两台服务器的版本必须有最小的差异,因为 MyISAM 有自己的格式版本。
关于MySQL 备份/恢复问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38684499/