1.冷备流程:

停库备份,冷备份一般用于非核心业务,这类业务一般都允许停库。

在停止数据库后,将数据文件拷贝出来,然后对原始数据文件进行备份。

流程:

1.关闭数据库备份          2.拷贝数据文件

3.压缩数据文件           4.重启数据库

2.热备

热备份分逻辑备份和物理备份.,逻辑备份的是SQL语句,将数据库里面的数据,转储为SQL文件.

在线备份,一般是使用mysqldump和xtrabackup进行备份和恢复

Mysqldump适合规模比较小的库,业务并不繁忙的数据库,一般都是选择mysqldump。

Mysqldump和mydumper都是逻辑备份工具,而xtrabackup是物理备份工具.

Mysqldump是mysql自带的工具,而xtrabackup是percona公司开发的工具.

如果数据量大于100G,逻辑备份恢复比较慢,可以优先考虑物理备份.

2.1 mysqldump备份原理及参数介绍

mysqldump是 官方工具,本身mysql自带,不用安装.

Mysqldump备份原理:将数据库的数据,查询出来,然后通过拼接语句,形成sql文件.故mysqldump是逻辑备份.

如何保证备份的一致性,以及mysqldump参数的讲解:

--single-transaction:可以保证在不加锁的情况下,备份一致性数据.

参数原理:在备份的时候mysqldump---->mysqld(客户端连接到服务器端),在备份会中,--single-transaction会显式的将会话的事务隔离级别改为RR隔离级别,并且开启一个事务,RR隔离级别下,备份数据都是开启事务的时候的数据的快照,于是保证了备份的一致性.

故一般备份情况下加这个参数来保证数据的一致性.

优点: 1.不加锁 2.可以保证数据的备份一致性

实际在数据备份的时候,获取binlog位置的时候,是需要加锁, 加锁--获取binlog位置--解锁--备份数据.加锁只是在获取binlog位置的一瞬间然后释放,在备份开始后的时间是不加锁的.

--master-data
1|2 
 一般用2 , 加注释,作用是打印备份的数据的binlog
pos点到备份文件头部.可通过查看备份文件知道备份的pos点.

head -n 35
test.txt 查看文本前35行一般就看查看到pos点.

于是在保证备份一致性(不加锁)的情况下语句是:

mysqldump
--single-transaction
 --master-data=2

可通过mysqldump --help查看其它参数信息.

-A,
--all-databases 作用是备份所有数据库(包括mysql数据库)

--add-drop-database 和 --add-drop-table(--skip-add-drop-table) 参数:意思是如果库或者表已经存在,就删除掉尽量在恢复之前,就是手动删掉数据.

-c,
--complete-insert  完整insert
(不是简写的,全写:insert into t1 (id,name)
values(1,'mxt');)

-B,
--databases   指定备份的数据

-K,
--disable-keys  作用是使索引失效,防止大批量数据插入的开销.

-h
 作用是连接哪个主机.(host.)

-x,
--lock-all-tables  ----备份加锁.(一般不用)

-l,
--lock-tables   Lock all tables
for read.(加锁,一般不用)

--max-allowed-packet=#
 mysqldump和mysqld都需要设置,mysqld允许最大的数据包,加到配置文件max-allowed-packet=32M(在mysqld和mysqldump里都设置.)

-d, --no-data
     ----------只备份表结构

-q, --quick
      --------- 不经过内存,如果内存比较小,直接落盘到文件.(可以减少对内存的占用)

--replace
     ------
insert into 更改成 replace  INTO.

--hex-blob
    -------- 表里面有二进制的列(blob
text字段)
,需要备份加这个参数.

--triggers
 ------ 备份触发器

-E, --events
 ---------备份事件

上面大多数参数对MYISAM存储引擎不起作用,因为其不支持事务,没有RR模式,故无法保证事务一致性,故备份需加锁.

mysqldump备份特点:

1.简单,不需要额外安装,sql文件易读(.sql  .txt
....是文本文件,文件后缀不能决定文件的性质)

