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的更多相关文章

  1. MySQL数据备份之mysqldump使用

    mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...

  2. MySQL数据备份之mysqldump

      mysqldump常用于MySQL数据库逻辑备份 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dum ...

  3. MySQL数据备份之mysqldump使用(转)

    mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...

  4. MySQL数据备份之mysqldump使用(转)

    文章转自 :https://www.cnblogs.com/jpfss/p/7867668.html mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mys ...

  5. innobackupex做MySQL增量备份及恢复【转】

    创建备份用户 mysql> grant process,reload,lock tables,replication client on *.* to 'backup'@'localhost' ...

  6. MYSQL数据库自动本地/异地双备份/MYSQL增量备份

    构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...

  7. windows下mysql增量备份与全备份批处理

    win下的全备批处理 批处理用于游戏服务器,经过严格测试,且正式使用,主要用来完全备份数据库,当然.这只是将数备份出来 ,至于如何将备份出来的数据远程传送的远程服务器上可以调用ftp的功能,此脚本并未 ...

  8. 【转】mysql增量备份恢复实战企业案例

    来源地址:http://seanlook.com/2014/12/05/mysql_incremental_backup_example/ 小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但 ...

  9. mysql增量备份脚本

    #!/bin/sh ############################### # 此脚本用来增量备份 # 此文件名:mysqldailybackup.sh # # Author: zhangro ...

随机推荐

  1. 每个pool pg数计算

    ceph PGs per Pool Calculator 原文档:http://xiaqunfeng.cc/2017/09/18/ceph-PGs-per-Pool-Calculator/ 2017- ...

  2. ARTS-S python把非汉语和非字母的字符替换成空格

    # coding: utf-8 import re text = "aa[bb,aa#cWc中a国" FILTER_PUNTS = re.compile("[^\u4E0 ...

  3. 解决老浏览器不支持ES6的方法

    转载地址:http://www.rockyxia.com/?p=669 为什么ES6会有兼容性问题? 由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,而到了今天,我们在编程中如果使 ...

  4. LVS+Keepalived-DR模式

    Environment:4台CentOS机器 两台LVS 两台web服务器 LVS主备的操作,都需要安装ipvsadm和keepalived yum -y install ipvsadm keepal ...

  5. 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,局部钩子函数,全 ...

  6. java设计模式(一)动态代理模式,JDK与CGLIB分析

    -本想着这个知识点放到Spring Aop说说可能更合适一点,但因为上一篇有所提到就简单分析下,不足之处请多多评论留言,相互学习,有所提高才是关键! 什么是代理模式: 记得有本24种设计模式的书讲到代 ...

  7. test-hellow world!

    //for C #include<stdio.h> int main() { printf("hellow world!"); return 0; } #for pyt ...

  8. Docker图形化工具Portainer详解

    一.介绍 说明:   Portainer是易于使用的软件,可为软件开发人员和IT操作人员提供直观的界面.   Portainer为你提供Docker环境的详细概述,并允许你管理容器,镜像,网络和数据卷 ...

  9. vue 中 px转vw的用法

    下面介绍最简单的用法 1 下载依赖 npm install postcss-import postcss-loader postcss-px-to-viewport --save-dev 2 在项目根 ...

  10. jTopo HTML5 Canvas 画图组件

    jTopo是什么? jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包. jTopo关注于数据的图形展示,它是面 ...