mysql之冷备和mysqldump、mydumper、xtrabackup备份
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 head -n 35 于是在保证备份一致性(不加锁)的情况下语句是: mysqldump 可通过mysqldump --help查看其它参数信息. -A, --add-drop-database 和 --add-drop-table(--skip-add-drop-table) 参数:意思是如果库或者表已经存在,就删除掉尽量在恢复之前,就是手动删掉数据. -c, -B, -K, -h -x, -l, --max-allowed-packet=# -d, --no-data -q, --quick --replace --hex-blob --triggers -E, --events 上面大多数参数对MYISAM存储引擎不起作用,因为其不支持事务,没有RR模式,故无法保证事务一致性,故备份需加锁. mysqldump备份特点:1.简单,不需要额外安装,sql文件易读(.sql .txt 2.该工具单线程,不能并发备份恢复 ,因为是逻辑备份,数据量越大,恢复越慢. |
2.2mysqldump备份及恢复语句
| 备份所有数据库:
mysqldump -uroot -p -S /tmp/mysql3306.sock --master-data=2 备份单个数据库: mysqldump -uroot -p -S /tmp/mysql3306.sock --master-data=2 导出表: mysqldump -uroot -p -S /tmp/mysql3306.sock --master-data=2 导出表结构: mysqldump -uroot -p -S /tmp/mysql3306.sock --master-data=2 mysqldump导入数据:方法1. mysql -uroot -proot 方法2. mysql > source 对于恢复数据: 尽量不要跨机房和网段等恢复,尽量将备份文件拷贝到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 2.tar zxvf 3.cd 4.mkdir 5.cd 6.cmake 7.make 8.make 安装完成后再ls /usr/local/bin里有该命令. 其中mydumper是逻辑备份工具,myloader是逻辑恢复工具. 查看使用方法报错: mydumper --help报错。 解决方法: 执行: 执行: 再vim include export |
mysql之冷备和mysqldump、mydumper、xtrabackup备份的更多相关文章
- mysqldump+mydumper+xtrabackup备份原理流程
mysqldump备份原理 备份的基本流程如下: 1.调用FTWRL(flush tables with read lock),全局禁止读写 2.开启快照读,获取此时的快照(仅对innodb表起作用) ...
- mysql备份工具 :mysqldump mydumper Xtrabackup 原理
备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...
- MySql在生产环境中是用mysqldump还是xtrabackup备份和恢复数据
如题,究竟该使用mysqldump还是xtrabackup,要说用,两个都能备份,都支持热备,但是生产环境我们要考虑的是效率,就是不管备份还是恢复,都要快,要稳定. 之前我在维护mysql数据库的时候 ...
- mysqldump和xtrabackup备份原理实现说明
背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. ...
- mysql在Windows下使用mysqldump命令手动备份数据库和自动备份数据库
手动备份: cmd控制台: 先进入mysql所在的bin目录下,如:cd C:\Program Files\MySQL\MySQL Server 5.5\bin mysqldump -u root - ...
- MySQL入门篇(七)之Xtrabackup备份与恢复
一.Xtrabackup介绍 MySQL冷备.mysqldump.MySQL热拷贝都无法实现对数据库进行增量备份.在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况 ...
- mysql运维入门1:基础及备份还原
存储引擎 myisam 表强调的是性能 执行速度比innodb类型更快 不提供事务支持 如果执行大量的select操作,是首选 支持表锁,不支持行锁 innodb 提供事务支持.外键等高级数据库功能 ...
- 使用xtrabackup(innobackupex)实现MySQL的热备
mysql 的热备http://www.178linux.com/10139http://www.linuxidc.com/Linux/2014-04/99671.htmhttp://634871.b ...
- mysql的2种备份mysqldump 和 Xtrabackup
mysqldump备份方式 备份 mysqldump -uroot -p 数据库名 > 备份的文件名 恢复(先关闭数据库) mysql -uroot -p 数据库名 < 备份的文件名 Xt ...
随机推荐
- 【C语言C++编程入门】程序的可读性和函数的调用!
一个简单程序的结构 你已经看过一个具体的例子,下面可以了解一些 C程序的基本规则了. 程序由一个或多个函数组成,其中一定有一个名为 main()的函数.函数的描述由函数头和函数体组成.函数头包括预处理 ...
- 【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
测试App Service是否可以访问其他DNS 当应用服务(Azure App Service)创建完成后,想通过ping命令来查看是否可以访问其他站点或解析DNS,但是发现ping命令无法使用.这 ...
- C#中string类的几个方法(indexof、lastindexof、substring)(转)
String.IndexOf String.IndexOf 方法 (Char, Int32, Int32) 报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检查指定数量的字符位置 ...
- C++学习---栈的构建及操作
一.顺序栈 #include <iostream> using namespace std; #define MAXSIZE 100 //栈的最大容量 typedef struct { i ...
- Windows下mysql5.6升级到5.7的方法
Mysql的升级方式分为两种:原地升级和逻辑升级.这两种升级方式,本质没有什么区别的. 只是在对数据文件的处理上有些区别而已.原地升级是直接将数据文件进行拷贝,而逻辑升级对数据文件的处理方式是通过逻辑 ...
- TCMalloc 内存分配原理简析
一.TCMalloc TCMalloc简介 为啥要介绍 TCMalloc? 因为golang的内存分配算法绝大部分都是来自 TCMalloc,golang只改动了其中的一小部分.所以要理解golang ...
- c语言之指针特性
0x01.指针的声明 char x; char* x; short y; short* y; int z; int* z; float f; float* f; double d; double* d ...
- Map 和 Json 互转
Json 转 Map<String,String> String query = "{tableName:\"iov_biz_car_info\",selec ...
- 4G DTU模块的工作原理
DTU是无线数据传输模块,4G DTU又被称4G模块,是4G网络进行远距离传输的设备,即串口服务器的无线版,其功能与串口服务器类似. 4G DTU是一种物联网无线数据终端,利用公用运营 ...
- model的基础操作
1.创建表 1.1 Meta源信息 from django.db import models class UserInfo(models.Model): username = models.CharF ...