如何使用mysqldump备份所有数据库信息?

3
我不仅需要“创建表”语句,还需要插入语句。我应该向mysqldump传递哪些标志?
此外,数据库相对较大(2-2.5G)。显然,我希望备份速度尽可能快。有哪些标志可能会有所帮助?
谢谢
3个回答

5
mysqldump命令默认会转储数据。只需发出mysqldump dbname > dump命令,即可生成包含模式和数据的转储文件。
为了加快转储速度,请使用--opt参数,它会打开一些选项,如表锁定、快速、扩展插入和字符集。如果您的数据库无法放入内存中,则使用--quick(也由--opt设置)是加速转储的好方法。如果在转储过程中不能锁定表格,请仅使用--quick。
如果您的磁盘速度较慢,请在写入磁盘之前压缩数据:
mysqldump --opt dbname | gzip - > dump

“单独使用”是什么意思?单独使用什么,--quick标志吗?我实际上无法承担锁定表的费用。 - Erik Sapir
是的,我指的是 --quick 标志:mysqldump --quick dbname | gzip - > dump - jmz
如果不锁定表,您会牺牲什么? - Jeff Erickson

1

默认情况下,插入语句将被转储。

如果您想要转储所有表,请明确指定数据库,否则请给出表名。

mysqldump [options] [db_name [tbl_name ...]]

为了获得空间,您可以使用标志


--compact

为了更快地处理这个,你可以使用

--quick

我认为所有这些信息都可以通过执行man mysqldump来获取。


请注意,--compact仅是--skip-add-drop-table、 --skip-add-locks、 --skip-comments、 --skip-disable-keys--skip-set-charset的简写形式。这将每个表仅保存恒定数量的行,并更改转储重新加载的方式。 - Unreason

0

你应该一定要阅读mysqldump手册页面,里面有许多选项需要注意(如何处理二进制日志、锁定表、二进制字段格式等)

之后运行mysqldump --help - 它会告诉你哪些选项默认开启或关闭。

最后,如果设置各种选项仍无法带来所需的性能,一些人建议设置复制并备份从服务器,但这属于硬件加速的范畴(获取更快的存储等...)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接