1.1 备份的原因
  衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),
前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间。
1.1.1 备份的目录
  做灾难恢复:对损坏的数据进行恢复和还原
  需求改变:因需求改变而需要把数据还原到改变以前
  测试:测试新功能是否可用
1.1.2 备份中需要考虑的问题
  可以容忍丢失多长时间的数据;
  恢复数据要在多长时间内完;
  恢复的时候是否需要持续提供服务;
  恢复的对象,是整个库,多个表,还是单个库,单个表。
1.1.3 备份的类型
热备份:
  这些动态备份在读取或修改数据的过程中进行,很少中断或者不中断传输或处理数据的功能。使用热备份时,系统仍可供读取和修改数据的操作访问,所谓热备份是在不影响MySQL对外服务的情况下,进行备份。。
冷备份:
  备份期间用户不能访问数据时进行,因此无法读取或修改数据。。
温备份:
  备份期间可读取数据,但是,其不足之处在于无法在进行备份时修改,这可能使这种类型的备份不适用于某些应用程序。在备份过程中无法修改数据可能产生性能问题。
1.2 备份的方式
1.2.1 常用的备份方式
  物理备份(数据文件的二进制副本)
全量备份概念
    全量数据就是数据库中所有的数据(或某一个库的全部数据);
    全量备份就是把数据库中所有的数据进行备份。
    mysqldump会取得一个时刻的一致性数据.
增量备份(刷新二进制日志)
    增量数据就是指上一次全量备份数据之后到下一次全备之前数据库所更新的数据
    对于mysqldump,binlog就是增量数据.
完全备份:
优点:能够基于上一次的完全备份快速恢复数据,恢复窗口小。
缺点:所占用的存储空间大,每次备份耗时长,备份窗口大。
累积增量式备份:--差异备份
优点:相对完全备份来说每次备份可以节约一个完全备份的存储空间,备份窗口较小,恢复窗口较小。
缺点:恢复时必须依赖上一次完全备份和本次的累积增量式备份才能完整恢复数据,恢复时间较差异增量式备份较短。
 
差异增量式备份:----增量备份
优点:能够最大限度地节省存储空间,备份窗口小。
缺点:数据恢复时必须依赖上一次完全备份和每一次的差异增量式备份才能对数据进行完整恢复,恢复时数据重构较慢,恢复时间较长。
1.2.2 备份工具的介绍
  1、mysqldump: mysql原生自带很好用的逻辑备份工具
  2、mysqlbinlog: 实现binlog备份的原生态命令
  3、xtrabackup: precona公司开发的性能很高的物理备份工具
1.3 mysqldump备份介绍
 1.3.1 常用的备份参数
 
参数
参数说明
-A
备份全库,有建库建表语句
-B
备某一个数据库下的所有表,会有建库语句
[root@db01 ~]# mysqldump -uroot -p123 -B db1 > /backup/db1.sql
-R, --routines
备份存储过程和函数数据
--triggers
备份触发器数据
--master-data={1|2}
告诉你备份后时刻的binlog位置
如果等于1,则将其打印为CHANGE MASTER命令; 
如果等于2,那么该命令将以注释符号为前缀。0没有CHANGE MASTER参数
--single-transaction
对innodb引擎进行热备,也就是快照备份
-F, --flush-logs
flush logs在备份时自动刷新binlog且每个库会生成新一个binlog文件(不怎么常用)
-x, --lock-all-tables
锁定所有数据库的所有表。这是通过在整个转储期间采用全局读锁来实现的。
-l, --lock-tables
锁定所有表以供读取
-d
仅表结构
-t
仅数据
--compact
减少无用数据输出(调试)
-E 在备份时,同时备份EVENT,如果没有会自动忽略
一个完整的备份语句:
  innodb引擎的备份命令如下:
mysqldump -uroot -p -A -R --triggers --master-data=2 --single-transaction |gzip >/opt/all_$(date +%F).sql.gz
  适合多引擎混合(例如:myisam与innodb混合)的备份命令如下:
 
在关于GTID模式的备份:
--set-gtid-purged=OFF不要加此参数,
在主从架构的数据库,通常相关导入操作只需要在master(主库)端进行即可,在mysqldump不加此参数时sql文件中会出现如下两名,
SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
SET @@SESSION.SQL_LOG_BIN= 0;
禁掉了session级别的sql_log_bin,所以在目标端导入sql时,并不会产生对应的bin log日志,
所以该表及其数据就不会被同步到slave端,构建主从gtid时不要加此参数。
mysqldump -uroot -p -R -e --triggers --master-data=2 --single-transaction --set-gtid-purged=OFF world country >/tmp/countryyes.sql
1.3.2 -A 参数
  备份全库,备份语句
  mysqldump -uroot -p123 -A > /backup/full.sql
1.3.3 -B 参数
  备某一个数据库下的所有表,且存在建库语句
  增加建库(create)及“use库”的语句,可以直接接多个库名,同时备份多个库* -B 库1 库2
mysqldump -uroot -p123 -B world > /backup/worldb.sql
  不加-B备份数据库时,只是备份数据库下的所有表,不会创建数据库
         只能备份单独的数据库(一般用于备份单表时使用)
mysqldump -uroot -p123 world > /backup/world.sql
         备份单表
mysqldump -uroot -p123 world city > /backup/world_city.sql
         对于单表备份的粒度,再恢复数据库数据时速度最快。
         备份多个表
