首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql数据库恢复需要很长时间。

mysql数据库恢复需要很长时间。
EN

Database Administration用户
提问于 2014-06-24 22:13:06
回答 3查看 15.5K关注 0票数 7

我正在将Ubuntu服务器重新安装到rhel6服务器。我有一个很大的数据库。当我检查mysql数据目录大小时,它大约是354 GB。但是,我使用mysqldump命令转储了整个数据库。

重新安装机器后,我开始使用mysql命令恢复数据库。我三天前就开始了恢复过程。当我在这台新安装的机器上检查mysql数据目录时,它的大小只有31 GB。我感到困惑的是,mysql命令实际上是否正在还原数据库。我仍然看到命令被执行,并且进程是来自linux top命令的visibile。我还能做些什么来加速这个过程吗?

EN

回答 3

Database Administration用户

回答已采纳

发布于 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,请确保不启用性能架构。

票数 8
EN

Database Administration用户

发布于 2014-06-24 22:29:14

这是预期的,因为从mysqldump恢复比使用备份花费的时间更长。

要加快进程,请考虑其他备份工具:

  1. 后援。InnoDB的非阻塞,几乎和文件复制一样快.采取二进制备份(=复制InnoDB表空间)。
  2. 我的笨蛋。接受逻辑备份,但可以在多个线程中完成,因此比mysqldump更快
  3. 我的备份。同样非常快,但需要LVM,在创建快照时会影响性能。

我会选择第一种选择。

票数 3
EN

Database Administration用户

发布于 2014-06-25 09:20:07

通常,mysqldump的备份时间与xtrabackup一样长,但在恢复时要慢得多。因为xtrabackup按块复制,而mysqldump导出的sql文件必须执行“一拜一”。

我确信使用某些方法可以提高导入速度,但仍然会花费您很长时间,特别是对于如此庞大的数据库。

因此,我确实建议您安装xtrabackup,执行完全备份,然后恢复到新服务器。

或者更简单的方法,因为您可以考虑做一个冷备份,关闭mysql服务器,将所有文件(包括ibdata1ib_logfile*、mysql文件夹等)复制到新位置,如果它被更改,则使用新位置修改my.cnf。我还没试过,但没发现有什么问题。

第一条路绝对是最好的。

希望这是有用的!

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/68966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档