• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql5.6利用xtrabackup全备及增量备份

mysql 搞代码 4年前 (2022-01-09) 42次浏览 已收录 0个评论

1.xtrabackup安装 650) this.width=650;” src=”http://www.68idc.cn/help/uploads/allimg/151119/0Z5504108-0.jpg” title=”1.png” alt=”wKioL1Wl8x7DJM-GAAE5jG_ZhOQ428.jpg” /> 2.全备及恢复 (1)全备 查看数据库 650) this.width=650;” src=”http://www.6

1.xtrabackup安装

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/7fa061d8b67b3d8d3c336e0d94e6b7be.jpg” title=”1.png” alt=”wKioL1Wl8x7DJM-GAAE5jG_ZhOQ428.jpg” />

2.全备及恢复

(1)全备

查看数据库

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/64b33543790d848054c029b345e6e9e7.jpg” title=”111111.png” alt=”wKioL1Wl84mx9d74AAIB-jOdUq0536.jpg” />

[root@local-db opt]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 /bak/mysql/

该语句将拷贝数据文件(由my.cnf里的变量datadir指定)至备份目录下(/bak/mysql/),注意:如果不指定–defaults-file,默认值为/etc/my.cnf。

备份成功后,将在备份目录下创建一个时间戳目录(本例创建的目录为/bak/mysql/2015-07-08_18-52-43),在该目录下存放备份文件。

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/fbcaf0b646b3374a9e1e9a7721623045.jpg” title=”2.png” alt=”wKioL1Wl8y7SvLYqAACmcgZ_ULQ942.jpg” />

(2)恢复

删除数据库test123,尝试恢复

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/c3333916f98c0e499097d3cafc38bde8.jpg” title=”3.png” alt=”wKiom1Wl8V6SmyAsAADORLkMdjY006.jpg” />

恢复之前,要先关闭数据库,并且删除数据文件和日志文件。

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/cc3dcebff4e806bb982d3d50a2f81848.jpg” style=”float:none;” title=”4.png” alt=”wKioL1Wl80OQJVL6AAB-SB40w8o427.jpg” />

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/b898ba4e0948272da8a4dfe48930927c.jpg” style=”float:none;” title=”5.png” alt=”wKiom1Wl8WqA3Xc_AACUUkYv2TM009.jpg” />

[root@local-db opt]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –apply-log /bak/mysql/2015-07-08_18-52-43/

[root@local-db opt]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –copy-back /bak/mysql/2015-07-08_18-52-43/

恢复分为两个步骤:

第1步是apply-log,为了加快速度,一般建议设置–use-memory,这个步骤完成之后,目录/bak/mysql/2015-07-08_18-52-43/下的备份文件已经准备就绪。

第2步是copy-back,即把备份文件拷贝至原数据目录下。恢复完成之本文来源gao@daima#com搞(%代@#码网后,一定要记得检查数据目录的所有者和权限是否正确。

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/de762f3d931fb77a21deb5a96254593f.jpg” style=”float:none;” title=”6.png” alt=”wKiom1Wl8XyjgkXjAADnTEmKT0k497.jpg” />

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/d32a255cd7488dd2d2560c698b425f66.jpg” style=”float:none;” title=”7.png” alt=”wKioL1Wl81axInYgAACruTPVzNU191.jpg” />

3.增量备份及恢复

注意:innobackupex 增量备份仅针对InnoDB这类支持事务的引擎,对于MyISAM等引擎,则仍然是全备。

(1)增量备份

增量备份需要基于全备,我们已经有了一个全备(/bak/mysql/2015-07-08_18-52-43/),我们需要在该全备的基础上做增量备份。

测试新建库,导入新数据,做增量备份。

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/575076925eeb796dc693defdfcaf3306.jpg” style=”float:none;” title=”9.png” alt=”wKiom1Wl8evC_m9FAACvnqlXuqg068.jpg” />

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/281982ec8d010b6eda6efaeb4644c691.jpg” style=”float:none;” title=”10.png” alt=”wKiom1Wl8evS8eSKAAC0qv0B26A606.jpg” />

[root@local-db mysql]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –incremental-basedir=/bak/mysql/2015-07-08_18-52-43/ –incremental /bak/mysql/

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/24e16e1ac5ad225388674ecf43c9e61c.jpg” title=”11.png” alt=”wKioL1Wl89uxZjleAABYqxRRGi8411.jpg” />

