zoukankan      html  css  js  c++  java
  • mysql

     相关术语:

    全量备份(full backup)

    全量备份也叫完全备份,说白了,全量备份就是对某个时间点的所有数据进行一个完全的备份,对应时间点的所有数据都被包含在完全备份中。

    差异备份(Differential Backup)

    差异备份也叫差量备份,什么是差异备份呢?"差异备份"是对上一次"全量备份"以后变化的数据的备份,比如,这周日2点对数据库进行了"全量备份",当下周一对数据库做差异备份时,将会备份从周日2点以后到周一差异备份时期间的所有变化的数据,如果下周二对数据库进行差异备份,则会备份从周日2点以后到周二差异备份时期间的所有变化的数据,同理,如果下周三对数据库进行差异备份,下周三的差异备份将会包含周日2点以后到周三差异备份之时期间的所有变化的数据,聪明如你一定想到了,如果只在周日2点做了一次完全备份,之后再也没有进行过完全备份,都是通过差异备份的方式进行备份,那么当我们需要通过备份将数据还原到最近的时间点时,只要拥有周日的完全备份与最近一次的差异备份即可,中间的差异备份是不需要的。说白了,每次差异备份都是针对上一次"完全备份"之后的变化数据进行的。示意图如下:

    增量备份(Incremental Backup )

    什么是增量备份呢?"增量备份"是对上一次"备份"以后变化的数据的备份。细心如你一定发现了,"差量备份"与"增量备份"唯一的区别就是备份的"起始参考点"不同,"差异备份"的起始点是最近一次的"全量备份","增量备份"的起始点是最近的上一次的"备份",不管上一次"备份"是"全量备份"、"差异备份" 还是 "增量备份"。如果进行增量备份,备份的数据就是上一次备份以后产生变化的数据。仍然以周日备份的场景进行示意,增量备份的示意图如下。

    mysql/mariadb知识点总结(26):数据库备份相关的基础知识

    时间点恢复

    其实不管是全量备份,还是差异备份,或者是增量备份,都不能解决另外一个问题,这个问题就是时间点恢复,那么什么是时间点恢复呢?我们继续聊。

    假设,周日2点我们进行了全量备份,我们想要在下周一2点进行第二次备份,但是如果在周一2点之前,数据库崩溃了,需要还原,我们该怎么办呢?如果只依靠周日2点的备份进行还原,那么我们最多只能将数据恢复到周日2点时的样子,但是周日2点以后的所有数据变化都会丢失,因为我们并没有来得及对2点以后的数据进行备份,我们该怎样解决这个问题呢?没错,我们可以通过二进制日志解决这个问题。

    因为所有数据变化都会被记录到二进制日志中,所以,我们可以先通过备份将数据还原到周日2点,然后再通过二进制日志,将2点以后的操作"重放"一遍,这样,数据就恢复到了崩溃之前的样子,这就是时间点恢复的概念,也就是说,在实际的还原数据的工作中,我们如果想要完整的还原数据,往往需要数据备份文件以及二进制日志文件,二者缺一不可。

    热备

    热备就是热备份,什么意思呢?就是在数据库正常运行的情况下进行备份,也就是说,在热备期间,数据库的读写操作均可正常进行,所以,热备份不能只依靠简单的拷贝命令,而是需要专门的备份工具,而且技术复杂程度较高,mysql中的myisam存储引擎不支持热备InnoDB存储引擎支持热备

    温备

    温备是什么意思呢?温备比热备稍弱一点,如果使用温备的方式对数据库进行备份,在温备期间,数据库只能进行读操作,不能进行写操作,即数据库在可读但不可写的状态下进行备份。

    冷备

    懂了热备与温备,冷备就好理解了,在冷备期间,数据库的读写操作均不可进行,即读写操作均不可进行的状态下所做的备份被称为冷备。冷备虽然会影响数据库的运行,但是备份出的数据的可靠性是最高的,冷备的备份过程往往是最简单的,mysql中,可能会通过复制结构去做冷备。

    物理备份

    物理备份就是直接备份数据库所对应的数据文件,以达到备份的目的,物理备份相对逻辑备份来说,性能更强。

    逻辑备份

    逻辑备份就是将数据从数据库中导出,并且将导出的数据进行存档备份,这种备份方式被称作逻辑备份。

    上述各种术语其实是对备份的不同特性以及不同维度进行了分类描述。

    mysql常用备份工具:

    mysqldump

    mysqldump是mysql自带的备份工具,它是一种逻辑备份工具,也就是说,它会将数据从数据库中读出,转化为对应的sql语句。

    mysqldump能够实现完全备份或部分备份。

    使用innodb表类型的表能够使用mysqldump进行热备。

    使用myisam表类型的表只能够使用mysqldump进行温备。

    如果数据量较小,使用mysqldump是一种选择。

    xtrabackup

    由Percona提供,Percona是一个NB的组织,Percona对mysql的研究很深入,xtrabackup就是Percona出品的数据库备份工具,而且是开源的免费的。

    xtrabackup支持对Innodb存储引擎进行热备。

    xtrabackup是一种物理备份工具,所以性能强悍。

    xtrabackup支持完全备份,差异备份,增量备份,部分备份等功能。

    通过select语句进行部分备份

    通过select语句将表中的数据导出到指定文件中,例如导出a表数据到/testdir/a.backup中,在使用select语句备份a表的同时,最好将a表的表结构也备份一份,因为还原的时候很有可能用到。

    select * from a into outfile '/testdir/a.backup';

    如果想要通过a.backup文件恢复a表的内容,可以创建一个新的表,然后使用load data将a.backup中的数据导入到新表中,示例如下。

    create table b(id int);

    load data infile "/testdir/a.backup" into table b;

    cp命令或tar命令

    利用上述命令,在linux中直接对数据文件进行备份,这种方式只适用于冷备的方式。

    其实,我们最常用的工具还是mysqldumpxtrabackup,所以,我们只要掌握它们即可。

    转载自: mysql/mariadb知识点总结(26):数据库备份相关的基础知识 | 朱双印博客

  • 相关阅读:
    java中interface的完整表述
    DoTA与人生
    DotNet.Utilities工具类
    visual studio xcopy /exclude测试
    Assembly.Load()方法,Assembly.LoadFrom()方法,Assembly.LoadFile()方法的区别!
    DataGridView列自适应宽度
    [Head First设计模式]
    winform 取消datagridview第一行选中状态
    winform WebBrowser如何修改使用默认的IE浏览器版本
    C# 注释换行
  • 原文地址:https://www.cnblogs.com/gengyufei/p/14308124.html
Copyright © 2011-2022 走看看