MySQL基于mysqldump及lvmsnapshot备份恢复
一、备份对象
数据
配置文件
代码:存储过程,存储函数,触发器
跟复制相关的配置
二进制日志文件
二、备份工具
- mysqldump:逻辑备份工具
InnoDB热备、MyISAM温备、Aria温备
备份和恢复过程较慢
mysqldumper:多线程的mysqldump
很难实现差异或增量备份
- lvm-snapshot:
接近于热备的工具:因为要先请求全局锁,而后创建快照,并在创建快照完成后释放全局锁
使用copy、tar等工具进行物理备份
备份和恢复速度较快
很难实现增量备份,并且请求全局锁需要等待一段时间,在繁忙的服务器上尤其如此
- Innobase:商业备份工具,innobackup
Xtrabackup:由Percona提供的开源备份工具
InnoDB热备,增量备份
MyISAM温备,不支持增量备份
物理备份,速度快
- mysqlhotcopy:几乎冷备
三、mysqldump(适用数据量5G以下)
备份单个库,恢复时如果目标库不存在,需要手动创建
mysqldump [OPTIONS] database [tables]
备份指定的多个库
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
备份所有库
mysqldump [OPTIONS] --all-databases [OPTIONS]
注意:备份前要加锁(下面两个不要同时使用)
--lock-all-tables:请求锁定所有表之后再备份,对MyISAM、InnoDB、Aria做温备
--single-transaction:能够对InnoDB存储引擎实现热备
备份代码:
--events:备份事件调度器代码
--routines:备份存储过程和存储函数
--triggers:备份触发器
备份时滚动日志:
--flush-logs:备份前、请求到锁之后滚动日志
复制时的同步位置标记:
--master-data=[0|1|2]
0:不记录
1:记录为CHANGE MASTER语句
2:记录为注释的CHANGE MASTER语句
使用mysqldump备份:
请求锁:--lock-all-tables或使用--single-transaction进行InnoDB热备
滚动日志:--flush-logs
选定要备份的库:--databases
记录二进制文件及为位置:--master-data=2
mysqldump --databases fansik --lock-all-tables --flush-logs > fansik.sql
或者
mysqldump --databases fansik --single-transaction --flush-logs > fansik.sql
具体操作:
恢复:
建议:关闭二进制日志,关闭其他用户连接
备份策略:基于mysqldump
备份:mysqldump+二进制日志文件
周日做一次完全备份:备份的同时滚动日志
周一至周六:备份二进制日志
恢复:
完全备份+各二进制日志文件中至此刻的事件
对于MySQL配置文件,以及与MySQL相关的配置文件再每次修改后都应该直接进行备份
四、lvm-snapshot:基于LVM快照的备份
1、事务日志跟数据文件文件必须在同一个卷上;
2、创建快照之前,要请求MySQL的全局锁;在快照创建完成之后释放锁;
3、请求全局锁完成之后,做一次日志滚动;做二进制日志文件及位置标记(手动进行);
五、lvm-snapshot备份步骤
1、请求全局锁,并滚动日志
mysql> FLUSH TABLES WITH READ LOCK;
mysql> FLUSH LOGS;
2、做二进制日志文件及位置标记(手动进行);
# mysql -e 'show master status' > /tmp/fansik
3、创建快照卷
# lvcreate -L 100M -s -n fansik -p r /path/ fansik_lv
4、释放全局锁
mysql> UNLOCK TABLES;
5、挂载快照并备份
cp
6、备份完成之后删除快照卷(卸载)
六、lvm-snapshot恢复步骤
1、二进制日志保存好,提取备份之后的所有事件至某sql脚本中
2、还原数据,修改权限及属主数组等,并启动mysql
3、座即时点还原
MySQL基于mysqldump及lvmsnapshot备份恢复的更多相关文章
- MySQL基于LVM快照的备份恢复(临时)
目录1.数据库全备份2.准备LVM卷3.数据恢复到LVM卷4.基于LVM快照备份数据5.数据灾难恢复6.总结 写在前面:测试环境中已安装有mysql 5.5.36数据库,但数据目录没有存放在LVM卷, ...
- MySQL 基于mysqldump备份工具实战演练
前言: 细节提示:先执行 show global variables like 'log_bin';看看log_bin的值,如果服务器变量log_bin的值为OFF,需要修改my.cnf配置文件,将l ...
- MySQL for OPS 06:备份恢复
写在前面的话 人在河边走,湿鞋是早晚是事情,操作服务器,数据库也一样.谁也不知道自己哪一天控制不住自己就手贱.这时候有两个东西能救我们,一是备份,二是 bin log,bin log 前面讲了,但是 ...
- mysql用户授权及数据备份恢复
用户授权与权限撤销 修改数据库管理员从本机登陆的密码测试: mysqladmin -hlocalhost -uroot -p password "新密码" Enter passwo ...
- 关于MySQL 事务,视图,索引,数据库备份,恢复
/*创建数据库*/ CREATE DATABASE `mybank`;/*创建表*/USE mybank;CREATE TABLE `bank`( `customerName` CHAR(1 ...
- mysql 基于lvm快照的备份
1.查看磁盘数 ls /dev/ | grep sd 2.快照备份 pvcreate /dev/sdb #制作成物理卷vgcreate testvg /dev/sdblvcreate -L200M - ...
- MySQL基于mysqldump快速搭建从库
MySQL主从搭建总的来说大致分为3个步骤: 1. 为主从实例添加复制所需参数以及创建复制用的账户 2. 需要 […]
- MySQL 利用xtrabackup进行增量备份详细过程汇总 (转)
Xtrabackup下载.安装以及全量备份请参考:http://blog.itpub.net/26230597/viewspace-1465772/ 1,创建mysql备份用户 mysql -uroo ...
- MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot)
MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是快照卷 如上图所示,原卷和快照卷可以不一样大,因为 ...
随机推荐
- HDU 4085 斯坦纳树
题目大意: 给定无向图,让前k个点都能到达后k个点(保护地)中的一个,而且前k个点每个需要占据后k个中的一个,相互不冲突 找到实现这个条件达到的选择边的最小总权值 这里很容易看出,最后选到的边不保证整 ...
- android 判断网络是否连接
package com.liucanwen.baidulocation.util; import android.app.Activity; import android.content.Contex ...
- 初识VBS
做了测试快一年了吧,迫于无奈,要学习自动化的只是,首先想到了QTP,但是QTP的脚本是VBS,所以必须要会VBS. VBS其实就是一门计算机编程语言,但是缺少计算机程序语言中的部分要素,对于事件的描述 ...
- hdu1878 欧拉回路
//Accepted 1240 KB 250 ms //水题 欧拉回路 //连通+节点度均为偶数 #include <cstdio> #include <cstring> #i ...
- c++父类指针强制转为子类指针后的测试(帮助理解指针访问成员的本质)(反多态)
看下面例子: #include "stdafx.h" #include <iostream> class A { //父类 public: void f() / ...
- linux下IPTABLES配置详解
如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...
- Tarjan算法求有向图的强连通分量
算法描述 tarjan算法思想:从一个点开始,进行深度优先遍历,同时记录到达该点的时间(dfn记录到达i点的时间),和该点能直接或间接到达的点中的最早的时间(low[i]记录这个值,其中low的初始值 ...
- N的阶乘的长度 V2(斯特林近似) 求 某个大数的阶乘的位数 .
求某个大数的阶乘的位数 . 得到的值 需要 +1 得到真正的位数 斯特林公式在理论和应用上都具有重要的价值,对于概率论的发展也有着重大的意义.在数学分析中,大多都是利用Г函数.级数和含参变量的积分等 ...
- 学习笔记:APP切图那点事儿–详细介绍android和ios平台
学习笔记:APP切图那点事儿–详细介绍android和ios平台 转载自:http://www.woofeng.cn/articles/168.html 版权归原作者所有 作者:亚茹有李 原文地址 ...
- C++学习笔记2:关于开发
一.简单的开发流程 (1)定义要被解决的问题: 明确定义待被解决问题,比如具体实现什么功能等. (2)设计解决问题的方法: 好方法的有哪些特点: 1.方法明确: 2.规范化:(已被验证过) 3.模块化 ...