开发者社区> thinkyoung> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

用 BigDump 工具导入超大 MySQL 数据库备份文件

简介: 用 BigDump 工具导入超大 MySQL 数据库备份文件    创建于 2010-07-01, 周四 00:00  作者 白建鹏 在《Joomla! 1.5 网站防黑9条戒律》这篇文章中,我们提到的第一条就是:及时、定期备份你的 Joomla! 网站。
+关注继续查看

用 BigDump 工具导入超大 MySQL 数据库备份文件

 创建于 2010-07-01, 周四 00:00
 作者 白建鹏

《Joomla! 1.5 网站防黑9条戒律》这篇文章中,我们提到的第一条就是:及时、定期备份你的 Joomla! 网站。我们也多次推荐使用Akeeba Backup (原名 JoomlaPack)这个备份工具。Akeeba Backup 自带的 kickstart.php 工具也能完成备份包的恢复(或者迁移安装)。不过,这是针对整站的恢复。假如我们只是要恢复一下数据库呢?

常用的 MySQL 数据库恢复工具(也能进行备份操作)是 phpMyAdmin,这是一个开源、免费的工具,大多数主机商(例如 Hawkhost)都会免费提供 。相信很多站长也用过 phpMyAdmin 来进行网站数据库的备份和恢复,确实很方便,并且有多国语言界面。不过,有一种情况可能你还没碰到,就是当你的数据库体积比较大时,例如 SQL 备份文件大于 2MB,甚至大于 10MB,这个时候如果你通过 phpMyAdmin 来进行数据库的恢复,就会出错,显示如下的提示:

在 phpMyAdmin 中导入超大 SQL 文件时报错、失败

这是因为你的 SQL 文件体积太大,超过了 phpMyAdmin 的处理能力,这种情况在网络速度比较慢的情况下尤为突出,例如站长在周末晚上8点这个网络拥挤的时段尝试使用 phpMyAdmin 来恢复大型 MySQL 数据库备份,就容易遇到这种问题。

很显然 phpMyAdmin 只适用于恢复比较小的 SQL 文件备份。对于超大 MySQL 数据库备份的恢复,你必须换一个专用的恢复工具,那就是:BigDump

BigDump 数据库导入工具简介

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

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

BigDump 数据库恢复工具用法演示

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

1、获取 BigDump 文件并设置

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

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

为 BigDump 设置目标数据库

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

$db_connection_charset = '';

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

$db_connection_charset = 'utf8';

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

在 BigDump 文件中设定数据库字符编码

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

2、上传 MySQL 数据库备份文件

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

3、启动 BigDump 工具

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

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

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

为 BigDump 选择要导入的 SQL 文件

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

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

4、运行 BigDump 导入功能

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

BigDump 正在导入 SQL 文件

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

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

BigDump 导入成功

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

Congratulations: End of file reached, assuming OK

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

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

使用 BigDump 数据库导入工具的注意事项

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

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

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

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

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

在 phpMyAdmin 中导出 SQL 文件时不能勾选扩展插入

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

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

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

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

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

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

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

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

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

7、我还有更奇怪的问题……

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

 下载
文件标题: BigDump(bigdump.php) 大型数据库 SQL 文件分段导入工具 v0.32b 英文版 (详情)
文件类型: zip
版本: 0.32b
文件大小: 11 Kb
下载次数: 5843

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL 5.7安装图文教程
本文目录 1. 背景 2. 安装流程 2.1 同意安装协议 2.2 选择安装类型 2.3 选择产品及特征 2.4 检查必备条件 2.5 安装 2.6 开始配置 2.7 集群配置 2.8 数据库类型和网络配置 2.9 设置ROOT账户密码 2.10 mysql安装为windows服务 2.11 插件和拓展 2.12 应用配置 2.13 搞定
88 0
MySQL 超新手入门(2) 资料库概论与 MySQL 安装
储存与管理资料一直是资讯应用上最基本、也是最常见的技术。在还没有使用电脑来管理你的资料时,你可能会使用这样的方式来保存世界上所有的国家资料:
111 0
腾讯云 ubuntu服务器mysql安装和外网访问
1 腾讯云 购买ubuntu 默认账户是ubuntu(由于winscp 使用ubuntu没有权限写文件)
153 0
Linux环境下Mysql++安装及操作深入详解
题记: 之前项目中使用OTL连接操作Oracle数据库,对于Mysql有用,但没有总结。目前常用的两种连接方式:
188 0
云服务器安装mysql小白操作
多数新人在使用云服务器之前对此都是一无所知的,所以再次分享一篇详细的使用云服务器mysql的教程
424 0
小白使用ECS安装mysql远程连接的心酸历程
在使用阿里云ECS服务器中遇到的心酸事件!
246 0
Windows环境下安装及配置MySQL
本文主要讲解在Windows环境下MySQL的安装、配置
3889 0
关于windows server 2019安装mysql 8.0 版本报错服务没有及时响应启动或控制请求
windows server 2019安装mysql 8.0 版本报错服务没有及时响应启动或控制请求
350 0
MySQL Xtrabackup 安装、备份、恢复
转载:https://www.cnblogs.com/zhoujinyi/p/4088866.html 一 简介: Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
1200 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL
立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL
立即下载