1、什么情况下会用到备份呢?

【1.1】灾难恢复

【1.2】单位审计:数据库在过去某一个点是什么样的

【1.3】跨机房灾备:异地备份

【1.4】认为的DDL或者DML语句,导致主从库的数据消失

【1.5】业务测试,构建测试库

2、备份的分类

  分为冷备份、温备份、热备份

【2.1】冷备份(离线备份:读写操作均中止)

  优点:设备投资较少,节省费用,对环境要求不高。

  缺点:恢复时间较长,一般要数天至1周,数据完整性与一致性比较差;

【2.2】温备份(只可以执行读操作)

  优点:设备投资较少,节省费用,对环境要求不高。

  缺点:恢复时间较长,一般要数天至1周,数据完整性与一致性比较差;

【2.3】热备份(读、写不受影响)

  优点:恢复时间短,一般几十分钟到数个小时,数据完整性与一致性最好,数据丢失可能性最小。

  缺点:设备投资大,费用高,对环境要求高,运维管理比较复杂。

【2.4】总结

 

根据主机和备机之间同步数据的程度,备份可以分为三种情况,分别为冷备份、暖备份和热备份。
  • 冷备份:也就是所谓的备份,备用服务器被配置用于接受主服务器的数据,当出故障时,手动将数据还原到主数据库,或是重新配置程序的连接字符串或权限来使得备份数据库上线。
  • 暖备份:主服务器数据会不停的将日志传送到备用服务器(间隔不定,可以是15分钟,30分钟,1分钟等等),在这方式下,主服务器到备份服务器通常是异步更新,所以不能保证主服务器和备份服务器数据一致。此外,该方案通常不会实现自动故障监测和故障转移。
  • 热备份:主服务器的数据自动在备份服务器上进行同步,大多数情况下都会包含自动的故障监测和故障转移,并且能够保证主服务器和备份服务器的数据一致性。

随着冷备份到暖备份到热备份,成本会直线上升。

3、备份的方式

  分为物理备份与逻辑备份2种

【3.1】物理备份(直接复制文件/目录)

  所谓的物理备份,就是把整个关于mysql数据库的相关目录都拷贝一份。

  物理备份产生的数据副本都是二进制文件,通常不可编辑,例如数据库的二进制日志;

  特点:

  (1)由数据库文件和目录组成,是mysql数据目录的全部或者部分

  (2)一般备份比逻辑备份快,因为纯属是文件复制,不用像逻辑备份那样需要做SQL转换

  (3)备份的粒度比逻辑备份小,因为是全文件复制了,当然比SQL要精确一些。

  (4)物理备份的文件不仅是数据库,还可以是数据库的日志,配置文件

  适用:适用于大数据量的备份,比如你有百G,TB以上。

  备份方法:

    (1)文件系统命令:cp/scp/tar/rsync;

    (2)Mysql备份软件,系统快照snapshot;

【3.2】逻辑备份(将数据以SQL方式导出至文本文件)

  特点:

  (1)逻辑备份通过查询数据库的信息进行备份

  (2)速度比较慢,因为获取了信息,然后组装成SQL语句,如果调用命令是远程还要把SQL语句远程传输

  (3)备份文件要比物理备份小

  (4)备份粒度只能到表

  (5)没有日志或者配置文件

  (6)备份文件是SQL语句,逻辑语句,相对而言可移植性好(比如跨OS)。

4、备份的模式

  一般分为3种,全备、差异备、增量备

【4.1】全备:备份所有数据

【4.2】差异备:备份自上一次全备到现在的数据

【4.3】增量备:备份自上一次全备/增量备到现在的数据

5、mysql一般备份的数据

【5.1】数据文件

【5.2】日志文件(比如事务日志、二进制日志)

【5.3】存储过程,存储函数,触发器

【5.4】配置文件(很重要,各个配置文件都要备份)

【5.5】用于实现数据库备份的脚本

6、mysql常用备份工具

【6.1】mysqldump(单线程)/mysqlpump(多线程,5.7+以后才有)

  是一种逻辑备份工具,支持完全、部分备份。InnoDB热备,MyIsam温备;

【6.2】mydumper开源,是mysqldump的一个衍生,速度在两者之间。(5.7以后不要用了)

【6.3】cp/tar :物理备份。lvm2快照(请求一个全局锁),之后立即释放,达到几乎热备的效。果。

  注意:不能仅备份数据文件,要同事备份事务日志;

  前提:要求数据文件和事务日志位于同一个逻辑卷;

【6.4】innobackup【收费】/xtrabackup【免费】

  由Percona提供,开源工具,支持Innodb做热备份,物理备份工具;

  完全备份、部分备份;完全备份、增量备份;完全备份、差异备份;

【6.5】mysqlhotcopy(已淘汰):物理备份工具,但只支持myIsam,基本属于冷备份,物理备份,速度较快

【6.6】主从复制

【6.7】官方mysql enterprise backup 备份软件,收费

