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. C#反射动态创建实例并调用方法

    在.Net 中,程序集(Assembly)中保存了元数据(MetaData)信息,因此就可以通过分析元数据来获取程序集中的内容,比如类,方法,属性等,这大大方便了在运行时去动态创建实例. MSDN解释 ...

  2. 如何在WIN7下安装虚拟机linux系统

    需要支持多个平台的IT管理员经常会遇到如何在Windows 7计算机上安装Linux的问题.幸运的是有多种方法可供选择:双系统.Linux虚拟机和U盘引导. 当需要用到Windows 7和Linux时 ...

  3. 网络实验 04-利用三层交换机实现VLAN间路由

    利用三层交换机实现VLAN间路由 一.实验目标 掌握交换机Tag VLAN 的配置 掌握三层交换机基本配置方法 掌握三层交换机VLAN路由的配置方法 通过三层交换机实现VLAN间相互通信 二.实验背景 ...

  4. PHP-T

    TP5目录结构 ├─application 应用目录 ├─extend 扩展类库目录(可定义) ├─public 网站对外访问目录 ├─runtime 运行时目录(可定义) ├─vendor 第三方类 ...

  5. Unity中的动画系统和Timeline(1) 普通动画创建

    学习使用版本:Unity2017.1.1 目标:给一个Cube创建动画 一:第一种创建方法 1 Windows —— Animation,打开Aniamtion动画界面,此时显示 因为此时没有任何动画 ...

  6. PJzhang:如何在裸奔的年代找到一些遮羞布

    猫宁!!! 很久以前的一篇,搬过来. 我一直在“裸奔”,而且很久了,只是不太愿意承认. 想起了“皇帝的新装”,好奇何种经历和灵感让安徒生写出了如此精彩的故事. 一次百度了一个商品,不久接到了大规模电话 ...

  7. 数据库 ----jdbc连接池的弊端

    jdbc连接池的弊端 1.数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能.设想:使用数据库连接池管理数据库连接.2.将sql语句硬编码到 ...

  8. 什么是云数据库POLARDB

    POLARDB是阿里巴巴自主研发的下一代关系型分布式云原生数据库,目前兼容三种数据库引擎:MySQL.Oracle.PostgreSQL.计算能力最高可扩展至1000核以上,存储容量最高可达 100T ...

  9. 云数据库RDS SQL Server 版

    云数据库RDS SQL Server版是一种可弹性伸缩的在线数据库服务,并具备自动监控.备份.容灾恢复等方面的全套解决方案,彻底解决数据库运维的烦恼 请观看视频简介 SQL Server是发行最早的商 ...

  10. 双元素非递增(容斥)--Number Of Permutations Educational Codeforces Round 71 (Rated for Div. 2)

    题意:https://codeforc.es/contest/1207/problem/D n个元素,每个元素有a.b两个属性,问你n个元素的a序列和b序列有多少种排序方法使他们不同时非递减(不同时g ...