mysql系列之6--------使用第三方工具-percona来备份mysql和恢复
admin
2023-05-05 01:00:53
0

使用第三方工具来备份mysql-----percona


一、前期准备工作:

   1、安装依赖包:yum  -y  install  perl-Digest-MD5   perl-DBD-MySQL

        rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm

   2、安装主包:    percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

      percona是一款在线热备工具

   3、包含两个组件:

           /usr/bin/xtrabackup     :支持innodb和xtraDB(增量备份)

          /usr/bin/innobackupex   :支持innodb和myisam(只支持全备,不支持增量)

  4、innobackupex 包含的一些选项

      --user                  用户名     

      --password          密码  

      --databases         库名

      --no-timestamp          不使用系统日期做备份目录的子目录名

      --apply-log                 恢复日志

      --copy-back               恢复数据

二、完全备份和完全恢复

   1、完全备份

         innobackupex --user root --password 123456 --database="mysql db66 performance sys"

         --no-timestamp   /allbak   //指定备份三个数据库,生成的备份文件目录不用系统时间做目录名

   2、恢复数据时,数据库目录为空,三个系统库必须备份进去

    首先恢复日志:innobackupex --user root --password 123456 --apply-log  /allbak

    删除数据库目录:   rm    -rf      /var/lib/mysql

    创建数据库目录:   mkdir /var/lib/mysql

    恢复数据:innobackupex --user root --password  123456  --copy-back  /allbak/

    赋予数据目录权限:chown -R mysql:mysql /var/lib/mysql

      重启服务,验证:systemctl restart mysqld


三、增量备份和增量恢复

 1、在增量备份之前先做一次完全备份。

    innobackupex --user root --password 123456

   --databases="performance_schema sys mysql db666"

    --no-timestamp  /onebak

 2、第一次增量备份    

    innobackupex --user root --password 123456     //指定用户名密码

    --databases="performance_schema sys mysql db666" //指定需要备份的数据库

    --incremental /new1                //指定增量备份的路径

    --incremental-basedir=/onebak   //指定以哪个备份来做为增量备份的参考

    --no-timestamp

 3、第二次增量备份:

   innobackupex --user root --password 123456 

    --databases="performance_schema sys mysql db666"

    --incremental /new2     //第二次增量备份的路径

    --incremental-basedir=/new1   //以上次增量备份做为参考来做增量备份

    --no-timestamp

 4、增量恢复的文件目录说明

  xtrabackup_checkpoints    xtrabackup_logfile         //这两个文件记录修改的lsn号

 5、恢复步骤

  A、删除数据目录下的文件:rm -rf  /var/lib/mysql/*

  B、恢复日志---完全备份的日志

     innobackupex --user root --password 123456

    --databases="performance_schema sys mysql db666"

    --apply-log --redo-only   //恢复日志,并合并日志

    /onebak --no-timestamp

 C、恢复第一次增量的备份(只需要恢复日志,日志合并即可)

     innobackupex --user root --password 123456

    --databases="performance_schema sys mysql db666"

    --apply-log --redo-only /onebak  //源日志路径

    --incremental-dir=/new1 --no-timestamp   //需合并的日志文件的路径

 D、恢复第二次增量的备份

  innobackupex --user root --password 123456

   --databases="performance_schema sys mysql db666"

   --apply-log --redo-only /onebak   //源日志文件的路径

  --incremental-dir=/new2 --no-timestamp   //第二次增量备份合并的日志

 E、恢复数据,只需还原全备份里面的,因为增量备份的内容已经合并到全备里面

    innobackupex --user root --password 123456  --copy-back  /onebak

 F、给数据目录给权限,重启服务验证

    chown    -R     mysql:mysql    /var/lib/mysql

    systemctl     restart      mysqld


四、恢复完全备份数据中的单张表

 1、export  //导出表信息     import //导入表空间    

       删除表空间:alter  table 表    discard  tablespace;

 2、备份单个数据库:

       innobackupex --user root --password 123456 

       --databases="mydb" --no-timestamp /mydb  //只备份一个数据库

 3、删除表,创建表(表字段必须要和以前的一样,模拟表丢失

    drop table t1;       create table t1(id int);

4、导出表信息:用到的参数是--export

  innobackupex --user root --password 123456 --databases="db66" --apply-log --export /db66

5、删除表空间:在mysql命令行里操作

     alter table db66.t1 discard tablespace;

6、把备份目录下导出的表信息拷贝到数据库目录下,并给权限

   cp /db66/db66/t1.{cfg,exp,ibd} /var/lib/mysql/db66/ 

   chown mysql /var/lib/mysql/db66/t1.*  

7、导入表空间

   alter table db66.t1 import tablespace;

8、验证:select * from db66.t1;




















             





































    































相关内容

热门资讯

菲律宾总统称未下达逮捕德拉罗萨... 新华社马尼拉5月13日电(记者赵晨捷 李萌)据菲律宾媒体报道,菲总统马科斯13日称未下达逮捕参议员德...
时隔九年再度来京,特朗普有何诉... ◆5月12日,特朗普登上“空军一号”前对着镜头挥手告别。(图源:美联社)文/何平编辑/漆菲5月13日...
硬科技管控,中美关系的新压舱石 特朗普此次访华,英伟达CEO黄仁勋随行的消息提振美股市场,凸显芯片与人工智能已成为中美关系的核心议题...
报告:今年一季度AI原生APP... 中国青年网北京5月12日电(记者 高蕾)近日,第三方智能数据服务商QuestMobile发布了《中国...
七大新品发布!国轩高科第15届... 央广网合肥5月13日消息(记者徐鹏)5月16日至17日,电池龙头企业国轩高科将在合肥举办第15届全球...
百度伐谋2.0发布,李彦宏:能... 5月13日举办的Create2026百度AI开发者大会开幕式上,自我演化决策智能体百度伐谋升级至2....
泰顶级豪门曝性侵丑闻!哥哥侵犯... 泰国最有影响力的巨头之一Singha集团(胜狮集团),这两天爆出性侵丑闻。集团第四代成员,环保活动家...
什么信号?多地要求干部带头缴纳... 多地要求干部带头缴纳物业费。最近一段时间,物业费成了社会关注的焦点。原因竟然是多地密集出台文件,号召...
“这不是威胁而是绝佳机遇”,默... 【文/观察者网 张菁娟】“当下挑战之所以如此巨大,是因为我们长期以来为自己制造了太多问题,而这些问题...
老杜盟友半路杀出,“闪电夺权”... 最近两天,马尼拉的政治温度直接爆表。5月11日上午,菲律宾众议院以255票赞成、26票反对、9票弃权...