Mysql增量备份之Mysqldump&Mylvmbackup
Mysqldump增量备份
使用Mysqldump备份工具实现完全备份,并结合二进制日志实现增量备份。
特点:逻辑备份工具、支持InnoDB热备份、MyISAM温备份;备份与恢复较慢
一、备份数据库
mysqldump -uroot -p123.com --lock-all-tables --flush-logs --databases test > /mysqlbackup/test_`date +%F`.sql
--lock-all-tables:备份时为所有表请求加锁
--flush-log:备份之前刷新日志
二、备份二进制文件
在test库中创建一个表,增加数据,模拟增量备份,并查看当前二进制日志位置。
cp /usr/local/mysql/data/mysqld-bin.* /mysqlbackup
mysql> create table abc (number INT(), name varchar());
mysql> show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| mysqld-bin. | | | |
+-------------------+----------+--------------+------------------+
三、查看二进制文件和完整备份后LOG_POS值在什么位置
less /mysqlbackup/test_2013--.sql #前几行可以看到在106
-- Position to start replication or point-in-time recovery from
-- CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000005', MASTER_LOG_POS=;
四、二进制增量备份
1>.完整备份后到现在备份:
mysqlbinlog --start-position= /var/lib/mysql/mysqld-bin/mysql/mysqld-bin. > /mysqlbackup/test_incremental.sql
--start-position:从哪个位置开始导出二进制日志
--stop-position:从哪个位置结束,到末尾可以不指定
2>.向数据库添加一条记录,然后删除数据库,再恢复到当前数据
mysql>create table abd (number INT(),name varchar());
mysql> show master status; #查看二进制所在位置
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| mysqld-bin. | | | |
+-------------------+----------+--------------+------------------+
五、恢复数据到当前数据,需要恢复完整备份+增量备份+增量备份后删除之前的二进制文件
mysqlbinlog /var/lib/mysql/mysqld-bin. #查看二进制,看在什么时候做的,文件最后下面看出在446
# at
# :: server id end_log_pos Query thread_id= exec_time= error_code=
SET TIMESTAMP=/*!*/;
drop database test
/*!*/;
六、导出之前删除数据库至增量备份后的二进制文件
mysqlbinlog --start-position= --stop-position= /var/lib/mysql/mysqld-bin. > /mysqlbackup/test_446.sql
mysql> source/backupn/test_2013--.sql #恢复完整备份
mysql> source/backup/test_incremental.sql #恢复增量备份
mysql> source/backup/test_446.sql #恢复增量后至删除前的数据
mysql> use test;
mysql> show tables;查看数据恢复成功!
Mylvmbackup快速完整备份
mylvmbackup 是一个工具,用于快速创建完整的物理备份MySQL服务器的数据文件,备份数据时,将锁定 MySQL 所有的表,并将缓存中数据写到磁盘,然后执行 LVM 快照后解锁。
使用LVM逻辑卷快照功能实现几乎热血备份的完全备份,并结合二进制日志实现增量备份。
特点:几乎接近于热备份、物理备份、备份与恢复较快。
必须mysql数据库存放目录是LVM卷下,如果要做增量备份,bin-log日志也要在LVM卷下,而且LVM卷要有空间给快照备份。
修改mysql和bin-log日志位置:
vi /etc/my.cnf
datadir=/myvg/data
bin-log=/myvg/binlog/mysqld-bin
mysql有以下几种日志:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
一、创建LVM卷
1>.创建物理卷
pvcreate /dev/sdb
2>.创建卷组
vgcreate myvg /dev/sdb
3>.创建逻辑卷
lvcreate -n mylv -L 19G myvg
4>.格式化文件系统
mkfs.ext4 /dev/myvg/mylv
5>.挂载使用
mount /dev/myvg/mylv/ /data
二、安装使用Mylvmbackup
wget http://www.lenzg.net/mylvmbackup/mylvmbackup-0.14-0.noarch.rpm
yum install -y perl-TimeDate perl-Config-IniFiles perl-DBD-MySQL #安装依赖包
rpm -ivh mylvmbackup-0.14-.noarch.rpm
1.修改配置文件
vi /etc/mylvmbackup.conf
[mysql]
user=root
password=.com
host=localhost
port=
socket=/tmp/mysql.sock
mycnf=/etc/my.cnf
[lvm]
vgname=myvg #卷组的名字
lvname=mylv #逻辑卷的名字
lvsize=5G #备份时创建的snapshot的大小
[fs]
mountdir=/opt/snap_mnt #snapshot的mount位置
backupdir=/backup #备份打包后的存放位置
relpath=mysqldata #如果只是想备份逻辑卷下的某个目录的话,则要指出来
[tools]
lvcreate=/usr/sbin/lvcreate
lvremove=/usr/sbin/lvremove
mount=/bin/mount
tar=/bin/tar
umount=/bin/umount
[misc]
prefix=backup #备份打包文件的命名前缀
suffix=_mysql #定义备份文件名后缀
2.备份数据库并验证备份文件
root@ ~]# mylvmbackup
:: Info: Running: lvremove -f /dev/myvg/mysql_snap
Logical volume "mysql_snap"successfully removed
:: Info: DONE: Removing snapshot
出现以上信息表示备份成功,最后删除快照卷! [root@ ~]# ls /mysqlbackup/
backup-201309029_115532_mysql.tar.gz
Mysql增量备份之Mysqldump&Mylvmbackup的更多相关文章
- MySQL数据备份之mysqldump使用
mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...
- MySQL数据备份之mysqldump
mysqldump常用于MySQL数据库逻辑备份 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dum ...
- MySQL数据备份之mysqldump使用(转)
mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...
- MySQL数据备份之mysqldump使用(转)
文章转自 :https://www.cnblogs.com/jpfss/p/7867668.html mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mys ...
- innobackupex做MySQL增量备份及恢复【转】
创建备份用户 mysql> grant process,reload,lock tables,replication client on *.* to 'backup'@'localhost' ...
- MYSQL数据库自动本地/异地双备份/MYSQL增量备份
构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...
- windows下mysql增量备份与全备份批处理
win下的全备批处理 批处理用于游戏服务器,经过严格测试,且正式使用,主要用来完全备份数据库,当然.这只是将数备份出来 ,至于如何将备份出来的数据远程传送的远程服务器上可以调用ftp的功能,此脚本并未 ...
- 【转】mysql增量备份恢复实战企业案例
来源地址:http://seanlook.com/2014/12/05/mysql_incremental_backup_example/ 小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但 ...
- mysql增量备份脚本
#!/bin/sh ############################### # 此脚本用来增量备份 # 此文件名:mysqldailybackup.sh # # Author: zhangro ...
随机推荐
- 每个pool pg数计算
ceph PGs per Pool Calculator 原文档:http://xiaqunfeng.cc/2017/09/18/ceph-PGs-per-Pool-Calculator/ 2017- ...
- ARTS-S python把非汉语和非字母的字符替换成空格
# coding: utf-8 import re text = "aa[bb,aa#cWc中a国" FILTER_PUNTS = re.compile("[^\u4E0 ...
- 解决老浏览器不支持ES6的方法
转载地址:http://www.rockyxia.com/?p=669 为什么ES6会有兼容性问题? 由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,而到了今天,我们在编程中如果使 ...
- LVS+Keepalived-DR模式
Environment:4台CentOS机器 两台LVS 两台web服务器 LVS主备的操作,都需要安装ipvsadm和keepalived yum -y install ipvsadm keepal ...
- django基础之day09,创建一个forms表单组件进行表单校验,知识点:error_messages,label,required,invalid,局部钩子函数,全局钩子函数, forms_obj.cleaned_data,forms_obj.errors,locals(), {{ forms.label }}:{{ forms }},{{ forms.errors.0 }}
利用forms表单组件进行表单校验,完成用户名,密码,确认密码,邮箱功能的校验 该作业包含了下面的知识点: error_messages,label,required,invalid,局部钩子函数,全 ...
- java设计模式(一)动态代理模式,JDK与CGLIB分析
-本想着这个知识点放到Spring Aop说说可能更合适一点,但因为上一篇有所提到就简单分析下,不足之处请多多评论留言,相互学习,有所提高才是关键! 什么是代理模式: 记得有本24种设计模式的书讲到代 ...
- test-hellow world!
//for C #include<stdio.h> int main() { printf("hellow world!"); return 0; } #for pyt ...
- Docker图形化工具Portainer详解
一.介绍 说明: Portainer是易于使用的软件,可为软件开发人员和IT操作人员提供直观的界面. Portainer为你提供Docker环境的详细概述,并允许你管理容器,镜像,网络和数据卷 ...
- vue 中 px转vw的用法
下面介绍最简单的用法 1 下载依赖 npm install postcss-import postcss-loader postcss-px-to-viewport --save-dev 2 在项目根 ...
- jTopo HTML5 Canvas 画图组件
jTopo是什么? jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包. jTopo关注于数据的图形展示,它是面 ...