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

 更新时间:2017年01月01日 20:11:42   投稿:hebedich  
MYSQL数据库的备份、恢复等是每一位信息管理人员应必备的能力,因此掌握MYSQL数据库管理的技巧会使您的工作事半功倍,这里我们来简单总结下。

一、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 的版本最好相同。

相关文章

  • 在Linux环境下mysql的root密码忘记解决方法(三种)

    在Linux环境下mysql的root密码忘记解决方法(三种)

    这篇文章主要介绍了在Linux环境下mysql的root密码忘记解决方法,详细的介绍了3种解决办法,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • CentOS 7.4 64位安装配置MySQL8.0的详细步骤

    CentOS 7.4 64位安装配置MySQL8.0的详细步骤

    本文分步骤给大家介绍了CentOS 7.4 64位安装配置MySQL8.0 的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • MySQL中where 1=1方法的使用及改进

    MySQL中where 1=1方法的使用及改进

    这篇文章主要介绍了MySQL中where 1=1方法的使用及改进,文章主要通对where 1 = 1的使用及改进展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • MySql使用mysqldump 导入与导出方法总结

    MySql使用mysqldump 导入与导出方法总结

    这篇文章主要介绍了MySql使用mysqldump 导入与导出方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Linux下Mysql5.7.19卸载方法

    Linux下Mysql5.7.19卸载方法

    在卸载mysql之前需要先查找下以前是否安装过mysql,具体查找命令在本文有介绍,本文重点给大家介绍Linux下Mysql5.7.19卸载方法,需要的朋友参考下吧
    2017-08-08
  • MySQL 查询速度慢的原因

    MySQL 查询速度慢的原因

    高性能MySQL需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再合适,也是无法实现高性能的。
    2021-05-05
  • 手动管理MySQL8.0中的Undo表空间的使用

    手动管理MySQL8.0中的Undo表空间的使用

    本文主要介绍了MySQL 8.0中手动管理Undo表空间,包括创建、配置、使用和维护这些表空间的具体步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • Mysql索引结合explain分析示例

    Mysql索引结合explain分析示例

    本文主要介绍了Mysql索引结合explain分析示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • MySQL5.1忘记root密码的解决办法(亲测)

    MySQL5.1忘记root密码的解决办法(亲测)

    这篇文章主要介绍了MySQL5.1忘记root密码的解决办法(亲测)的相关资料,需要的朋友可以参考下
    2016-01-01
  • MySQL Workbench操作图文详解(史上最细)

    MySQL Workbench操作图文详解(史上最细)

    Workbench是MySQL最近释放的可视数据库设计工具,这个工具是设计 MySQL数据库的专用工具,下面这篇文章主要给大家介绍了关于MySQL Workbench操作的相关资料,需要的朋友可以参考下
    2023-03-03

最新评论