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. rs485转以太网转换器

    rs485转以太网转换器ZLAN5103 实现RS485转以太网(即485转网口)主要一个硬件转换器和一个软件驱动.硬件转换器分为两种:串口服务器(串口联网服务器.串口通信服务器).串口联网模块.RS ...

  2. scrapy LinkExtractors

    class scrapy.linkextractors.LinkExtractor Link Extractors 的目的很简单: 提取链接。 每个LinkExtractor有唯一的公共方法是 ext ...

  3. 氵0x a

    从今天开始记录这些东西,希望以后自己不出现在这上

  4. scrapy基本爬虫,采集多页

    # -*- coding: utf-8 -*- import csv import scrapy class GjSpider(scrapy.Spider): name = 'gj' allowed_ ...

  5. GeoServer发布shapfile字段名和值乱码问题解决

    摘要: 网上说了一大堆方法又是转格式咯又是改源代码了,修改很简单: 修改Styles下的你的style: Xml代码 修改Stores下你的图层的属性,设置 DBF charset为GBK 以上设置G ...

  6. 正式班D13

    2020.10.22星期四 正式班D13 修改文件内容 vim编辑 vim基础 可理解为Windows下的文本编辑器 vim可用来修改配置.写脚本 三种模式(命令模式.输入模式.末行模式) 命令模式按 ...

  7. IntelliJ IDEA 2020.2 x64 激活 2020-09-18亲测有效

    idea 激活,查阅许多资源和文章,激活码都失效,无意发现该资源(https://macwk.com/article/jetbrains-crack),亲测有效(2020-09-18),在此记录,以备 ...

  8. vue-cli3生产环境和开发环境路径的替换

    在根目录下创建两个文件,这样的好处在于不用手动去书写判断环境替换路径代码 .env.development(开发) .env.production(生产) 内容: 必须是VUE_APP前缀开头,这样w ...

  9. Java 中的 Lambda 表达式

    Lambda表达式 Lambda 表达式是 JDK1.8 的一个新特性,又称特殊的匿名内部类,可以取代大部分的匿名内部类,语法更简洁,可以写出更优雅的 Java 代码,可以极大地优化代码结构. Lam ...

  10. C. Bank Hacking 解析(思維)

    Codeforce 796 C. Bank Hacking 解析(思維) 今天我們來看看CF796C 題目連結 題目 略,請直接看原題. 前言 @copyright petjelinux 版權所有 觀 ...