我正在将Ubuntu服务器重新安装到rhel6服务器。我有一个很大的数据库。当我检查mysql数据目录大小时,它大约是354 GB。但是,我使用mysqldump命令转储了整个数据库。
重新安装机器后,我开始使用mysql命令恢复数据库。我三天前就开始了恢复过程。当我在这台新安装的机器上检查mysql数据目录时,它的大小只有31 GB。我感到困惑的是,mysql命令实际上是否正在还原数据库。我仍然看到命令被执行,并且进程是来自linux top命令的visibile。我还能做些什么来加速这个过程吗?
发布于 2014-06-24 23:07:30
如果您使用的是基本无害的表,则尽可能地增加innodb_buffer_pool_size (~80-90%的系统,假设没有其他东西,但mysqld确实在消耗ram)。不过,这需要重新启动mysqld。
在重新加载之前,您还可以设置innodb_flush_log_at_trx_commit=2以加快速度。这将禁止每次提交(在ACID中破坏D)刷新到磁盘,但对于恢复应该是很好的。如果在这个过程中出现了灾难性的故障,那么无论如何您都是从零开始的。一定要在还原后将其设置为1。
这可以在不跳转的情况下动态更改。
确保在cnf中设置了innodb_flush_method = O_DIRECT。这需要重新启动。
它是否被固定在顶部的CPU上?如果您有大量压缩表数据,这些数据本身就会变慢。除了得到一个更快的核心之外,没有什么可以做的。多核心不会帮助您在这里,因为加载是连续的无论如何。
如果您正在使用旋转磁盘,如果可能的话,请确保从不同的HDD集读取.sql源文件。类似地,在重新加载期间(除非您试图让重新加载复制),确保关闭二进制日志记录和常规日志记录。
如果您正在运行5.6,请确保不启用性能架构。
发布于 2014-06-24 22:29:14
这是预期的,因为从mysqldump恢复比使用备份花费的时间更长。
要加快进程,请考虑其他备份工具:
我会选择第一种选择。
发布于 2014-06-25 09:20:07
通常,mysqldump的备份时间与xtrabackup一样长,但在恢复时要慢得多。因为xtrabackup按块复制,而mysqldump导出的sql文件必须执行“一拜一”。
我确信使用某些方法可以提高导入速度,但仍然会花费您很长时间,特别是对于如此庞大的数据库。
因此,我确实建议您安装xtrabackup,执行完全备份,然后恢复到新服务器。
或者更简单的方法,因为您可以考虑做一个冷备份,关闭mysql服务器,将所有文件(包括ibdata1、ib_logfile*、mysql文件夹等)复制到新位置,如果它被更改,则使用新位置修改my.cnf。我还没试过,但没发现有什么问题。
第一条路绝对是最好的。
希望这是有用的!
https://dba.stackexchange.com/questions/68966
复制相似问题