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

    五、使用 mysqlhotcopy 快速备份

    1. mysqlhotcopy 安装

    2. 语法和常用选项

    3. 实例备份

    4. 实例恢复

    六、备份策略

    待续。

    ---------- 本文结束 ----------

  • 相关阅读:
    Eclipse 安装插件
    java 之 Spring 框架(Java之负基础实战)
    tomcat 修改网站路径(Java之负基础实战)
    tomcat 修改编码(Java之负基础实战)
    tomcat 修改端口(Java之负基础实战)
    linux vi 操作
    解压文件--linux
    smarty用法
    thinkphp调试手段
    kindeditor上传文件的使用
  • 原文地址:https://www.cnblogs.com/liwei0526vip/p/6239045.html
Copyright © 2020-2023  润新知