|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!为何要备份:
备份的几个主要来由:
劫难规复、需求改动、审计、测试等;如"测试"按期用最新的临盆情况中的数据更新到测试情况办事器
必要思索的成绩:
1、在不招致严峻成果的情形下,能够容忍丧失几数据?必要妨碍规复,仍是能够承受自从前次一样平常备份后一切的数据丧失?
2、规复必要在多长工夫内完成?哪一种范例的宕机是能够承受的?哪一种影响是使用和用户能够承受的?当情形产生时,又该如何延续供应办事等?
3、必要规复甚么?罕见的是规复全部办事器、单个数据库、单个表,或只是特定的事件或语句等
备份范例:
依据数据库是不是必要在线备份仍是离线备份,可分为以下几点:
热备份:备份时代不必要办事停机,营业不受影响
温备份:备份时代仅同意读的哀求
冷备份:备份时代必要封闭Mysql办事或读写哀求都不受影响
备份体例:
完整备份:fullbackup备份全体数据集
增量备份:incrementalbackup前次完整备份或增量备份以来改动的数据
差别备份:differentialbackup前次完整备份以来改动的数据
规复数据时必要用到的备份文件:
完整+增量备份体例
必要完整备份+增量备份+二进制文件
完整+差别备份体例
必要完整备份+差别备份+二进制文件
逻辑备份仍是物理备份:
逻辑备份:
长处:
逻辑备份可使用编纂器或文本处置工具举行编纂或检察
规复十分复杂
对照天真
与存储引擎有关
有助于制止数据破坏
弱点:
必需由数据库办事器完成逻辑备份事情,因而必要利用办事器更多资本
备份出的数据占用更年夜的空间
浮点数大概会丧失精度
数据复原以后,索引必要重修
物理备份:
长处:
备份与规复数据对照复杂
InnoDB与MyISAM的物理备份简单跨平台、操纵体系和Mysql版本
规复速率对照快,不必要从头构建索引
弱点:
InnoDB的原始文件会比逻辑备份年夜很多
物理备份不是总能够跨平台、操纵体系及Mysql版本;文件名巨细写敏感和浮点格局有大概会有成绩
备份的工具:
数据文件、设置文件、代码:存储历程,存储函数、触发器等、二进制日记、事件日记、中继日记、办事器设置、办理剧本、义务企图等
企图Mysql备份计划:
1、在临盆情况中,关于数据来讲,备份是需要的;并选择合适的备份范例
2、保存多个备份集
3、按期从备份中抽取数据举行规复测试
4、保留进制日记文件以用于基于妨碍工夫点规复,数据不宜于二进制文件放在统一个地位
5、假如不借助于备份工具备份,必要考证备份是不是一般
6、经由过程测试练习训练全部数据的备份和规复,测试规复所必要的资本(如:CPU、磁盘空间、工夫及收集带宽等)
7、关于宁静性要思索全面,假如有人能打仗到临盆办事器,他是不是能会见备份办事器
利用Mysqldump备份工具完成完整备份,并分离二进制日记完成增量备份
特性:逻辑备份工具、撑持InnoDB热备份、MyISAM温备份;备份与规复较慢
利用LVM逻辑卷快照功效完成几近热血备份的完整备份,并分离二进制日记完成增量备份;复杂先容"mylvmbackup"一键备份工具的利用
特性:几近靠近于热备份、物理备份、备份与规复较快
利用Xtrabackup备份工具完成完整备份与增量备份
特性:物理备份工具、撑持InnoDB热备份、MyISAM温备份、速率较快
1、情况筹办
1、装置Mysql数据库办事器
######装置编译情况
[root@localhost~]#yum-ygroupinstall"ServerPlatformDevelopment""Developmenttools"
######装置编译工具
[root@localhost~]#yuminstall-ycmake
######创立Mysql用户
[root@localhost~]#useradd-rmysql
######解压并装置Mysql
[root@localhost~]#tarxfmysql-5.5.33.tar.gz
[root@localhost~]#cdmysql-5.5.33
[root@localhostmysql-5.5.33]#cmake.
>-DCMAKE_INSTALL_PREFIX=/usr/local/mysql#装置路径
>-DMYSQL_DATADIR=/mydata/data#数据寄存路径
>-DSYSCONFDIR=/etc#主设置文件目次
>-DWITH_INNOBASE_STORAGE_ENGINE=1#上面三项启用撑持的存储引擎
>-DWITH_ARCHIVE_STORAGE_ENGINE=1
>-DWITH_BLACKHOLE_STORAGE_ENGINE=1
>-DWITH_READLINE=1#撑持readline库
>-DWITH_SSL=system#撑持SSL加密
>-DWITH_ZLIB=system#撑持ZLIB紧缩
>-DWITH_LIBWRAP=0#撑持Libwrap库
>-DMYSQL_UNIX_ADDR=/tmp/mysql.sock#Sock文件路径
>-DDEFAULT_CHARSET=utf8#默许字符集
>-DDEFAULT_COLLATION=utf8_general_ci#默许字符集排序划定规矩
######编译并装置
[root@localhostmysql-5.5.33]#make&&makeinstall
正文:假如想清算此前的编译所天生的文件,则必要利用以下下令
makeclean
rmCMakeCache.txt
2、为Mysql供应主设置文件与Sysv办事剧本
######为Mysql供应主设置文件
[root@localhostmysql-5.5.33]#cpsupport-files/my-large.cnf/etc/my.cnf
######为Mysql供应Sysv办事剧本
[root@localhostmysql-5.5.33]#cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld
######赋于Sysv剧本实行权限
[root@localhostmysql-5.5.33]#chmod+x/etc/rc.d/init.d/mysqld
######将Mysqld到场体系办事
[root@localhostmysql-5.5.33]#chkconfig--addmysqld
[root@localhostmysql-5.5.33]#chkconfigmysqldon
3、让体系辨认源码包装置的软件
[root@localhostmysql]#echo"PATH=/usr/local/mysql/bin:$PATH">>/etc/profile
[root@localhostmysql]#./etc/profile
[root@localhostmysql]#ln-s/usr/local/mysql/include/usr/include/mysql
[root@localhost~]#echo"/usr/local/mysql/lib">>/etc/ld.so.conf
[root@localhost~]#ldconfig
4、修正Mysql主设置文件
[root@localhostmysql]#vim/etc/my.cnf
datadir=/mydata/data#增加此行,数据寄存目次
innodb_file_per_table=1#启用InnoDB表每表一个文件,默许一切数据库利用一个表空间
log-bin=/binlog/mysql-bin#修正二制造寄存目次
5、为Mysql创立数据库与二进制寄存目次
######创立数据、二进制寄存目次与备份目次
[root@localhost~]#mkdir-p/backup/mydata/data/binlog
######修正Mysql二进制与数据及备份目次的属主、属组为Mysql用户
[root@localhostmysql]#chown-Rmysql.mysql/mydata/data
[root@localhostmysql]#chown-Rmysql.mysql/binlog/backup
######修正Mysql装置目次的属组为Mysql组
[root@localhostmysql]#chown-R:mysql*
6、初始化Mysql并启动办事
[root@localhostmysql]#./scripts/mysql_install_db--user=mysql--datadir=/mydata/data
[root@localhost~]#servicemysqldstart
StartingMySQL.........SUCCESS!
######修正Mysql的root用户暗码
[root@localhost~]#mysqladmin-urootpasswordroot@pass
7、创立测试数据库与表并拔出数据
[root@localhost~]#mysql-uroot-proot@pass
mysql>createdatabaseallen;
mysql>useallen;
mysql>createtabletab1(IDtinyintunsignednotnullprimarykeyauto_increment,Namechar(20)notnulluniquekey,Agetinyintunsigned,Genderchar(1)defaultM);
mysql>insertintotab1(Name,Age,Gender)values(ZhangWuJi,26,M),(ZhaoMin,24,F);
2、利用Mysqldump备份工具备份
1、利用Mysqldump对"allen"数据库做备份而且转动二进制日记,纪录日记地位
[root@localhost~]#mysqldump-uroot-proot@pass--lock-all-tables--routines--events--triggers--master-data=2--flush-logs--databasesallen>/backup/allen_`date+%F`.sql
正文:
-u#指定用户名
-p#指定用户暗码
-h#指定主机地点
-A|--all-databases#备份一切数据库
--databases#备份指定命据库
--single-transcation#基于此项能够完成对InnoDB表做热备份,但不必要利用
--lock-all-tables#实行备份时为一切表哀求加锁
-E|--events#备份事务调剂器代码
--opt#同时启动各类初级选项
-R|--routines#备份存储历程和存储函数
--flush-logs#备份之前革新日记
--triggers#备份触发器
--master-data=2#该选项将会纪录binlog的日记地位与文件名并追加到文件中,假如为1将会输入CHANGEMASTER下令,主从下有效
######更多选项请参考man手册
2、备份二进制日记文件并检察已备份的数据文件
[root@localhost~]#cp/binlog/mysql-bin.00000*/backup/
[root@localhost~]#ls/backup/
allen_2013-09-06.sqlmysql-bin.000001mysql-bin.000002mysql-bin.000003mysql-bin.000004
3、在"allen"数据库中新增加数据来摹拟做增量备份,并检察以后日记文件及所处地位
mysql>createtabletab2(IDtinyintunsignednotnullprimarykeyauto_increment,Namechar(20)notnulluniquekey,Agetinyintunsigned,Genderchar(1)defaultM);
mysql>insertintotab2(Name,Age,Gender)values(LiangShanBo,26,M),(ZhuYingTai,24,F);
mysql>showmasterstatus;#检察二进制日记文件所处地位
+------------------+----------+--------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+------------------+----------+--------------+------------------+
|mysql-bin.000004|1289|||
+------------------+----------+--------------+------------------+
4、做增量备份,基于上一次完整备份到今朝日记所处的地位
######检察数据库备份的二进制日记
[root@localhost~]#less/backup/allen_2013-09-06.sql
######从上面能够看出二进制日记文件及完整备份后日记所处地位"107"
--CHANGEMASTERTOMASTER_LOG_FILE=mysql-bin.000004,MASTER_LOG_POS=107;
######基于二进制日记做增量备份,
[root@localhost~]#mysqlbinlog--start-position=107/binlog/mysql-bin.000004>/backup/allen_incremental.sql
正文:
--start-position#指定从哪一个地位入手下手导出二进制日记
--stop-position#指定到哪一个地位停止;假如到最初能够不必指定
--start-datetime#指定从哪一个工夫入手下手工夫格局:"2013-09-0614:50:26"
--stop-datetime#指定到哪一个工夫停止
5、向"allen"数据库新增加两笔记录,然后摹拟误操纵把数据库删除,怎样规复到以后数据
mysql>insertintotab2(Name,Age,Gender)values(ZhuBaJie,26,M),(SunWuKong,24,F);
mysql>dropdatabaseallen;
mysql>showmasterstatus;#检察二进制文件及所处地位
+------------------+----------+--------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+------------------+----------+--------------+------------------+
|mysql-bin.000004|1644|||
+------------------+----------+--------------+------------------+
6、规复数据到以后数据,必要规复完全备份+增量备份+增量备份后删除之前的二进制文件
######检察二进制文件,上面能够看出删除操纵是在"1561"时做的
[root@localhost~]#mysqlbinlog/binlog/mysql-bin.000004
#at1561
#1309065:31:04serverid1end_log_pos1644Querythread_id=5exec_time=0error_code=0
SETTIMESTAMP=1378416664/*!*/;
dropdatabaseallen
######导出删除之前至增量备份后的二进制日记数据
[root@localhost~]#mysqlbinlog--start-position=1289--stop-position=1561/binlog/mysql-bin.000004>/backup/allen_1561.sql
[root@localhost~]#mysql-uroot-proot@pass
mysql>setglobalsql_log_bin=0;#封闭二进制日记纪录,由于规复数据对我们来讲纪录没成心义
mysql>source/backup/allen_2013-09-06.sql#规复完全备份
mysql>source/backup/allen_incremental.sql#规复增量备份
mysql>source/backup/allen_1561.sql#规复增量后至删除前的数据
mysql>setglobalsql_log_bin=1;#开启二进制日记纪录
mysql>useallen;#切换到"allen"数据库
mysql>showtables;#检察数据表已规复
+-----------------+
|Tables_in_allen|
+-----------------+
|tab1|
|tab2|
+-----------------+
mysql>select*fromtab1;#检察表内数据也已完整规复
+----+------------+------+--------+
|ID|Name|Age|Gender|
+----+------------+------+--------+
|1|ZhangWuJi|26|M|
|2|ZhaoMin|24|F|
+----+------------+------+--------+
mysql>select*fromtab2;
+----+--------------+------+--------+
|ID|Name|Age|Gender|
+----+--------------+------+--------+
|1|LiangShanBo|26|M|
|2|ZhuYingTai|24|F|
|3|ZhuBaJie|26|M|
|4|SunWuKong|24|F|
+----+--------------+------+--------+
正文:假如在临盆情况中必要做数据库完整备份,假如数据库全部体系溃散,必要别的找一台办事器装置好Mysql办事,初始化并启动,然后利用备份文件与二进制文件举行规复,以是必定要保留好备份文件与二进制文件
3、利用LVM逻辑卷快照备份
条件:利用LVM逻辑卷来做快照备份的话,必要Mysql的数据目次与二进制日记文件目次都在LVM逻辑卷组上
1、创立LVM逻辑卷逻辑卷具体先容点此处
######分区,不做具体先容
[root@localhost~]#fdisk/dev/sdb
Command(mforhelp):n
p
Partitionnumber(1-4):1
Firstcylinder(1-7832,default1):
Lastcylinder,+cylindersor+size{K,M,G}(1-7832,default7832):+10G
Command(mforhelp):n
p
Partitionnumber(1-4):2
Firstcylinder(1307-7832,default1307):
Lastcylinder,+cylindersor+size{K,M,G}(1307-7832,default7832):+10G
Command(mforhelp):t
Partitionnumber(1-4):1
Hexcode(typeLtolistcodes):8e
Command(mforhelp):t
Partitionnumber(1-4):2
Hexcode(typeLtolistcodes):8e
Command(mforhelp):p
DeviceBootStartEndBlocksIdSystem
/dev/sdb11130610490413+8eLinuxLVM
/dev/sdb213072612104904458eLinuxLVM
Command(mforhelp):w
######让内核从头读取分区表,假如读取不到必要重启
[root@localhost~]#partx/dev/sdb
######创立逻辑卷并挂载,不做具体先容
[root@localhost~]#pvcreate/dev/sdb{1,2}
Physicalvolume"/dev/sdb1"successfullycreated
Physicalvolume"/dev/sdb2"successfullycreated
[root@localhost~]#vgcreatemyvg/dev/sdb{1,2}
Volumegroup"myvg"successfullycreated
[root@localhost~]#lvcreate-L+10G-nmylvmyvg
Logicalvolume"mylv"created
[root@localhost~]#
[root@localhost~]#mkfs.ext4/dev/myvg/mylv[root@localhost~]#mkdir/mydata/backup
[root@localhost~]#vim/etc/fstab
/dev/myvg/mylv/mydataext4defaults00
[root@localhost~]#mount-a
######创立Mysql数据与二进制日记寄存目次并修正权限
[root@localhost~]#mkdir/mydata/{data,binlog}
[root@localhost~]#chown-Rmysql:mysql/mydata/*
2、修正Mysql主设置文件数据寄存目次与二进制文件寄存目次并初始化
[root@localhost~]#vim/etc/my.cnf
datadir=/mydata/data
log-bin=/mydata/binlog/mysql-bin
[root@localhostmysql]#./scripts/mysql_install_db--user=mysql--datadir=/mydata/data/
[root@localhostmysql]#servicemysqldstart
StartingMySQL...SUCCESS!
3、创立数据库并增加数据
mysql>createdatabaseallen;
mysql>useallen;
mysql>createtabletab1(IDtinyintunsignednotnullprimarykeyauto_increment,Namechar(20)notnulluniquekey,Agetinyintunsigned,Genderchar(1)defaultM);
mysql>insertintotab1(Name,Age,Gender)values(ZhangWuJi,26,M),(ZhaoMin,24,F);
4、登录Mysql数据库,哀求为一切表加锁,记得必定不要封闭终端,不然表锁将会生效,并转动日记
mysql>flushtableswithreadlock;#为一切表哀求加锁
mysql>flushlogs;#革新日记
mysql>showmasterstatus;
+------------------+----------+--------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+------------------+----------+--------------+------------------+
|mysql-bin.000004|107|||
+------------------+----------+--------------+------------------+
5、别的敏捷开启一个终端窗口,为逻辑卷创立快照;逻辑卷:"/dev/myvg/mylv"
[root@localhost~]#lvcreate-L500M-s-pr-nmylv-snap/dev/myvg/mylv
Logicalvolume"mylv-snap"created
6、快照做完后,疾速开释读锁
mysql>unlocktables;
7、挂载快照卷,备份出数据,卸载快照卷并删除
[root@localhost~]#mount/dev/myvg/mylv-snap/mnt/
mount:blockdevice/dev/mapper/myvg-mylv--snapiswrite-protected,mountingread-only
[root@localhost~]#cp-rp/mnt/*/backup/
[root@localhost~]#umount/mnt/
######删除快照卷
[root@localhost~]#lvremove/dev/myvg/mylv-snap
Doyoureallywanttoremoveactivelogicalvolumemylv-snap?[y/n]:y
Logicalvolume"mylv-snap"successfullyremoved
如许一次完全的LVM完整备份就算是完成了,上面我们来测试一下是不是能一般利用
8、中断Mysql办事,删除数据目次下的一切文件来摹拟数据库破坏;并规复数据
[root@localhost~]#servicemysqldstop
ShuttingdownMySQL...SUCCESS!
[root@localhost~]#rm-rf/mydata/*
######规复已备份的数据
[root@localhost~]#cp-rp/backup/*/mydata/
######启动Mysql办事
[root@localhost~]#servicemysqldstart
StartingMySQLSUCCESS!
正文:假如不克不及启动,请反省数据目次权限;属主、属组是不是为Mysql用户
9、登录Mysql办事器,考证数据是不是规复
mysql>select*fromallen.tab1;#数据已乐成规复
+----+------------+------+--------+
|ID|Name|Age|Gender|
+----+------------+------+--------+
|1|ZhangWuJi|26|M|
|2|ZhaoMin|24|F|
+----+------------+------+--------+
正文:这里就不在演示利用LVM做完完全备份后Mysql呈现成绩,其操纵与规复流程与利用"mysqldump"备份工具一样,先利用完整备份规复,再利用二进制日记举行规复;利用二进制规复时,请找好二进制日记到上一次备份的地位,制止不用要的毛病产生;然后利用"mysqlbinlog"导出并利用批处置的体例导进数据库
Mylvmbackup
1、先容一下Mylvmbackup工具的利用,mylvmbackup是基于LVM逻辑卷快照做的备份,复杂的说也就是LVM备份***的烦琐版本,设置好主设置文件间接实行供应的剧本文件便可完成备份;此工具只能做备份操纵,这里只先容怎样设置装置及备份
2、利用此工具做备份条件固然数据目次必需寄存在LVM逻辑卷上,并且必要给快照卷残剩充足的空间做备份;假如必要规复,解紧缩备份文件,规复操纵同上
3、下载并装置mylvmbackup;软件版本:mylvmbackup-0.14-0.noarch.rpm点此下载
[root@localhost~]#yum-yinstallmylvmbackup-0.14-0.noarch.rpm
[root@localhost~]#rpm-qlmylvmbackup
/etc/mylvmbackup.conf#主设置文件
/usr/bin/mylvmbackup#实行步伐
4、主设置文件先容
[root@localhost~]#vim/etc/mylvmbackup.conf
[mysql]#毗连数据库设置
user=root
password=root@pass
host=localhost
port=3306
socket=/tmp/mysql.sock
mycnf=/etc/my.cnf
[lvm]#LVM逻辑卷的设置
vgname=myvg#卷组称号
lvname=mylv#逻辑卷称号
backuplv=mysql_snap#快照卷称号
lvsize=5G
[fs]#文件体系设置
xfs=0
mountdir=/mnt#挂载目次
backupdir=/backup#备份目次,也能够备份到路程主机
[misc]#界说备份选项
backuptype=tar#界说备份的范例
backupretention=0
prefix=backup#界说备份文件名前缀
suffix=_mysql#界说备份文件名后缀
tararg=cvf#界说tar参数,默许为cvf
tarfilesuffix=.tar.gz#界说备份文件后缀名格局
datefmt=%Y%m%d_%H%M%S#界说备份文件名工夫戳格局
keep_snapshot=0#是不是保存snaphot
keep_mount=0#是不是卸载snaphot
quiet=0#界说纪录日记范例
正文:其他设置坚持输出便可
5、备份数据库并考证备份文件
[root@localhost~]#mylvmbackup
######呈现以下信息暗示备份乐成,上面意义是删除快照卷乐成
2013090611:55:33Info:Running:lvremove-f/dev/myvg/mysql_snap
Logicalvolume"mysql_snap"successfullyremoved
2013090611:55:34Info:DONE:Removingsnapshot
######检察备份文件,已乐成备份
[root@localhost~]#ls/backup/
backup-20130906_115532_mysql.tar.gz
4、利用Xtrabackup备份规复
简介:
Xtrabackup是一个对InnoDB、XtraDB做数据备份的工具,撑持在线热备份(备份时不影响数据读写),是一个很好的开源备份规复工具。xtrabackup能够基于上一次整库备份基本上做增量备份(InnoDB、StraDB);能够以流的情势备份,并间接保留到近程呆板上
正文:这里就不在设置情况了,间接接着利用上一次LVM备份规复的情况
1、下载并装置Xtrabackup工具软件版本:percona-xtrabackup-2.1.4-656.rhel6.x86_64.rpm点此下载
[root@localhost~]#yum-yinstallpercona-xtrabackup-2.1.4-656.rhel6.x86_64.rpm
2、创立并受权Mysql数据库用户有备份权限
[root@localhost~]#mysql-uroot-proot@pass
mysql>createuserbackup@localhostidentifiedbymypass;#创立用户并设置暗码
mysql>revokeallprivileges,grantoptionfrombackup@localhost;#往失落用户的一切默许权限
mysql>grantreload,locktables,replicationclient,eventon*.*tobackup@localhost;#从头为用户受权
mysql>flushprivileges;#革新使其从头受权表
正文:用户受权划定规矩为最小权限
3、完整备份:
[root@localhost~]#innobackupex--user=backup--password=mypass/backup/
######上面暗示已备份乐成
innobackupex:Backupcreatedindirectory/backup/2013-09-06_07-47-33
innobackupex:MySQLbinlogposition:filenamemysql-bin.000005,position744
13090607:47:36innobackupex:Connectiontodatabaseserverclosed
13090607:47:36innobackupex:completedOK!
正文:备份完成后,会在"/backup"目次下天生一个以以后日期工夫为称号的目次;利用innobakupex备份时,其会挪用xtrabackup备份一切的InnoDB表,复制一切关于表布局界说的相干文件(.frm)、和MyISAM、MERGE、CSV和ARCHIVE表的相干文件,同时还会备份触发器和数据库设置信息相干的文件。固然在备份时"innobackupex"还会在备份目次中天生一些文件如:
(3.1)、xtrabackup_checkpoints――备份范例(如完整或增量)、备份形态(如是不是已为prepared形态)和LSN(日记序列号)局限信息;每一个InnoDB页(一般为16k巨细)城市包括一个日记序列号,即LSN。LSN是全部数据库体系的体系版本号,每一个页面相干的LSN可以标明此页面比来是怎样产生改动的
(3.2)、xtrabackup_binlog_info――mysql办事器以后正在利用的二进制日记文件及至备份这一刻为止二进制日记事务的地位
(3.3)、xtrabackup_binlog_pos_innodb――二进制日记文件及用于InnoDB或XtraDB表的二进制日记文件确当前position
(3.4)、xtrabackup_binary――备份顶用到的xtrabackup的可实行文件
(3.5)、backup-my.cnf――备份下令用到的设置选项信息
(3.6)、利用innobackupex举行备份时,还可使用"--no-timestamp"选项来制止下令主动创立一个以工夫定名的目次;云云一来,innobackupex下令将会创立一个BACKUP-DIR目次来存储蓄份数据
4、筹办(prepare)一个完整备份
在备份完成后,数据不克不及间接用于规复,由于备份的数据中能够会包括还没有提交的事件或已提交但还没有同步至数据文件中的事件;因而,此时的数据文件仍处于纷歧致形态,"筹办"的事情就是经由过程回滚未提交的事件及同步已提交的事件到数据文件利用数据文件处于分歧性形态
######为避免不测毛病,先封闭Mysql办事
[root@localhost~]#servicemysqldstop
ShuttingdownMySQL.SUCCESS!
######删除数据目次下的一切文件
[root@localhost~]#rm-rf/mydata/data/*
######筹办一个完整备份
[root@localhost~]#innobackupex--apply-log/backup/2013-09-06_07-47-33/
######呈现以下信息暗示已乐成
xtrabackup:startingshutdownwithinnodb_fast_shutdown=1
1309068:26:36InnoDB:Startingshutdown...
1309068:26:40InnoDB:Shutdowncompleted;logsequencenumber1603596
13090608:26:40innobackupex:completedOK!
正文:
--apply-log#感化是把备份时没有提交的事件回滚,已提交的事件同步的数据文件中
(4.1)、在“筹办”的过程当中,innobackupex还可使用"--use-memory"选项来指定其可使用的内存的巨细,默许一般为100M。假如有充足的内存可用,能够多分别一些内存给prepare的历程,以进步其完成速率
5、完整规复数据库
[root@localhost~]#innobackupex--copy-back/backup/2013-09-06_07-47-33/
######呈现以下提醒暗示已规复乐成
innobackupex:StartingtocopyInnoDBlogfiles
innobackupex:in/backup/2013-09-06_07-47-33
innobackupex:backtooriginalInnoDBlogdirectory/mydata/data
innobackupex:Copying/backup/2013-09-06_07-47-33/ib_logfile0to/mydata/data
innobackupex:Copying/backup/2013-09-06_07-47-33/ib_logfile1to/mydata/data
innobackupex:Finishedcopyingbackfiles.
13090608:40:24innobackupex:completedOK!
正文:
--copy-back#用于规复操纵,经由过程复制一切数据相干的文件至Mysql办事器的数据目次来实行规复历程
6、考证是不是已乐成规复
[root@localhost~]#servicemysqldstart
StartingMySQL..SUCCESS!
[root@localhost~]#mysql-uroot-proot@pass
mysql>select*fromallen.tab1;#已乐成规复数据
+----+------------+------+--------+
|ID|Name|Age|Gender|
+----+------------+------+--------+
|1|ZhangWuJi|26|M|
|2|ZhaoMin|24|F|
+----+------------+------+--------+
正文:假如启动不乐成,请检察数据目次下文件属主、属组权限是不是为Mysql用户
7、利用"innobackupex"做增量备份,起首必要增加几条数据到数据库中
[root@localhost~]#mysql-uroot-proot@pass
mysql>useallen;
mysql>insertintotab1(Name,Age,Gender)values(LiangShanBo,26,M),(ZhuYingTai,24,F),(BaJie,500,M),(WuKong,800,M);
8、举行增量备份
######创立增量备份存储目次
[root@localhost~]#mkdir/incremental
######实行增量备份
[root@localhost~]#innobackupex-user=backup-password=mypass--incremental/incremental/--incremental-basedir=/backup/2013-09-06_07-47-33/
######呈现以下信息暗示已乐成
innobackupex:Backupcreatedindirectory/incremental/2013-09-06_09-08-16
innobackupex:MySQLbinlogposition:filenamemysql-bin.000007,position420
13090609:08:20innobackupex:Connectiontodatabaseserverclosed
13090609:08:20innobackupex:completedOK!
正文:
--incremental#指定增量备份数据寄存目次
--incremental-basedir=DIR#指定上一次备份地点的目次
9、再增加一些数据举行增量备份
[root@localhost~]#mysql-uroot-proot@pass
mysql>useallen;
mysql>insertintotab1(Name,Age,Gender)values(GuanYin,26,M),(RuLai,24,F);
######再次做增量备份是基于上一次增量备份来做
[root@localhost~]#innobackupex-user=backup-password=mypass--incremental/incremental/--incremental-basedir=/incremental/2013-09-06_09-08-16/
######增量备份乐成
innobackupex:Backupcreatedindirectory/incremental/2013-09-06_09-17-49
innobackupex:MySQLbinlogposition:filenamemysql-bin.000007,position687
13090609:17:52innobackupex:Connectiontodatabaseserverclosed
13090609:17:52innobackupex:completedOK!
正文:增量备份仅能使用于InnoDB或XtraDB表,关于MyISAM表而言,实行增量备份时实在举行的是完整备份
10、删除数据库文件来摹拟数据库破坏,完成对增量备份举行规复
[root@localhost~]#servicemysqldstop
[root@localhost~]#rm-rf/mydata/data/*
######筹办第一个备份文件为完整备份
[root@localhost~]#innobackupex--apply-log--redo-only/backup/2013-09-06_07-47-33/
######筹办第二个增量备份文件基于完整备份
[root@localhost~]#innobackupex--apply-log--redo-only/backup/2013-09-06_07-47-33/--incremental-dir=/incremental/2013-09-06_09-08-16/
######筹办第二个增量备份文件基于完整备份
[root@localhost~]#innobackupex--apply-log--redo-only/backup/2013-09-06_07-47-33/--incremental-dir=/incremental/2013-09-06_09-17-49/
正文:必要在每一个备份(包含完整和各个增量备份)上,将已提交的事件举行“重放”,“重放”以后,一切的备份数据将兼并到完整备份上;假如有更多的增量备份文件,顺次云云,一个一个的兼并到完整备份上
--redo-only#感化是备份时提交的但还在事件日记中的使用到数据文件,可是还没有提交的其实不回流
--incremental-dir=DIR#指定规复的增量备份目次,这个选项会使增量备份文件中的数据兼并到完整备份
11、规复数据并启动Mysql办事考证
[root@localhost~]#innobackupex--copy-back/backup/2013-09-06_07-47-33/
######规复乐成
innobackupex:StartingtocopyInnoDBlogfiles
innobackupex:in/backup/2013-09-06_07-47-33
innobackupex:backtooriginalInnoDBlogdirectory/mydata/data
innobackupex:Copying/backup/2013-09-06_07-47-33/ib_logfile0to/mydata/data
innobackupex:Copying/backup/2013-09-06_07-47-33/ib_logfile1to/mydata/data
innobackupex:Finishedcopyingbackfiles.
13090609:53:33innobackupex:completedOK!
[root@localhost~]#chown-Rmysql:mysql/mydata/data/*
[root@localhost~]#servicemysqldstart
StartingMySQL..SUCCESS!
[root@localhost~]#mysql-uroot-proot@pass
mysql>select*fromallen.tab1;#数据已乐成规复
+----+--------------+------+--------+
|ID|Name|Age|Gender|
+----+--------------+------+--------+
|1|ZhangWuJi|26|M|
|2|ZhaoMin|24|F|
|3|LiangShanBo|26|M|
|4|ZhuYingTai|24|F|
|5|BaJie|255|M|
|6|WuKong|255|M|
|7|GuanYin|26|M|
|8|RuLai|24|F|
+----+--------------+------+--------+
这里就不在演示备份完成后Mysql呈现成绩,其操纵与规复流程与利用"mysqldump"备份工具一样,利用完整备份+完整备份后到如今一切的增量备份+最初一次做增量备份到以后工夫的二进制日记文件举行规复;利用二进制规复时,请找好二进制日记到上一次备份的地位,制止不用要的毛病产生;然后利用"mysqlbinlog"导出并利用批处置的体例导进数据库!!!
本文出自“ALLEN”博客,请务必保存此出处http://502245466.blog.51cto.com/7559397/1291913
欢迎大家来到仓酷云论坛! |
|