zoukankan      html  css  js  c++  java
  • 数据库应用_innobackupex备份与恢复

    1.Percona软件介绍; 2.innobackupex的备份与恢复

    一, Percona软件

    在学习percona软件之前,我们看一下物理备份和mysqldump备份有哪些缺陷.

    物理备份的缺点: 跨平台性能差,备份时间长,冗余备份,浪费存储空间;

    mysqldump备份的缺点: 效率低,备份和还原速度慢,而且还要锁表;备份过程中,不能实现插入或更新数据.

    因此,percona应运而生.

    1.percona软件的优势

      能实现在线热备份,备份过程中不锁库,不锁表,比较适合我们的实际生产环境.

    2.Percona软件的两个组件

      Xtrabackup: C程序,支持InnoDB/XtraDB 

      Innobackupex: Perl脚本封装xtrabackup,还支持MyISAM.

    3.常用选项

    二, innobackupex备份与恢复

    内容概要: 1.完全备份与恢复; 2.增量备份与恢复; 3.单张表格的恢复.

    1.数据的完全备份与恢复

       备份格式: innobackupex --user 用户名 --password 密码 备份目录名 --no-timestamp

       恢复格式: innobackupex --apply-log 目录名 //准备恢复数据

                      innobackupex --copy-bak 目录名  //恢复数据

                      innobackupex --copy-bak 目录名 //恢复数据

    :

    192.168.4.50上备份数据,192.168.4.51上恢复数据.

    拓扑图:

    主机192.168.4.50上备份数据:

    50]# innobackupex -uroot -p123qqq...A /root/allbak --no-timestamp    //备份

    50]# scp -r /root/allbak root@192.168.4.51:/root/    //上传备份数据到主机4.51

    主机192.168.4.51上恢复数据:

    51]#rpm -ivh libev-4.15       //安装percona依赖包

    51]#yum -y install percona    //安装percona

    51]#systemctl stop mysqld

    51]#ls /var/lib/mysql     //查看文档内容

    51]#rm -rf /var/lib/mysql/*     //清空文档内容

    51]#Innobackupex --apply-log /root/allbak    //准备恢复数据

    51]#Innobackupex --copy-back /root/allbak     //恢复数据

    51]#ls /var/lib/mysql     //查看数据是否恢复

    51]#ls /var/lib/mysql -l     //查看文件目录的所属权限root

    51]#chown -R mysql:mysql /var/lib/mysql    //修改目录的所属权限为mysql

    51]#systemctl restart mysqld   

    mysql -uroot -p123qqq...A     //进入mysql

    mysql> show databases; select * from db3.user    //查看数据恢复状况

    2.数据的增量备份与恢复

    备份格式: innobackupex --user 用户名 --password 密码 --incremental 增量目录 --incremental-basedir=目录名 --no-timestamp

    恢复格式: innobackupex --apply-log --redo-only 目录名 --incremental-dir=目录名

    :

    在主机192.168.4.50上备份在主机192.168.4.51上恢复.

    拓扑图:

    主机192.168.4.50上备份:

    50]#innobackupex --user root --password 123qqq...A /fullbak --no-timestamp     //完全备份数据

    50]#ls /fullbak/    //查看备份状况

    mysql>insert into db3.user2 values(“tom”);   //增加数据

    mysql>insert into db3.user2 values(“jack”);   //增加数据

    50]#innobackupex --user root --password 123qqq...A --incremental /new1dir --incremental-basedir=/fullbak --no-timestamp //增量备份1,存储到目录/new1dir

    50]#ls /new1dir   //查看备份文件夹

    50]#innobackupex --user root --password 123qqq...A --incremental /new2dir --incremental-basedir=/fullbak --no-timestamp //增量备份2,存储到目录/new2dir

    50]#ls /new2dir  //查看备份文件夹

    主机192.168.4.51上恢复数据:

    51]#systemctl stop mysqld

    51]#rm -rf /var/lib/mysql/*     //清空目录下的内容

    51]# innobackupex --apply-log --redo-only /root/fullbak/     //恢复完全备份的数据

    51]#innobackupex --apply-log --redo-only /root/fullbak/ --incremental-dir=/root/new1dir   //恢复第1次增量备份的数据

    51]#rm -rf /root/new1dir/    //恢复完成后,清除数据,以免影响其它

    51]#innobackupex --apply-log --redo-only /root/fullbak/ --incremental-dir=/root/new2dir  //恢复第2次增量备份的数据

    51]#rm -rf /root/new2dir/   //恢复完成后,清除数据,以免影响其它

    51]#innobackupex --copy-back /root/fullbak/    //拷贝文件到数据库,完成数据恢复

    51]#chown -R mysql:mysql /var/lib/mysql    //修改所属权限为mysql

    51]#systemctl restart mysqld

    51]# mysql -uroot -p123qqq...A    

            mysql>show databases;  select * from db3.user2;   //进入数据库查看数据恢复状况

    3.单张表格的恢复

    db3库下的user2表为例:

    mysql> alter table db3.user2 discard tablespace;   //删除表空间

    #innobackupex --apply-log --export  /allbak; (导出后/allbak/db3/目录下会多出两个文件user2.cfguse2.exp)     //导出表信息

    # cp -r /allbak/db3/user2.{cfg.exp,ibd}  /var/lib/mysql/db3/;     //拷贝表信息文件到数据库目录下

    #chown mysql:mysql /var/lib/mysql/db3/user2.*     //修改表信息文件的归属权限为mysql

    mysql>alter table db3.user2 import tablespace;     //导入表空间

    #rm -rf /var/lib/mysql/db3/user2.cfg     //删除数据库下的表信息文件.cfg

    #rm -rf /var/lib/mysql/db3/user2.exp     //删除数据库下的表信息文件.exp

    Mysql>select * from db3.user2;     //查看表记录

    结束.

  • 相关阅读:
    单例模式
    简单的WPS二次开发脚本
    使用DevExpress改变WinForm皮肤(VS)
    步入DevExpress的使用(VS)
    设置PdfPTable与标题间的距离
    tar: Removing leading `/’ from member names
    MySQL关闭过程详解和安全关闭MySQL的方法
    Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
    解决Centos关闭You have new mail in /var/spool/mail/root提示
    hping3命令
  • 原文地址:https://www.cnblogs.com/liusingbon/p/11028783.html
Copyright © 2011-2022 走看看