我正在Ubuntu
将rhel6
服务器重新安装到服务器。我有一个非常庞大的数据库。当我检查mysql
数据目录大小时,它大约是354 GB。但是,我使用该mysqldump
命令转储了整个数据库。
重新安装机器后,我开始使用mysql
命令恢复数据库。我在 3 天前开始了恢复过程。当我检查mysql
这台新安装的机器中的数据目录时,大小仅为31 GB。如果mysql
命令实际上正在恢复数据库,我很困惑。我仍然看到命令正在执行,并且从 linuxtop
命令可以看到该过程。我还能做些什么来加快这个过程?
如果您主要使用 innodb 表,请尽可能大地增加 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,请确保未启用性能模式。
归档时间: |
|
查看次数: |
12985 次 |
最近记录: |