其中–incremental-basedir指向全备目录,–incremental指向增量备份的目录。

上面语句执行成功之后,会在–incremental执行的目录下创建一个时间戳子目录(本例中为:/bak/mysql/2015-07-08_19-46-30),在该目录下存放着增量备份的所有文件。

在备份目录下,有一个文件xtrabackup_checkpoints记录着备份信息,全备的信息如下:

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/0c3ff97cbaa361df1081e3b18927ce61.jpg” title=”12.png” alt=”wKiom1Wl8g_SIMqCAACseLV8Ox0437.jpg” />

基于该全备的增量备份的信息如下:

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/0ee0386c85abc7cef5c1e55927fbd388.jpg” title=”13.png” alt=”wKioL1Wl8_KjAj1vAADQ_W92QGU297.jpg” />

从上面可以看出,增量备份的from_lsn正好等于全备的to_lsn。

那么,我们是否可以在增量备份的基础上再做增量备份呢?答案是肯定的,只要把–incremental-basedir执行上一次增量备份的目录即可,如下所示:

[root@local-db mysql]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –incremental-basedir=/bak/mysql/2015-07-08_19-46-30/ –incremental /bak/mysql/

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/70d2f00748a8ddeb36ed617403934052.jpg” title=”14.png” alt=”wKiom1Wl8iLAaZSNAABxDrxZu6o385.jpg” />

它的xtrabackup_checkpoints记录着备份信息如下:

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/696a10e7e1e258d9094fd6cffe484bb7.jpg” title=”15.png” alt=”wKioL1Wl9ATDhqlBAAFdcnuwZWA232.jpg” />

可以看到,该增量备份的from_lsn是从上一次增量备份的to_lsn开始的。

(2)恢复

删除数据库test456,尝试恢复

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/d1630ada3d4336b99a4025607ddc6833.jpg” title=”16.png” alt=”wKioL1Wl9A2hf6-_AAGld3rtD3c819.jpg” />

恢复之前,要先关闭数据库,并且删除数据文件和日志文件。

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/36f18929268c04d4c001bfd48adf8623.jpg” style=”float:none;” title=”4.png” alt=”wKiom1Wl8kSylz_xAAB-SB40w8o654.jpg” />

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/7f03bcdd5fc3f242b7f1fd85320772ad.jpg” style=”float:none;” title=”5.png” alt=”wKioL1Wl9B2jcg_9AACUUkYv2TM881.jpg” />

增量备份的恢复比全备要复杂很多,第一步是在所有备份目录下重做已提交的日志,如:

[root@local-db mysql]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –apply-log –redo-only /bak/mysql/2015-07-08_18-52-43/

[root@local-db mysql]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –apply-log –redo-only /bak/mysql/2015-07-08_18-52-43/ –incremental-dir=/bak/mysql/2015-07-08_19-46-30/

[root@local-db mysql]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –apply-log –redo-only /bak/mysql/2015-07-08_18-52-43/ –incremental-dir=/bak/mysql/2015-07-08_21-01-19/

其中/bak/mysql/2015-07-08_18-52-43/是指全备目录,/bak/mysql/2015-07-08_19-46-30/是指第一次的增量备份,/bak/mysql/2015-07-08_21-01-19/是指第二次的增量备份,以此类推。

以上语句执行成功之后,最终数据在全备目录下。

第一步完成之后,我们开始第二步:回滚未完成的日志:

[root@local-db mysql]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –apply-log /bak/mysql/2015-07-08_18-52-43/

上面执行完之后,/bak/mysql/2015-07-08_18-52-43/里的备份文件已完全准备就绪,最后一步是拷贝:

[root@local-db mysql]# innobackupex –defaults-file=/etc/my.cnf –user=root –password=123456 –copy-back /bak/mysql/2015-07-08_18-52-43/

修改目录权限,启动mysql。

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/b85f5dbf5cd141dd1389c4123e3304d1.jpg” title=”17.png” alt=”wKioL1Wl9C7xF2LPAAEM0FD8_eo215.jpg” />

修改目录权限,启动mysql。

恢复完成,如下图

650) this.width=650;” src=”https://img.gaodaima.com/d/file/2021/11/10/625d2d8a7cc589e10b823d5ccdc06dc6.jpg” title=”18.png” alt=”wKiom1Wl8l7Bgh7iAADWtnSS1fk302.jpg” />


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql5.6利用xtrabackup全备及增量备份

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址