博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql备份工具
阅读量:2446 次
发布时间:2019-05-10

本文共 1985 字,大约阅读时间需要 6 分钟。

备份种类

物理备份/逻辑备份

在线备份/离线备份

本地备份/远程备份:mysqldump支持远程备份,select … into outfile也可以从远程发起,但生存的文件却需在本地服务器;

全库备份/增量备份:默认增量只备份二进制日志,而xtrabackup通过比对LSN实现真正意义上的增量备份

快照备份:采用写时复制原理,Veritas/LVM/ZFS

LVM采用写时复制,创建快照时只复制元数据;当原始卷上有写操作时,将被改动的数据块的前镜像复制到快照空间;

读取快照时,如果数据块在创建快照后没有修改过,直接重定向到原始卷,否则直接读取快照中的原始数据;

更偏向于防范误操作,可运用于slave服务器上

 

也可在slave运行备份,减缓master的负载

 

对于MyISAM/InnoDB表,数据量较小时均可使用mysqldump,其中mysqldump –single-transaction不阻塞InnoDB大部分操作(DDL除外)

另一个通用的方法是关机冷备,innoDB最好设置innodb_fast_shutdown=0,以保证脏页和merge insert buffer全部执行完毕;

 

需要指出的是,由于MyISAM只支持表锁,不可能在不阻塞写操作的情况下进行有效备份;

 

 

Mysqlhotcopy

是一个perl脚本,使用flush tables/lock tablescp(scp)备份数据库,只用于MyISAMarchive

mysqldump更快,属于物理复制;

 

Xtrabackup

percona公司提供,免费;

Xtrabackup有两个工具:xtrabackupinnobackupex,前者只能备份innodbxtradb;后者是一个perl脚本封装了xtrabackup,可备份MyISAM(施加读锁)

逐页复制表文件,每次读取64个页,即16K * 64 =1M;复制redo log时则每次读取512K的数据;

Xtrabackup很好的实现了增量备份,原理如下:

进行完全备份,记录检查点LSN;进行增量备份,比较每个页LSN和上次备份时的LSN,如果大于后者,则备份并记录当前检查点LSN

--backup:备份数据库

--incremental-lsn:只复制比指定LSN高的ibd page,同—backup协同使用

 

完全备份 /backup/base

./xtrabackup –backup –target-dir=/backup/base

增量备份 /backup/delta

./xtrabackup –backup –target-dir=/backup/delta –incremental-basedir=/backup/base

准备阶段

./xtrabackup –prepare –target-dir=/backup/base

应用增量备份

./xtrabackup –prepare –target-dir=/backup/base –incremental-dir=/backup/delta

 

Innodbackupex有时会出现超时现象   

 

Ibbackup

备份innodb,收费

备份过程

记录开始备份时redo log的检查点LSN;复制.ibd/.myi以及共享表空间文件;记录复制完成后redo的检查点LSN;复制备份时产生的redo log

恢复过程

恢复表空间文件;应用redo log

 

 

binlog增量备份和恢复

Mysql自带的功能只支持备份binlog实现增量备份,恢复的时候需要mysqlbinlog应用binlog

 

Mysqlbinlog  host-bin.007  > tmp.sql Mysqlbinlog  binglog.log  | mysql

注:每个应用的binlog都会在$TMPDIR生成一个同等大小的临时文件,最好临时指定$TMPDIR变量

TMPDIR=/my/big/disk/tmp; export TMPDIR

mysqlbinlog binlog.* > binlogdump.sql

 

应当一次处理所有的binlog

Mysqlbinlog binlog.001 binlog.002 … | mysql –u root –p

假定001创建了临时表而002需要用到,若分两次处理,则临时表会在处理完001后删除,导致002无法使用

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-757958/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15480802/viewspace-757958/

你可能感兴趣的文章
mootools_使用MooTools 1.2分配锚点ID
查看>>
使用MySQL DATE_FORMAT()格式化日期字段
查看>>
mootools_使用MooTools的Digg样式动态共享小部件
查看>>
php验证码数字_PHP:验证数值和数字
查看>>
做了磁盘阵列的硬盘如何恢复_从自制软件恢复磁盘空间
查看>>
post 重复参数_参数名称重复
查看>>
保存到VS Code后如何修复ESLint错误
查看>>
Object.fromEntries
查看>>
mongdb选择存储引擎:_选择引擎:从右到左
查看>>
pubg 接口在哪里_如何在PUBG中获取绿血
查看>>
node压缩css_Node.js CSS压缩器:clean-css
查看>>
JavaScript CSS助手
查看>>
邪恶的AJAX:使用jQuery的Spyjax
查看>>
css指针悬停_CSS指针事件
查看>>
目标检测 多分辨率检测_检测视频分辨率
查看>>
ip校验和 tcp校验和_如何校验和
查看>>
小程序 iphone和安卓_如何阻止iPhone和iPad应用程序要求评级
查看>>
os x 启动引导_什么是OS X的启动板以及它如何工作?
查看>>
网络串流_串流NFL足球的最便宜方式(无需电缆)
查看>>
pandora nohup_如何更好地训练您的Pandora广播电台
查看>>