【6.8】其他第三方工具、厂家

(4.2)mysql备份还原——备份概述的更多相关文章

  1. 黄聪:Mysql数据库还原备份提示MySQL server has gone away 的解决方法(备份文件数据过大)

    使用mysql做数据库还原的时候,由于有些数据很大,会出现这样的错误:The MySQL Server returned this Error:MySQL Error Nr. MySQL server ...

  2. (4.4)mysql备份还原——备份存储容灾基础知识

    存储知识 1.为什么需要存储,存储一般解决哪些问题? 容量.速度.易于管理.安全(容灾与备份).可扩展性 2.存储发展历史 [2.1]大型机 [2.2]c/s结构(客户端->服务器) [2.3] ...

  3. mysqldump工具实现mysql数据库的备份还原

    简介 冷.温.热备份 冷备:读写操作均不可进行 温备:读操作可执行:但写操作不可执行 热备:读写操作均可执行 MyISAM:温备,不支持热备 InnoDB:都支持 不管是热备还原还是冷备还原,还原时都 ...

  4. 基于xtrabackup实现mysql备份还原

    简介 Xtrabackup2.2版之前包括4个可执行文件: innobackupex: Perl 脚本 xtrabackup: C/C++ 编译的二进制 xbstream: 支持并发写的流文件格式 x ...

  5. Gitlab 备份还原/迁移

    Gitlab 备份还原 备份数据:通过命令进行备份操作 gitlab-rake gitlab:backup:create ... [DISABLED] Creating backup archive: ...

  6. MySQL/MariaDB数据库的mysqldump工具备份还原实战

    MySQL/MariaDB数据库的mysqldump工具备份还原实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mysqldump概述 1>.逻辑备份工具 mysq ...

  7. mysql 命令行还原备份数据库

    通常数据库还原备份可以通过navicat等数据库管理工具进行,只需要简单的导出导入就行了,但遇到有索引外键的数据库,数据库管理工具运行.sql文件会报错,这时候可以尝试命令行导入,亲测可以成功 MyS ...

  8. 如何用SQL语句实现Mysql数据库的备份与还原

    以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...

  9. 通过innobackupex实现对MySQL的增量备份与还原

    备份 增量备份是基于完整备份的,所以我们需要先做一次完整备份: innobackupex --password=test /backup/ 备注:test是我的MySQL服务的root用户的密码,/b ...

随机推荐

  1. 一种消息和任务队列——beanstalkd

    beanstalkd 是一个轻量级消息中间件,其主要特性: 基于管道  (tube) 和任务 (job) 的工作队列 (work-queue):d 管道(tube),tube类似于消息主题(topic ...

  2. 【PHP】xampp配置多个监听端口和不同的网站目录(转)

    转自:https://blog.csdn.net/cc1314_/article/details/75646344 windows下使用xampp配置多个监听端口和不同的网站目录 一:配置Apache ...

  3. 5. RAMN备份与恢复

    一. rman简介 RMAN(Recovery Manager)是一种用于备份(backup).还原(restore)和恢复(recover)数据库的 Oracle 工具.RMAN只能用于ORACLE ...

  4. JS 使用html2canvas实现截图功能的问题记录和解决方案

    在实现“截图”功能时,遇到几个bug,研究了一个上午,终于全部解决了: 下面给大家分享下: 1."图片资源跨域",导致无法截图. 浏览器会提示下面的错误 DOMException: ...

  5. distri.lua线程间通信的设计

    首先简单介绍下distri.lua中的线程设计方案. distri.lua提供一个API函数fork用于创建新的C线程,这个C线程运行独立的lua虚拟机,为了在各线程之间通信 每个线程都会创建一个ch ...

  6. SQLServer2008 导出数据库表结构和数据

    很多朋友问到sql server数据库”生成脚本”,只导出了数据库的sql脚本,而表里的数据依然没有导出来.很简单,看教程: 注:我这里用的SQLServer2008,其它版本应该差不多. 一.选中要 ...

  7. Spring Boot 集成 Redis 实现缓存机制

    本文章牵涉到的技术点比较多:spring Data JPA.Redis.Spring MVC,Spirng Cache,所以在看这篇文章的时候,需要对以上这些技术点有一定的了解或者也可以先看看这篇文章 ...

  8. vs2017更新后web项目部分后台代码类没有颜色,也没有自动提示输入功能

    vs2017有的版本更新后默认.net framework框架是.net framework4.6.1,将项目的.net framework框架更改为4.6.1,颜色和自动提示出现

  9. Spark Pipeline

    一个简单的Pipeline,用作estimator.Pipeline由有序列的stages组成,每个stage是一个Estimator或者一个Transformer. 当Pipeline调用fit,s ...

  10. python3之文件操作

    一   打开文件   根目录在d盘的文件名为‘学习资料.txt’的文件 a)绝对路径(最开始的,根目录文件)例:    e:\学习资料.txt 相对路径   直接用文件名字 b)操作方式  只读  只 ...