尝试还原大于10 GB的sql dump文件

时间:2013-11-01 01:53:05

标签: mysql sql sql-server xampp mysqldump

我正在尝试恢复13G大的sql转储文件。我首先在xampp中使用了phpAdmin,它说它的大小太大了。然后我使用大转储,仍然收到错误消息“我不能在xx.sql中寻找”。我在网上发现这意味着文件太大了。 然后我开始使用命令行。 mysql -u username -p database<位置/到/你/ dump.sql 似乎它正在工作,因为它要求输入密码,我直接按回车,因为我没有密码。 现在我可以看到“_”一直闪烁,我假设这意味着它正在工作。 BUt我无法检查以确定,而且已经花了一段时间。

有没有办法确保它正常工作?我真的很感谢你的帮助!! TJ

3 个答案:

答案 0 :(得分:7)

使用mysql命令行客户端恢复文件的另一种方法是这样的:

$ mysql -u username -p database 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2933685
--8<-- snip --8<--

mysql> source location/to/your/dump.sql 

source命令将读取转储文件并将其应用于服务器,就像<重定向操作符一样,但有两点不同:您将看到滚动的连续“x行受影响”消息,给你一些表明进展实际发生的迹象。与使用<重定向的方法不同,此方法的缺点是,如果转储文件中存在任何错误,命令行客户端将尝试继续运行,这并不总是您想要的。不过,这可能是一种可行的方法。

或者......现在的方式,如果您可以在流程列表中看到连接,请检查Sleep的值。如果该值始终为0,则表示正在进行某种活动。

答案 1 :(得分:0)

我恢复类似大小的文件

  1. 花了我4-5个小时,可能更多取决于你所拥有的键和限制的性质
  2. 您始终可以查看进程列表以查看其是否有效。
  3. tail -f mysql常规日志,并确保它记录任何查询。这是查看它是否正常工作的最简单方法。 一个警告,这会使所有事情变得更慢,减去100%+

答案 2 :(得分:0)

尝试这种技术

连接到远程MySql数据库后......

  • 生成查询以创建源数据库的表模式,过程和函数
  • 生成查询以查找除 - source DB
  • 的外键约束之外的所有表的所有索引
  • 生成查询以删除在步骤2中找到的所有索引
  • 生成查询以插入源数据库的所有数据
  • 生成查询以创建在步骤2中找到的所有索引
  • 按以上顺序将所有查询写入一个.sql文件,这是您的新MySql备份。使用LZ4压缩拉链。
  • 现在只需使用MySql的常规恢复实用程序从此文件恢复数据库。

参考:http://axiomnext.com/blog/how-to-restore-large-mysql-database-faster/