MySQL利用,mysqldump实现备份与恢复的方法

  介绍

这篇文章运用简单易懂的例子给大家介绍MySQL利用,mysqldump实现备份与恢复的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<>强冷备份:
<代码>停止服务进行备份,即停止数据库的写入

<>强热备份:
<代码>不停止服务进行备份(在线)

MySQL的MyIsam引擎只支持冷备份,InnoDB支持热备份,原因:

InnoDB引擎是事务性存储引擎,每一条语句都会写日志,并且每一条语句在日志里面都有时间点,那么在备份的时候,MySQL可以根据这个日志来进行重做和撤销,将备份的时候没有提交的事务进行回滚,已经提交了的进行重做。但是MyIsam不行,MyIsam是没有日志的,为了保证一致性,只能停机或者锁表进行备份。

InnoDB不支持直接复制整个数据库目录和使用mysqlhotcopy工具进行物理备份:

1,直接复制整个数据库目录
因为MySQL表保存为文件方式,所以可以直接复制MySQL数据库的存储目录以及文件进行备份.MYSQL的数据库目录位置不一定相同,在Windows平台下,MYSQL5.6存放数据库的目录通常默认为MySQL ~ \ \ 5.6 \ MySQL服务器数据,或其他用户自定义的目录。这种方法对InnoDB存储引擎的表不适用。使用这种方法备份的数据最好还原到相同版本的服务器中,不同的版本可能不兼容。在恢复的时候,可以直接复制备份文件到MySQL数据目录下实现还原。通过这种方式还原时,必须保证备份数据的数据库和待还原的数据库服务器的主版本号相同。而且这种方式只对MyIsam引擎有效,对于InnoDB引擎的表不可用。执行还原以前关闭MySQL服务,将备份的文件或目录覆盖MySQL的数据目录,启动MySQL服务。

2,使用mysqlhotcopy工具快速备份
mysqlhotcopy是一个perl脚本,最初由Tim Bunce编写并提供。他使用锁表,冲表和cp或scp来快速备份数据库。他是备份数据库或单个表的最快途径,但他只能运行在数据库目录所在机器上,并且只能备份MyIsam类型的表。

, mysqldump可产生两种类型的输出文件,取决于是否选用-标签=dir_name选项。

不使用-标签=dir_name选项,mysqldump产生的数据文件是纯文本的SQL文件,又创建(数据库、表,存储路径等)语句和插入(记录)语句组成。输出结果以一个文件保存,可以用MySQL命令去恢复备份文件。

使用-标签=dir_name选项,mysqldump对于每一个需备份的数据表产生两个输出文件:一个是带分隔符的文本文件,备份的数据表中的每行存储为文本中的一行,以“表名。txt”保存;另一个输出文件为数据表的CREATE TABLE语句,以“表名. sql”保存。

【命令】<代码> shell>代码,mysqldump -

 MySQL利用,mysqldump实现备份与恢复的方法”> <br/> </p> <p>——所有数据库表示备份系统中所有数据库,使用——数据库参数之后,必须指定至少一个数据库的名称,多个数据库名称之间用空格隔开</p> <p>常用的选项</p> <p>——-add-drop-table <br/>这个选项将会在每一个表的前面加上删除表如果存在语句,这样可以保证导回MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除</p> <p>——锁<br/>这个选项会在插入语句中捆上一个锁表和释放表语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作</p> <p>——标签<br/>这个选项将会创建两个文件,一个是带分隔符的文本文件,备份的数据表中的每行存储为文本中的一行,以“表名。txt”保存;另一个输出文件为数据表的CREATE TABLE语句,以“表名。sql”保存。</p> <p>——快速或者- - - - - - - opt <br/>如果你未使用,快速或者- - - - - - - opt选项,那么,mysqldump将在转储结果之前把全部内容载入到内存中。这在你转储大数据量的数据库时将会有些问题。该选项默认是打开的,但可以使用,-skip-opt来关闭它。</p> <p>——-skip-comments <br/>使用-skip-comments可以去掉导出文件中的注释语句</p> <p>——紧凑<br/>使用,紧凑选项可以只输出最重要的语句,而不输出注释及删除表语句等等</p> <p> </p> <p>如果备份文件名。sql没有指定所放置的路径,则默认放在MySQL ~ \ \ MySQL服务器5.6 \ bin目录下。</p> <p>指定数据备份路径:<br/> <代码>,mysqldump - h主机名- u用户名- p -所有数据库比;C: \备份文件名。sql代码</> </p> <p>调用,mysqldump带有——所有数据库选项备份所有的数据库<br/> <代码>,mysqldump - h主机名- u用户名- p -所有数据库比;C: \备份文件名。sql代码<h2 class=MySQL利用,mysqldump实现备份与恢复的方法