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. 基于OpenCV的三维数据点的曲面重构_MySurefaceReconstruction

    在Opencv中有个Viz模块,可以显示三维物体,还可以实现三维动画,本来是很好的东东,但是里面的函数.类的说明太过简单,始终不得要领.不过其中一个扩展功能非常好,就是你可以在vtk中设计自己的模型类 ...

  2. 461. 汉明距离(Hamming Distance)leetcode

    首先附上题目链接: https://leetcode-cn.com/problems/hamming-distance/ 一:题目 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. ...

  3. 【AMAD】betamax -- 一个ruby-VCR的模仿品,只支持requests

    简介 动机 作用 用法 个人评分 简介 betamax1会记录你的HTTP操作,可以让你在测试的时候不必重复进行真实的请求. 动机 如果你的代码需要和外部资源一起运作,那么测试这段代码的方法就叫做集成 ...

  4. 【miscellaneous】硬解码与软解码

    在显卡技术日益成熟的今天,一些概念我们都不是很清楚了,那么显卡硬件解码功能是什么意思呢?高清硬解和软件有什么不同呢?显卡配置需不需要考虑硬件解码呢?电脑爱好者为您分析. 什么是硬件解码? 显卡硬件解码 ...

  5. C学习笔记-结构体与二进制文件增删改查

    使用结构体整理数据,然后利用二进制存储文件,这样存储的文件类似于数据库,可以实现文件的增删改查 定义结构体 struct student { unsigned int ID; char name[20 ...

  6. 设计模式:模板方法(Template method)

    首先我们先来看两个例子:冲咖啡和泡茶.冲咖啡和泡茶的基本流程如下: 所以用代码来创建如下: 咖啡:Caffee.java public class Coffee { void prepareRecip ...

  7. HDU-5238 Calculator

    题目描述 给定一个关于 \(x\) 的表达式,形如下例:\(×4+2^3+8×6\) 按如下方法计算:\((((x×4)+2)^3+8)×6\) 运算符只有 加号,乘号,幂运算三种,给定的式子中有 \ ...

  8. mysql以及mysql bench安装教程

    首先,我们需要去官网下载mysql(这里以下载) 1 2 3 4 5 下载好了自己好了之后,点击安装好的东西出现如下界面: 1.接受使用条款并点击next 2.点击custom,可以根据个人习惯进行安 ...

  9. layui自定义插件citySelect 省市区三级联动选择

    省市区三级菜单联动插件 citySelect.js /** * @ name : citySelect 省市区三级选择模块 * @ Author: aggerChen * @ version: 1.0 ...

  10. html/form表单常用属性认识

    1.form表单常用属性练习 <style> .form1 { margin: auto; height: 900px; width: 500px; text-align: center; ...