浅谈MySQL数据库的备份与恢复

所属分类: 数据库 / Mysql 阅读数: 1943
收藏 0 赞 0 分享

一、MySQL 常见的备份方式

1. 直接拷贝数据库文件(物理拷贝)

2. 使用 mysqldump 工具备份

3. 使用 mysqlhotcopy 工具备份

4. 使用 mysql 的主从同步复制,实现数据实时同步备份

二、MySQL 物理数据文件结构介绍

1. 日志文件

错误日志 err log
二进制日志 binary log
更新日志 update log
查询日志 query log
慢查询日志 slow query log
innodb 的 redo 日志

2. 数据文件

>>>对于 myisam 来说:

表结构信息:.frm
数据信息:.myd
数据索引信息;.myi
>>>对于 Innodb 来说:

独享表空间:.ibd
共享表空间:.ibdata

3. 系统文件

配置文件:my.cnf
进程文件:xxx.pid
socket文件:xxx.sock

4. replication 文件

master.info:存储在 slave 端目录下,关于 master 和 slave 相关信息
relay log:存储 I/O 进程从 master 读取的 bin-log 信息,然后由 slave 端的 SQL 线程从该 binary log 中读取解析过的日志信息,转化成 slave 所能执行的 query 语句
index:则是存放 binary log 的路径,也就是目录文件

三、使用 mysqldump 备份与恢复

1. 备份原理

mysqldump 备份原理比较简单,先查出需要备份的表结构,在文本文件中生成一个 create 语句;然后将表中的所有数据记录转换成一条 insert 语句;通过这些语句就能够创建表并插入数据。

2. 备份一个数据库

基本语法:

>>> mysqldump -u username -p dbname table1 table2 ... > BackupName.sql

实例说明:

mysqldump -u root -p test person > /tmp/backup.sql

3. 备份多个数据库

基本语法:

mysqldump -u username -p --databases dbname2 dbname2 > BackupName.sql

实例说明:

mysqldump -u root -p --databases test mysql > /tmp/backup.sql

4. 备份所有数据库

基本语法:

mysqldump -u username -p -all-databases > BackupName.sql

实例说明:

mysqldump -u -root -p -all-databases > /tmp/all.sql

5. 数据恢复

基本语法:

mysql -u root -p [dbname] < backup.sql

实例说明:

mysql -u root -p < /tmp/backup.sql

四、直接复制数据库目录

MySQL 有一种非常简单的备份方法,就是将 MySQL 中的数据库文件直接复制出来。这是最简单,速度最快的方法。不过在此之前,要先将服务器停止,这样才可以保证在复制期间数据库的数据不会发生变化。如果在复制数据库的过程中还有数据写入,就会造成数据不一致。这种情况在开发环境可以,但是在生产环境中很难允许备份服务器。

注意:这种方法不适用于 InnoDB 存储引擎的表,而对于 MyISAM 存储引擎的表很方便。同时,还原时 MySQL 的版本最好相同。

更多精彩内容其他人还在看

mysql快速获得库中无主键的表实例代码

这篇文章主要给大家介绍了关于mysql如何快速获得库中无主键的表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

MySQL 8.0 新特性之哈希连接(Hash Join)

MySQL 开发组于 2019 年 10 月 14 日 正式发布了 MySQL 8.0.18 GA 版本,带来了一些新特性和增强功能。这篇文章主要介绍了MySQL 8.0 新特性之哈希连接(Hash Join),需要的朋友可以参考下
收藏 0 赞 0 分享

Mysql 8.0.18 hash join测试(推荐)

这篇文章给大家介绍Mysql 8.0.18 hash join测试的相关知识,本文通过实例代码讲解,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

MySQL中sleep函数的特殊现象示例详解

这篇文章主要给大家介绍了关于MySQL中sleep函数特殊现象的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

MySQL数据库中null的知识点总结

在本篇文章里小编给大家整理的是关于MySQL数据库null的知识点以及相关实例,需要的朋友们可以学习下。
收藏 0 赞 0 分享

mysql 8.0.18 安装配置方法图文教程

这篇文章主要为大家详细介绍了mysql 8.0.18 安装配置方法图文教程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

mysql-5.7.28 在Linux下的安装教程图解

这篇文章主要介绍了mysql-5.7.28 的Linux安装,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

mysql创建数据库,添加用户,用户授权实操方法

在本篇文章里小编给大家整理的是关于mysql创建数据库,添加用户,用户授权实操方法相关知识点,需要的朋友们学习下。
收藏 0 赞 0 分享

mysql/Java服务端对emoji的支持与问题解决方法详解

这篇文章主要介绍了mysql/Java服务端对emoji的支持与问题解决方法,结合实例形式分析了mysql/Java服务端对emoji字符集存储及支持问题解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

mysql 8.0.18.zip安装配置方法图文教程(windows 64位)

这篇文章主要为大家详细介绍了mysql 8.0.18.zip安装配置方法图文教程,以及卸载以前数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多