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 ...
随机推荐
- LightOJ1199 Partition Game
Alice and Bob are playing a strange game. The rules of the game are: Initially there are n piles. A ...
- [FPGA]Verilog 60s秒表计时器(最大可计时间长达9min)
[FPGA]Verilog 60s秒表计时器 1.引述 这次的实验来自于本人本科课程数电结课时的自选题目.由于这次上传是后知后觉,学校已将小脚丫板子回收,所以在这篇文章中没法贴出代码结果的效果图了,但 ...
- Selenium之下拉框操作
下拉框操作: 一般下拉框适用场景:在新增时有下拉框选项,在二级联动或多级联动有下拉(比如:在选择省市县时的多级联动下拉). 下拉框选择都有select的标签属性,存在两个属性select和option ...
- Mint UI 之loadmore组件的坑:内部元素头部被遮挡了一部分
前端经常会遇到数据分页加载的需求,mint-ui组件为大家提供了loadmore组件 但是我在使用的时候,遇到了一个问题:写好布局和样式以及逻辑之后,我的mt-loadmore标签的头部总是不顶在父元 ...
- C语言每日一练——第1题
一.程序功能 程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx.并把in.dat文件的内容输入到程序,并把输出结果输出道out.dat文件夹中例如:若输入17,5 则应该输入:19,23,29 ...
- Docker中Nginx服务器相关配置
工作中经常需要在服务器上来做一下实验,亲自动手看看效果是否与理论描述的相同.用docker可以很方便的配置所需要的环境,以下内容记录了如何用docker配置一个nginx服务器 下载nginx 从默认 ...
- C++生成完全二叉树
C++生成完全二叉树 2019-12-20 By Gauss 1.背景介绍 完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的.对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都 ...
- JVM 学习笔记一 :JVM类加载机制
前言: 最近在看JVM相关资料,这里记录下学习笔记,希望自己能坚持学完,打牢基础. 一.类加载过程 1,类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载.验证.准备.解析.初始化.使用 ...
- Jupyter 快捷键总结
转载自https://www.cnblogs.com/hello-alan/p/11376325.htmlJupyter Notebook 有两种键盘输入模式.编辑模式,允许你往单元中键入代码或文本: ...
- Python实现的手机信息骚扰技术,切勿用作违法!
今天我来讲讲我最近找到的一个小思路,利用python进行短信轰炸 首先 这是一个网站,他的业务存在短信发送 这个时候,我们打开神器burp或者其他抓包工具(最好用burp,因为repeater模块可以 ...