mysql dump 导入 大_BigDump:导入超大mysql数据库文件工具

BigDump是一个PHP工具,用于分段导入大型.sql备份文件到MySQL数据库。它通过切割文件并逐段导入,避免因文件过大导致的导入失败。用户需设置数据库连接参数,然后上传.sql文件到服务器,通过BigDump启动导入。导入过程中需确保目标数据库为空,且SQL文件不含Extended Inserts。遇到超时或服务器超载问题,可调整BigDump参数。
摘要由CSDN通过智能技术生成

BigDump 是由德国人 Alexey Ozerov 用 PHP 语言开发的一个工具脚本,它只有一个文件,名为 bigdump.php(你可以改名运行)。这个文件是独立运行的,因此与你的网站核心程序无关,不管是 WordPress,Drupal 还是 Joomla,只要你使用的是 MySQL 数据库,都可以用 BigDump 来恢复超大的 .sql 格式备份文件。

BigDump 工作的原理也很简单:切割分段导入。它在读取 SQL 文件时,每次只读取一小部分,将其导入,然后重新开始一次恢复进程,再读取一小部分…… 周而复始,直到将整个 SQL 文件全部导入。

使用方法

假设我们已经有了一个 MySQL 数据库的备份文件,名为 gate2.sql,文件大小约 150MB(这么大的文件别指望通过 phpMyAdmin 来恢复了)。数据库字符编码为 utf-8。我们演示一下如何通过 bigdump.php 工具将这个备份文件恢复到在线数据库中去。

获取 BigDump 文件并设置

我们下载 BidDump 工具并解压,得到一个 bigdump.php 文件。毫无疑问,bigdump.php 文件需要设置一些参数,否则它怎么知道要导入的数据库的连接帐号?

用文本编辑器打开 bigdump.php 文件,在大约第 38 行开始,我们设置要导入的 MySQL 数据库连接参数。如下图所示:

1f64c35a415966fcbb6595928f192a1b.png

一般来说,设置好这几项就可以了。对于某些特殊数据库,还需要在下面第66行左右设置数据库字符编码。bigdump.php 文件中没有预设这个参数,原文是:

$db_connection_charset= '';

如果你的数据库是 UTF-8 编码,那么此处就要修改为:

$db_connection_charset= 'utf8';

注意那个连字符要去掉。如下图所示:

74b516b5005d051722cdf8ada7b5eaa9.png

接下来将设置好的 bigdump.php 文件上传到 Joomla 网站上,推荐上传到 /tmp 这个临时目录。

上传 MySQL 数据库备份文件

现在需要将数据库备份文件上传到 bigdump.php 所在的 /tmp 目录中。考虑到文件较大,我们通过FTP 软件 FileZilla 上传zip 格式的文件,然后借助 Joomla 后台安装的 eXtplorer 资源管理器组件将其远程解压,在 /tmp 目录中得到 gate2.sql 文件。

启动 BigDump 工具

在浏览器地址栏输入 bigdump.php 所在 URL 并回车,运行这个文件。例如本次演示是在本地测试服务器上进行,那么对应的运行网址是:

http://localhost/gate/tmp/bigdump.php

如果你输入的 URL 正确,就应该看到如下画面:

29fdefe9d0e3f3332a1b423433fa58e5.png

这就表示 BigDump 工具已经成功启动,它在启动时就自动扫描所在目录中的全部文件和子目录。如果找到 SQL 格式或者 gzip/zip 格式文件,就假设这是数据库文件,在这些文件后面,就会显示出相应的操作链接。例如在上图中,它探测到所在目录中有一个 gate2.sql 文件,那么针对该文件就在表格右侧同一行中显示了两条操作链接,分别是“Start Import”(开始导入)和“Delete file”(删除文件)。上图的表格中也显示了 SQL 文件的大小,可以看到这个备份文件接近 150MB。

在上图中,还可以看到一个文件上传功能,点击那个“浏览”按钮,你就可以上传一个 SQL 文件(或其压缩包)来进行导入。但是我们不推荐使用此功能。对于大型文件,FTP 上传是最佳选择。

运行 BigDump 导入功能

点击上图中的“Start Import”链接,就看到如下画面:

9f52d90351fa5512780ebb6f7baa9baf.png

上面这个截图是导入开始一段时间之后所截取的,可以看出 BigDump 正在顺利进行 SQL 文件的导入。表格中不仅显示了文件大小,还显示了已经导入的字节数及总体进度。

经过一段时间后(大约20分钟),这个 150MB 大小的 SQL 文件终于导入结束,看到如下画面:

ec44a409b34305f1cad38efcb1dfef4a.png

原来显示进度条的地方,现在显示了一条消息:

Congratulations: End of file reached, assuming OK

意思是说:已经到达文件末尾,想必应该成功了。看到这条消息,你就可以完全放心了。BigDump 已经成功地将你的 SQL 备份文件导入到你所指定的 MySQL 数据库里面了。

注意:数据库恢复成功结束后,不要忘记删除 bigdump.php 备份工具和你的 SQL 文件!