2.该工具单线程,不能并发备份恢复 ,因为是逻辑备份,数据量越大,恢复越慢.

2.2mysqldump备份及恢复语句

备份所有数据库:

mysqldump -uroot -p -S /tmp/mysql3306.sock --master-data=2
--single-transaction  -A >
/tmp/all.sql

备份单个数据库:

mysqldump -uroot -p -S /tmp/mysql3306.sock --master-data=2
--single-transaction  -B test1 >
/tmp/all.sql

导出表:

mysqldump -uroot -p -S /tmp/mysql3306.sock --master-data=2
--single-transaction  -B test1 --tables t3 >
t1.sql

导出表结构:

mysqldump -uroot -p -S /tmp/mysql3306.sock --master-data=2
--single-transaction  -A -d >
/tmp/all.sql

mysqldump导入数据:

方法1.  mysql -uroot -proot
-S /tmp/mysql3306.sock < all.sql

方法2.  mysql > source
/tmp/all.sql

对于恢复数据:  尽量不要跨机房和网段等恢复,尽量将备份文件拷贝到mysqld所在机器上,进行恢复.

2.3 mydumper介绍

由来:Mydumper也是逻辑备份.备份时过程与mysqldump相似,都是瞬间开启RR模式然后释放锁,保证了数据的一致性.弥补了mysqldump只能单线程备份的特点,其设计中可以多线程拷贝数据,.但消耗资源.并且mysqldump是第三方开发工具,使用时需要安装.

/usr/local/bin/mydumper 备份工具

/usr/local/bin/myloader 恢复工具

Mydumper进行备份时,有一个主线程和多个备份线程完成.不用加参数-single-transaction和--master-datea=2等参数.

/usr/local/bin/mydumper 备份工具

/usr/local/bin/myloader 恢复工具

Mydumper进行备份时,有一个主线程和多个备份线程完成.不用加参数-single-transaction和--master-datea=2等参数.

 1.mydumper的安装

安装mydumper步骤:

1.yum -y
install cmake pcre-devel gcc-c++ glib2-devel zlib*

2.tar zxvf
mydumper-0.9.1.tar.gz

3.cd
mydumper-0.9.1

4.mkdir
build

5.cd
build

6.cmake
..

7.make

8.make
install

安装完成后再ls  /usr/local/bin里有该命令.

其中mydumper是逻辑备份工具,myloader是逻辑恢复工具.

查看使用方法报错: mydumper --help报错。

解决方法:

执行:
 ls -l
/usr/local/mysql/lib/libmysqlclient.so.20*

执行:
 ln -s /usr/local/mysql/lib/libmysqlclient.so.20
/usr/lib/

再vim
/etc/ld.so.conf在里面添加一行:  export
LD_LIBRARY_PATH=/usr/local/mysql/lib.里面内容如下:

