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. CoderForces999E-Reachability from the Capital

    E. Reachability from the Capital time limit per test 2 seconds memory limit per test 256 megabytes i ...

  2. 用.NET模拟天体运动

    用.NET模拟天体运动 这将是一篇罕见而偏极客的文章. 我上大学时就见过一些模拟太阳系等天体运动的软件和网站,觉得非常酷炫,比如这个(http://www.astronoo.com/en/articl ...

  3. 笔记||Python3之布尔表达式+条件判断

    布尔表达式:        布尔类型:特性:只有两种情况 ---   真  /  假 1 -- True    False 2 -- type(True) ------------ <class ...

  4. springboot中实现kafa指定offset消费

    kafka消费过程难免会遇到需要重新消费的场景,例如我们消费到kafka数据之后需要进行存库操作,若某一时刻数据库down了,导致kafka消费的数据无法入库,为了弥补数据库down期间的数据损失,有 ...

  5. 【CSS】329- 非常强!3行核心css代码的rate评分组件

    像rate评分组件一般都用javascript写,所以这次将是一个全新的尝试,用css实现一个rate评分 ❗ 核心代码也就三行? 01 效果图 02 原理 主要是借助radio单选框,梳理如下: 去 ...

  6. LNMP-Nginx配置不记录静态文件、过期时间

    用户访问web网站,通常日志文件会记录很多web站点上的一些静态文件信息,如果长期不处理,日志文件会越来越大,占用的系统资源也越大,此时就需要我们配置不记录静态文件和过期时间,减少日志文件记录过多不必 ...

  7. Vue中使用iconfont

    学习博客:https://www.imooc.com/article/33597?block_id=tuijian_wz

  8. Es6中箭头函数与普通函数的区别

    Es6中箭头函数与普通函数的区别? 普通function的声明在变量提升中是最高的,箭头函数没有函数提升 箭头函数没有属于自己的this,arguments 箭头函数不能作为构造函数,不能被new,没 ...

  9. C语言中表达n次方

    C语言中表达n次方可以用pow函数. 函数原型:double pow(double x, double y) 功    能:计算x^y的值 返 回 值:计算结果 举例: double a; a = p ...

  10. laravel55

    增//save返回true false$res = new member();res->username = 'a';$res->password = 'b';dump($res-> ...