mysqldump 库1 表1 表2 表3 >库1.sql mysqldump 库2 表1 表2 表3 >库2.sql
1.3.4 --master-data={1|2}参数
  告诉你备份后时刻的binlog位置
    2为注释  1为非注释,要执行的(主从复制) 此命令会锁表,需要配合--single-transaction快照使用
[root@db02 logs]# sed -n '22p' /opt/t.sql CHANGE MASTER TO MASTER_LOG_FILE='clsn-bin.000005', MASTER_LOG_POS=344; [root@db02 logs]# mysqldump -B --master-data=2 clsn >/opt/t.sql
1.3.5 压缩备份
压缩备份命令:
mysqldump -B --master-data=2 clsn|gzip >/opt/t.sql.gz
解压:
zcat t.sql.gz >t1.sql gzip -d t.sql.gz #删压缩包 gunzip alL_2017-12-22.sql.gz
zcat t.sql.gz >/tmp/linshi.sql

mysql备份基础的更多相关文章

  1. Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录

    在日常的linux运维工作中,大数据量备份与还原,始终是个难点.关于mysql的备份和恢复,比较传统的是用mysqldump工具,今天这里推荐另一个备份工具innobackupex.innobacku ...

  2. MySQL数据库基础

    MySQL数据库基础 本文的所有操作是基于CMD环境,MySQL通过在命令行中输入SQL语句对数据库进行操作.配置问题可参考<打通MySQL的操作权限>中的内容,该文算是针对前期的环境配置 ...

  3. xtrabackup备份(MySQL备份)与恢复

    xtrabackup备份(MySQL备份)与恢复 1. innobackupex参数选项 --no-timestamp: 不创建一个时间戳 --defaults-file=[MY.CNF] //指定配 ...

  4. 使用第三方工具Xtrabackup进行MySQL备份

    使用Xtrabackup进行MySQL备份: 一.安装 1.简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtr ...

  5. mysql备份工具innobackupex,xtrabackup-2.1的原理和安装

    mysql备份工具innobackupex,xtrabackup-2.1的原理和安装 http://bbs.2cto.com/read.php?tid=310496 一.Xtrabackup介绍 1. ...

  6. Mysql备份工具xtraback全量和增量测试

    Mysql备份工具xtraback全量和增量测试   xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表) 官方网址http:// ...

  7. MySQL学习——基础

    本文是MySQL的基础知识. Linux启动MySQL服务命令 : service mysql start Linux关闭MySQL服务命令 : service mysql stop 登录MySQL命 ...

  8. 高性能MySQL之基础架构

    一.背景 为什么我们需要先学习MYSQL的基础架构先呢? 原因很简单,当我们需要了解一件事物的时候,我们只有站在宏观的层面,才能层层剥丝抽茧的去理解问题.举个例子,我们要看一个框架的源码,一开始就想进 ...

  9. Mysql备份工具mysqldump和mysqlhotcopy

    (1).Mysql备份类型 1)按照备份时对数据库的影响分为 Hot backup(热备):也叫在线备份.指在数据库运行中直接备份,对正在运行的数据库没有任何影响. Cold backup(冷备):也 ...

随机推荐

  1. Postman接口测试:自动获取登录后的cookie并设置环境变量

    在对网站进行接口测试的时候,很多请求往往是需要带登录的cookie才能请求成功的,一般来说,可以用抓包软件(fiddler,浏览器的F12)来查看登录后的cookie,并把它设置到postman的环境 ...

  2. seq2seq&attention图解

  3. 网页设计——HTML(3)布局基础

    为什么要布局? 网页布局,也就是如何安排网页的内容. 一个好的网页布局能够使人眼前一亮,吸引流量. 本篇文章中我们不讨论相关的设计理论,我们只对布局所用到的HTML知识进行学习. 几种简单的布局方式 ...

  4. 如何获取字符串中某个具体的数值--通过json.load转化成字典形式获取

    r=requests.get('http://httpbin.org/get').text print(r) # print(type(r)) # 如果要获取User-Agent的详细数值,需要做JS ...

  5. java-selenium三种等待方式

    方式1: 线程等待:Thread.sleep(xxxx) 只要在case中加入sleep就会强制等待设置的时间后才会执行之后的命令,这种等待一般适用于调试脚本的时候. java代码 //等待3秒 Th ...

  6. sql server if else

    DECLARE IF (@sex = '1')BEGIN PRINT '2'END ELSE BEGIN PRINT(1) END begin... end可以省略 declare @sex int ...

  7. 客户端相关知识学习(一)之混合开发,为什么要在App中使用H5页面以及应用场景、注意事项

    混合开发 随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求.原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝.美团等.下面,结合我本人的开发经验,简单谈一 ...

  8. luogu题解 P1099 【树网的核】树的直径变式+数据结构维护

    题目链接: https://www.luogu.org/problemnew/show/P1099 https://www.lydsy.com/JudgeOnline/problem.php?id=1 ...

  9. springboot(十八)-session共享

    前言 在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是在分布式/集群项目中,Session 共享则是一个必须面对的问题,先看一个简单的架构图: 在这样的架构中 ...

  10. axios+FormData文件上传

    axios+FormData文件上传 原理:FormData上传 创建一个FormData对象,将得到的文件流对象放在FormData内,然后使用axios上传 注意: 1.请求头设置 headers ...