MySQL三种备份
一)备份分类
1
2
3
4
5
6
7
8
9
10
11
12
|
冷备:cold backup数据必须下线后备份 温备:warm backup全局施加共享锁,只能读,不能写 热备:hot backup数据不离线,读写都能正常进行 备份的数据集 完全备份:full backup 部分备份:partial backup 备份时的接口(是直接备份数据文件还是通过mysql服务器导出数据) 物理备份:直接复制(归档)数据文件的备份方式:physical backup 逻辑备份:把数据从库中提出来保存为文本文件:logical backup 完全备份:full backup 增量备份:incrementl backup 差异备份:fidderential backup |
二)备份工具mysqldump讲解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
mysqldump:逻辑备份工具 InnoDB引擎热备,MyISM温备,Aria温备 备份和恢复的过程比较慢,很难实现差异或增量备份 恢复时,如果目标库不存在,需要事先手动创建 常用选项: --all-databases:备份所有库 --databases db1 db2...:备份指定的多个库 注意:备份前要加锁: --lock-all-tables:请求锁定所有表之后在备份。 --lock-tables:锁定指定的表。 --single-transaction:能够对InnoDB存储引擎实现热备。 备份代码: --events:备份事件调度器代码 --routines:备份存储过程和存储函数 --triggers:备份触发器 备份时滚动日志: --flush-logs:备份前,请求到锁之后滚动日志。 复制时的同步位置标记 --master-data=【 0 | 1 | 2 】 0 表示不记录 1 表示记录change master语句 2 记录为注释的change master语句 使用mysqldump备份: 请求锁:--lock-all-tables或使用--singe-transaction进行innoDB热备 滚动日志:--flush-logs 选定要备份的库:--databases 记录二进制日志文件及位置:--master-data= 0 | 1 | 2 |
mysqldump三种备份方式:
第一种:
备份:[root@station141 ~]# mysqldump --databases benet > /tmp/benet.sql
mysql> unlock tables;解锁
mysql> drop database benet;删除库
Query OK, 1 row affected (0.70 sec)
恢复
第二种方式备份:
mysqldump --databases benet --lock-all-tables --flush-logs > /tmp/benet.sql直接备份的
第三种方式备份:主要是针对innoDB引擎备份,实现热备。
mysqldump --databases benet --single-transactions --flush-logs > /tmp/benet.3.sql
备份所有数据库
mysqldump --all-databases > /tmp/all.sql
Xtrabackup备份工具使用如下:
yum -y install percona-xtrabackup-2.1.8-733.rhel6.x86_64.rpm
yum -y install percona-toolkit-2.2.7-1.noarch.rpm
备份全部数据库:
innobackupex --user=root /myback
1
2
3
4
5
6
|
[root@localhost 2014 - 04 -14_23- 39 - 44 ]# cat xtrabackup_checkpoints backup_type = full-backuped from_lsn = 0 to_lsn = 1619068 last_lsn = 1619068 compact = 0 |
恢复数据库
innobackupex --apply-log /mydata/2014-04-14_23-39-44/先把数据整理出来
innobackupex --copy-back /mydata/2014-04-14_23-39-44/根据全备份恢复数据
做增量备份
innobackupex --incremental /mydata/ --incremental-basedir=/mydata/2014-04-14_23-39-44/
基于上次的全备做
1
2
3
4
5
6
|
[root@localhost 2014 - 04 -14_23- 45 - 11 ]# cat xtrabackup_checkpoints backup_type = incremental from_lsn = 1619068 to_lsn = 1619478 last_lsn = 1619478 compact = 0 |
查看是增量备份
恢复增量备份,依次先恢复,全备,后增量
1
2
3
4
|
innobackupex --apply-log --redo-only /mydata/ 2014 - 04 -14_23- 39 - 44 / innobackupex --apply-log --redo-only /mydata/ 2014 - 04 -14_23- 39 - 44 / --incremental-dir=/mydata/ 2014 - 04 -14_23- 45 - 11 / innobackupex --apply-log --redo-only /mydata/ 2014 - 04 -14_23- 39 - 44 / --incremental-dir=/mydata/ 2014 - 04 -14_23- 49 - 01 / innobackupex --copy-back /mydata/ 2014 - 04 -14_23- 39 - 44 / |
LVM-snapshot:基于lvm快照备份
大致步骤:
1)事务日志跟数据文件必须在同一个卷上
2)创建快照卷之前,要请求mysql的全局锁,在快照创建完成之后释放锁
3)请求全局锁完成之后,做一次日志滚动;做二进制日志及位置标记(手动进行);
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@localhost ~]# mount /dev/mapper/vg0-root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid= 5 ,mode= 620 ) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0- var on / var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on / var /lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/mapper/myvg-lvmy on /mnt type ext4 (rw) /mnt下放的就是mysql数据库得数 |
1
2
3
|
[root@localhost ~]# vim /etc/my.cnf thread_concurrency = 8 datadir = /mnt |
安装数据库的时候先创建好个逻辑卷,安装目录为/mnt下。
请求全局锁,滚动日志
MariaDB [(none)]> flush tables with read lock;
MariaDB [(none)]> flush logs;
记录二进制日志位置
mysql -e 'show master status' > mysql.txt
创建快照
[root@localhost ~]# lvcreate -L 1G -s -n mydata-snap -p r /dev/myvg/mydata
解锁
MariaDB [(none)]> unlock tables;
挂载快照并且备份
mount /dev/myvg/mysql-snap /media/
tar -Jcf /tmp.mysq.tar.xz /media/*
卸载并删除快照
1
2
3
4
|
[root@localhost ~]# umount /media/ [root@localhost ~]# lvremove /dev/myvg/mysql-snap Do you really want to remove active logical volume mysql-snap? [y/n]: y Logical volume "mysql-snap" successfully removed |
MySQL三种备份的更多相关文章
- 【转】Mysql三种备份详解
一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二.备份需要考虑的问题 可以容忍丢失多长时间的数据:恢复数据要在多长时间内 ...
- mysql三种备份方式
一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二.备份需要考虑的问题 可以容忍丢失多长时间的数据:恢复数据要在多长时间内 ...
- mysql 三种恢复方式
为了保障数据的安全,需要定期对数据进行备份.备份的方式有很多种,效果也不一样.一旦数据库中的数据出现了错误,就需要使用备份好的数据进行还原恢复.从而将损失降到最低.下面我们来了解一下MySQL常见的有 ...
- MySQL三种存储引擎总结
MySQL三种存储引擎 MyISAM.InnoDB.MEMORY 1.MyISAM MyISAM,3.23.34a前的默认存储引擎. 优缺点 优点 在于占用空间小,处理速度快. 缺点 不支持事务的完整 ...
- mysql三种带事务批量插入
原文:mysql三种带事务批量插入 c#之mysql三种带事务批量插入 前言 对于像我这样的业务程序员开发一些表单内容是家常便饭的事情,说道表单 我们都避免不了多行内容的提交,多行内容保存,自然要用到 ...
- [mysql]三种方法为root账户指定密码
前言:前段时间把mysql安装后一直没管它,当时就在奇怪为什么mysql登陆不要密码,原来一直用的超用户账户登陆的(简称超级用户) 其实只怪自己太无知,之前一直用的phpbydamin进行的数据库的可 ...
- Oracle数据库三种备份方案
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用 ...
- Linux下SVN的三种备份方式
原文链接:http://blog.csdn.net/windone0109/article/details/4040772 (本文例子基于FreeBSD/Linux实现,windows环境请自己做出相 ...
- MySQL三种InnoDB、MyISAM和MEMORY存储引擎对比
什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能 ...
随机推荐
- puthon进程开发
进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mutiprocess.P ...
- 【JavaScript】checkBox的多选行<tr>信息获取
页面的列表table显示(后台model.addAttribute("page", page);传来page信息,page通过foreach标签迭代展示表格数据): <!-- ...
- Tajo--一个分布式数据仓库系统(概述)
前言:一直对OS X比较仰慕,刚工作送给自己的第一件大礼就是mac pro,嘿嘿.最近在看一个叫tajo得分布式数据仓库,需要依赖protoc 2.4.1,2.5.0都不work,不知道为啥,我在装2 ...
- HUD.2795 Billboard ( 线段树 区间最值 单点更新 单点查询 建树技巧)
HUD.2795 Billboard ( 线段树 区间最值 单点更新 单点查询 建树技巧) 题意分析 题目大意:一个h*w的公告牌,要在其上贴公告. 输入的是1*wi的w值,这些是公告的尺寸. 贴公告 ...
- word----遇到问题-----word中插入的图片无法左对齐----格式按钮为灰色
当我们在用word时,有时要插入图片,却发现,插入的图片只在中间位置,不能拖到左边,这时怎么办呢 主要是图层的高低原因导致的不能拖动. 这个时候我们只需要设置一下图片的图层类型即可. 对着图片右键在设 ...
- c++常量详解
概念 常量是存放固定且不可变值的,一旦确定初始值则在程序其它地方不可改变, 所以const对象必须初始化.常量一般使用const关键字来修饰. const 对象可以大致分为三类: 1. const i ...
- C++编译报错:重复定义
http://note.youdao.com/noteshare?id=cb2bed862a2daae89775603168f297af
- Python基础之面向对象(初级篇)
概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...
- 「Python」5个开源项目
1-OpenAI universe Universe是一个能在世界上所有的游戏.网站和其他应用中,衡量和训练AI通用智能的软件平台. Universe,AI代理通过称为虚拟网络计算或VNC发送模拟的鼠 ...
- [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.2 大间距的直观理解- Large Margin I ...