繁体   English   中英

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

[英]try to restore a sql dump file larger than 10 GB

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

有没有办法确保它有效? 我真的很感谢你的帮助!! TJ

使用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命令将读取转储文件并将其应用于服务器,就像< redirection operator一样,但有两点不同:您将看到连续的“x行受影响”消息滚动,为您提供进度实际发生的一些指示。 这种方法的缺点是,与使用<重定向的方法不同,如果转储文件中存在任何错误,命令行客户端将尝试继续运行,这并不总是您想要的。 不过,这可能是一种可行的方法。

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

我恢复类似大小的文件

  1. 花了我4-5个小时,可能更多取决于你拥有的键和约束的性质
  2. 您始终可以检查进程列表以查看它是否有效。
  3. tail -f mysql通用日志,并确保它记录任何查询。 这是查看它是否正常工作的最简单方法。 需要注意的是,这会让所有事情变得更加缓慢,达到100%+

尝试这种技术

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM