xtrabackup备份2019-08-22

本次使用的数据库mysql-5.7.23。恢复数据的数据库必须是干净的数据库。新的或者删除干净数据

==xtrabackup软件包获取

            ①xtrabackup软件包是由percona公司提供,可以去官网下载:https://www.percona.com/官网去下载。

            ②这里使用的是percona-xtrabackup-24.x86_64版本。

            wget http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm                                  下载yum源

            yum  -y install  percona-release-0.1-3.noarh.rpm     安装yum源

            yum -y install percona-xtrabackup-24.x86_64       安装xtrabackup

            rpm -qa | grep percona-xtrabackup-24     查询安装结果

==完全备份

            备份    

            innobackupex  --user=xtrabackup   --password=xtrabackup    /xtrabackup/full

            恢复

            将备份先生成回滚日志:innobackupex  --apply-log  /xtrabackup/full/filename

            恢复数据:innobackupex  --copy-back  /xtrabackup/full/filename

            注意此种方法不会恢复数据到被破坏的时候,只会恢复到备份的时候。中间的恢复过程一般通过二进制日志来完成。

==增量备份和差异备份的介绍

            增量备份是将第一次备份作为基准,之后每一次分备份都需要基于前一次备份,当要恢复数据时,可以把每一次的数据进行分段的恢复(通俗的来说,第一次之后的每次备份,都是和前一次的比较,前一次备份之后新写入数据库的数据才会备份)。

            差异备份同样需要把第一次作为整个备份的基准,之后每一次的备份都是基于第一次的备份来实现的(通俗的来说,第一次之后的每一次备份都是和第一次的备份做比较,把第一份之后写入的数据备份下来)。

增量备份

                第一次备份1,2,3,当第二次备份时,写入了4,5,6,就只需要备份4,5,6即可,第三次备份时,写入了7,8,,则第三次只需要备份7,8就可以了。

差异备份

                第一次备份1,2,3,当第二次备份时,写入了4,5,6,就只备份4,5,6,第三次备份值写入了7,8,但是由于要和第一次备份比较,所以还要从4开始备份,此时备份4,5,6,7,8,同样的,第四次备份,也是从4开始备份到目前所在的位置。

==增量备份

                备份(数据库开启)

               第一次:innobackupex   --user=xtrabackup  --password=xtrabackup   /xtrabackup/full                                                                       第一次备份文件:/xtrabackup/full/filename1

               第二次:innobackupex  --user=xtrabackup  --password=xtrabackup   --incremental           /xtrabackup/full   --incremental-basedir=/xtrabackup/full/filename1                                                                                                                   第二次备份文件:/xtrabackup/full/filename2

               第三次:innobackupex  --user=xtrabackup  --password=xtrabackup   --incremental         /xtrabackup/full   --incremental-basedir=/xtrabackup/full/filename2                                                                                                                     第三次备份文件:/xtrabackup/full/filename3

                恢复(数据库关闭且干净)(恢复第三次的)

                生成回滚日志:innobackupex  --apply-log  --redo-only  /xtrabackup/full/filename1         

                第二次的加到第一次上:innobackupex  --apply-log  --redo-only  /xtrabackup/full/filename1  --incremental-dir=/xtrabckup/full/filename2

                第三次的加到第一次上:innobackupex  --apply-log  --redo-only   /xtrabackup/full/filename1   --incremental-dir=/xtrabackup/full/filename3                                                       注意:此时已经将第二次加到第一次上了,此时的/xtrabackup/full/filename1是第一次和第二次的总和。并不是只把第三次加第一次上了。

                innobackupex  --copy-back  /xtrabackup/full/filename1  

                chown  -R  mysql.mysql   /var/lib/mysql/     (/var/lib/mysql/为数据库数据存储的位置)

                启动数据库就可以了。

==差异备份

            备份(数据库开启)

            第一次:innobackupex  --user=xtrabackup  --password=xtrabackup   /xtrabackup/full                                                                                  第一次备份文件:/xtrabackup/full/filename1

            第二次:innobackupex  --user=xtrabackup  --password=xtrabackup      --incremental  /xtrabackup/full/   --incremental-basedir=/xtrabackup/full/filename1                                                                                                                            第二次备份文件:/xtrabackup/full/filename2

            第三次:innobackupex   -user=xtrabackup   --password=xtrabackup   --incremental  /xtrabackup/full/   --incremental-basedir=/xtrabackup/full/filename1                                                                                                                            第三次备份文件:/xtrabackup/full/filename3

               恢复(数据库关闭且干净)(恢复第三次的)

                生成回滚日志:innobackupex  --apply-log  --redo-only  /xtrabackup/full/fiename1 

                将第三次直接添加到第一次上:innobackupex  --apply-log  --redo-only   /xtrabackup/full/filename1   --incremental-dir=/xtrabackup/full/filename3                                                         此时就不需要加第二次的了,因为每次备份都是基于第一次备份的。

                innobackupex  --copy-back  /xtrabackup/full/filename1

                chown  -R  mysql.mysql   /var/lib/mysql   (/var/lib/mysql/为数据存储的位置)

                启动数据库即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容