include
ld.so.conf.d/*.conf

export
LD_LIBRARY_PATH=/usr/local/mysql/lib

mysql之冷备和mysqldump、mydumper、xtrabackup备份的更多相关文章

  1. mysqldump+mydumper+xtrabackup备份原理流程

    mysqldump备份原理 备份的基本流程如下: 1.调用FTWRL(flush tables with read lock),全局禁止读写 2.开启快照读,获取此时的快照(仅对innodb表起作用) ...

  2. mysql备份工具 :mysqldump mydumper Xtrabackup 原理

    备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...

  3. MySql在生产环境中是用mysqldump还是xtrabackup备份和恢复数据

    如题,究竟该使用mysqldump还是xtrabackup,要说用,两个都能备份,都支持热备,但是生产环境我们要考虑的是效率,就是不管备份还是恢复,都要快,要稳定. 之前我在维护mysql数据库的时候 ...

  4. mysqldump和xtrabackup备份原理实现说明

    背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. ...

  5. mysql在Windows下使用mysqldump命令手动备份数据库和自动备份数据库

    手动备份: cmd控制台: 先进入mysql所在的bin目录下,如:cd C:\Program Files\MySQL\MySQL Server 5.5\bin mysqldump -u root - ...

  6. MySQL入门篇(七)之Xtrabackup备份与恢复

    一.Xtrabackup介绍 MySQL冷备.mysqldump.MySQL热拷贝都无法实现对数据库进行增量备份.在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况 ...

  7. mysql运维入门1:基础及备份还原

    存储引擎 myisam 表强调的是性能 执行速度比innodb类型更快 不提供事务支持 如果执行大量的select操作,是首选 支持表锁,不支持行锁 innodb 提供事务支持.外键等高级数据库功能 ...

  8. 使用xtrabackup(innobackupex)实现MySQL的热备

    mysql 的热备http://www.178linux.com/10139http://www.linuxidc.com/Linux/2014-04/99671.htmhttp://634871.b ...

  9. mysql的2种备份mysqldump 和 Xtrabackup

    mysqldump备份方式 备份 mysqldump -uroot -p 数据库名 > 备份的文件名 恢复(先关闭数据库) mysql -uroot -p 数据库名 < 备份的文件名 Xt ...

随机推荐

  1. MeteoInfoLab脚本示例:地图投影

    在用axesm函数创建地图坐标系的时候可以指定地图投影(设置projinfo参数),地图投影可以通过projinfo函数来创建,里面的参数依据proj4投影字符串,可以参考此网页:http://rem ...

  2. spring boot:方法中使用try...catch导致@Transactional事务无效的解决(spring boot 2.3.4)

    一,方法中使用try...catch导致@Transactional事务无效的解决方法 1,问题的描述: 如果一个方法添加了@Transactional注解声明事务, 而方法内又使用了try catc ...

  3. centos8平台使用loginctl管理登录用户与session

    一,loginctl的用途: 控制 systemd 登录管理器 管理当前登录的用户和session 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/a ...

  4. MySQL数据库基础-2范式

    数据库结构设计 范式 设计数据库的规范 第12345范式,凡是之间有依赖关系. 关系模型的发明者埃德加·科德最早提出这一概念,并于1970 年代初定义了第一范式.第二范式和第三范式的概念 设计关系数据 ...

  5. Linux下使用select延时

    在LINUX用户态的情况下,如果想要延时的话,可以使用用sleep函数,但是在一些情况下,需要更小单位的延时,ms/us 也是要的.用循环获取到的延时是不精确的. sleep是不准确,这个函数是可以中 ...

  6. .gdbinit文件配置

    .gdbinit文件配置 #打印数组的索引下标 set print array-indexes on #每行打印一个结构体成员 set print pretty on #除了断点有关的线程会被停下来, ...

  7. Angular双向绑定简单理解

    在使用Antd的时候,一直很好奇里面的双向绑定的自定义组件是怎么做的. 因为之前一直用,没有去细看文档. 今天抽空来简单的撸一下. 在ng中,()是单向数据流,从视图目标到数据源,[()]这样就是双向 ...

  8. BP神经网络算法程序实现鸢尾花(iris)数据集分类

    作者有话说 最近学习了一下BP神经网络,写篇随笔记录一下得到的一些结果和代码,该随笔会比较简略,对一些简单的细节不加以说明. 目录 BP算法简要推导 应用实例 PYTHON代码 BP算法简要推导 该部 ...

  9. Luogu P6830 [IOI2020]Connecting Supertrees

    题意 好复杂,我就不写了. 题解 口胡了一下,发现我居然会 IOI 的题? 首先发现有 \(3\) 一定不合法,因为连通块里面有一个环的话 \(p_{i,j}\) 最多为 \(2\),有两个环的话就存 ...

  10. CSS动画之过渡模块

    :hover伪类选择器可以用于所有的选择器(只有在悬停时,执行选择器的属性)CSS3中新增过渡模块:transition property(属性)duration(过渡效果花费的时间)timing-f ...