10G MySql 数据库导入停滞且无法完成

10G MySql 数据库导入停滞且无法完成

我正在尝试将 10 GB 数据库导入到本地安装的 mysql。我使用的是 Ubuntu 11.10。我使用命令行来执行此操作。

mysql -u root -p database < database.backup.sql

我让它运行了 2 天,最后停了下来,只是为了看看发生了什么,我只得到了一些表。我需要一个更好的方法来做到这一点,但我没有找到任何不同于命令行的方法。

有没有其他方法可以做到这一点,而不会导致服务器超时(或无论它在做什么)?

答案1

登录到另一个 mysql 窗口并输入,您将看到它“卡住”的地方......

SHOW PROCESSLIST;

使用这些信息,您将能够调整您的 my.cnf 并使导入速度更快。

另外,每次启动 mysqld 时,还要查看 mysqld.log,确保那里的所有内容都是干净的,这也会提示您是否出现了问题(例如,InnoDB 损坏)。

答案2

如果不是全部都在一个表中,您可能需要将其拆分成多个文件并将每个文件加载到单独的客户端中(这样速度会更快,并且更容易隔离错误)。

答案3

根据文件的结构以及数据库结构、引擎类型等,您可能会得到巨大的将导入包装在一个(或多个)交易中会受益。

我想到了一个特定的 Web 应用程序。安装程序只是执行了一个 .sql 脚本,其中包含几千个插入。这需要大约 2 分钟才能运行。一旦我将其包装在一个事务中,它就会在不到一秒钟的时间内执行完毕。

相关内容