注意事项

在开始导入之前,目标数据库必须清空

如果目标数据库里面含有记录,那么 BigDump 就无法导入,会报错停止。因此请在开始运行 bigdump.php 文件之前,将目标数据库清空(最好删除全部内容)。

所用的 SQL 文件不能含有 Extended Inserts

或许很多第一次使用 BigDump 的用户都会遭遇这个问题。这是因为 phpMyAdmin 在导出数据库时,已经默认勾选了“使用扩展插入”。

这里的“扩展插入”就是 Extended Inserts,而 BigDump 是不能处理带有 Extended Inserts 的 SQL 文件的。所以,在你制作数据库备份时,必须在 phpMyAdmin 的面板上去掉“扩展插入”的勾选。如下图所示:

97c51911f0b3f1d64a9f0ea927aae03c.png

如何使 Akeeba Backup 与 BigDump 配合工作?

我们前面推荐大家使用 Akeeba Backup 来制作备份文件。那么,可否使用 Akeeba Backup 来制作数据库备份,然后通过 BigDump 导入,当然是可以的。不过,这里面需要一些特殊技巧。我们将在 Akeeba Backup 使用详解 这篇教程中介绍。

使用 BigDump 导入仍然发生超时错误

这种问题多见于配置比较低的服务器,或者服务器繁忙时段。那么,你可以尝试修改 bigdump.php 文件中的“Other settings (optional)” 这部分的 $linespersession 参数,将默认值 3000 修改得更小一些。(不过,我认为你还是换一个更好的服务器吧,例如 Hawkhost)。

发生 MySQL 服务器超载怎么办?

如果服务器性能较差,在运行 bigdump.php 过程中可能会发生 MySQL 服务器超载(overrun)故障。你可以修改 bigdump.php 文件中的 $delaypersession 参数来解决。该参数让 bigdump.php 文件在结束一个片段的导入之后,休息一段时间(你设定的数值就是暂停的时间,单位:毫秒),然后再开始下一个片段的导入,这样服务器就不会太累了。

直接把 .sql 格式文件交给 BigDump

在本次演示中,我们先将 zip 格式的备份包上传到服务器上,然后又将它解压成 .sql 格式的文件,再通过 BigDump 来导入。为什么不直接用 BigDump 来导入压缩格式的备份文件?

没错,BigDump 具有导入压缩格式 SQL 备份文件(zip/gzip)的能力,但是在处理压缩文件时,它需要先在临时目录中将其解压,再读取。请注意:这个解压并不是一次性的,而是每导入一个小片段,就要将整个压缩包重新解压一次。因此,直接导入压缩格式文件,反而使 bigdump.php 运行变慢。

我还有更奇怪的问题……

一般来说,运行 bigdump.php 导入一个 SQL 备份文件非常容易。如果你参照上述注意事项及操作过程,仍然不能顺利完成数据库备份文件的导入,那么请到BigDump 官方网站阅读更多 FAQ,查找原因。

下载地址

BigDump ver. 0.32b (beta) (10 KB ZIP archive)

383a13cfb1f9b4301ad23969e072904c.png

来源:本文由思享SEO博客原创撰写,欢迎分享本文,转载请保留出处和链接!

分享:

BigDump 的全称是 BigDump Staggered MySQL Dump Importer,它不是 Joomla! 的标准扩展,而是一个独立运行的 web 界面的工具软件。 教程:http://bbs.pinluo.com/thread-7957-1-1.html 在了解 BigDump 的功能之前,请先想像下面一幅景象:你的网站 MySQL 数据库体积大概有 500MB,甚至更大,即使将导出的 SQL 文件用 tar.gz 格式压缩,最终文件体积也超过了 PHP 所允许的 64MB 最大上传值。如果你想用这样一个庞大的 SQL 文件,通过 web 界面访问 phpMyAdmin 来导入数据库,恐怕很难成功(除非你自己管理服务器,拥有 MySQL 的 shell 访问权限)。 对于普通用户来说,我认为使用 BigDump 工具完全能解决上述问题。BigDump 的工作原理是:将巨大的 SQL 文件分段多次导入,每完成一段就重新启动一次导入会话,因此不会造成中断、失败。 理论上讲,BigDump 可以针对任何一个 MySQL 数据库工作。 BigDump 数据库导入工具用法: 下载后得到一个 zip 压缩文件,解压后里面有一个 php 文件; 将压缩包里面的 bigdump.php 上传到 Joomla! 网站的 /tmp 目录下; 将你的 MySQL 数据库文件(.sql 格式或 .tar.gz 压缩包)也上传与 bigdump.php 在同一个目录下; 通过浏览器访问 bigdump.php 文件,就会看到所在目录下的文件列表。从列表中找到你的 SQL 文件,该文件后面会出现“Start Import”链接,点击此链接就开始了自动导入过程。 bigdump 会切换到新的页面,显示导入过程进度。完成后删除 bigdump 工具和刚才上传的 SQL 文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值