设为首页 收藏本站
查看: 520|回复: 0

[经验分享] MySQL备份与恢复之percona-xtrabackup软件的使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-2-11 17:25:30 | 显示全部楼层 |阅读模式
一 使用percona-xtrabackup的原因

      

       在前面,我们讲到MySQL冷备、热备、mysqldump、热拷贝、保证数据的一致性。因为mysql冷备、mysqldump、mysql热拷贝均不能实现增量备份,在实际环境中增量备份是使用较多的,percona-xtrabackup就是为实现增量备份而生,因此我们需要使用percona-xtrabackup。



       本文讲解percona-xtrabackup软件的使用,下一篇文章讲解percona-xtrabackup实现增量备份及恢复。      


二 什么是percona-xtrabackup



Percona XtraBackup is an open-source hot backup utility for MySQL -based servers that doesn’t lock your database during the backup.



It can back up data from InnoDB, XtraDB,and MyISAM tableson MySQL 5.1 [1], 5.5 and5.6 servers, as well as Percona Server with XtraDB.For a high-level overview of many of its advanced features, including a featurecomparison, please see AboutPercona Xtrabackup.



Whether it is a 24x7 highly loaded server or alow-transaction-volume environment, Percona XtraBackup isdesigned to make backups a seamless procedure without disrupting theperformance of the server in a production environment.Commercial support contracts areavailable.



Percona XtraBackup is a combination of the xtrabackup C program,and the innobackupex Perl script. The xtrabackupprogramcopies and manipulates InnoDB and XtraDB datafiles, and the Perl script enables enhanced functionality,such as interacting with a running MySQL server and backing up MyISAM tables.




三 软件及文档获取



软件获取

http://www.percona.com/software/percona-xtrabackup/downloads

http://download.iyunv.com/detail/wentasy/6638171



文档获取

http://www.percona.com/doc/percona-xtrabackup/2.1/

http://download.iyunv.com/detail/wentasy/6638029


四 软件使用讲解



注:本文采用的percona-xtrabackup版本为2.0.2,操作系统版本为RHEL 6.1 Server,MySQL版本为5.1


第一步,准备文件并拷贝文件

    [iyunv@larrywen ule-mysql]# ll percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm
    -rwxr-xr-x. 1 root root 3786628 Sep 10 13:45 percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm

    [iyunv@larrywen ule-mysql]# scp percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm 192.168.1.11:/opt



第二步,该软件需要依赖MySQL客户端,所以使用yum安装。注意,此处安装的只是MySQL的客户端,和本身使用源码安装的MySQL不冲突

    [iyunv@serv01 opt]# yum install percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm -y
    Installed:
      percona-xtrabackup.x86_64 0:2.0.2-461.rhel6                                                                                         

    Dependency Installed:
      mysql.x86_64 0:5.1.52-1.el6_0.1



第三步,初始化备份

    [iyunv@serv01 databackup]# innobackupex --user=root --password=123456 /databackup/
    InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
    and Percona Inc 2009-2012.  All Rights Reserved.

    ……
    innobackupex: Backup created in directory '/databackup/2013-09-10_21-49-44'
    innobackupex: MySQL binlog position: filename 'mysql-bin.000001', position 7312
    130910 21:50:03  innobackupex: completed OK!



第四步,这样的备份文件无法使用,我们需要做统一检查

    [iyunv@serv01 databackup]# ll
    total 4
    drwxr-xr-x. 9 root root 4096 Sep 10 21:50 2013-09-10_21-49-44

    #做统一检查
    [iyunv@serv01 databackup]# innobackupex --apply-log /databackup/2013-09-10_21-49-44/

    InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
    and Percona Inc 2009-2012.  All Rights Reserved.
    ……
    xtrabackup: starting shutdown with innodb_fast_shutdown = 1
    130910 21:51:52  InnoDB: Starting shutdown...
    130910 21:51:56  InnoDB: Shutdown completed; log sequence number 2098188
    130910 21:51:56  innobackupex: completed OK!



第五步,模拟数据丢失

    [iyunv@serv01 databackup]# rm -rf /usr/local/mysql/data/*
    [iyunv@serv01 databackup]# ll /usr/local/mysql/data/
    total 0


第六步,恢复数据

    [iyunv@serv01 databackup]# innobackupex --copy-back /databackup/2013-09-10_21-49-44/

    InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
    and Percona Inc 2009-2012.  All Rights Reserved.
    ……
    innobackupex: Starting to copy InnoDB system tablespace
    innobackupex: in '/databackup/2013-09-10_21-49-44'
    innobackupex: back to original InnoDB data directory '/usr/local/mysql/data'
    innobackupex: Copying file '/databackup/2013-09-10_21-49-44/ibdata1'

    innobackupex: Starting to copy InnoDB log files
    innobackupex: in '/databackup/2013-09-10_21-49-44'
    innobackupex: back to original InnoDB log directory '/usr/local/mysql/data'
    innobackupex: Finished copying back files.

    130910 22:02:29  innobackupex: completed OK!



第七步,重启mysql服务,发现报错,pkill掉,然后启动一切正常

    [iyunv@serv01 databackup]# /etc/init.d/mysqld restart
     ERROR! MySQL server PID file could not be found!
    Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/serv01.host.com.pid).

    #查看恢复的数据目录,拥有者和所属组不是mysql用户,我们更改拥有者和所属组
    [iyunv@serv01 databackup]# ll /usr/local/mysql/data/
    total 18468
    drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 game
    drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 hello
    -rw-r-----. 1 root  root  18874368 Sep 10 21:51 ibdata1
    drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 larrydb
    drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 mnt
    drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 mysql
    -rw-rw----. 1 mysql mysql        0 Sep 10 22:02 mysql-bin.index
    drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 performance_schema
    -rw-r-----. 1 mysql root       771 Sep 10 22:02 serv01.host.com.err
    drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 test
    -rw-r--r--. 1 root  root        24 Sep 10 22:02 xtrabackup_binlog_pos_innodb

    [iyunv@serv01 databackup]# chown mysql.mysql /usr/local/mysql/data/ -R

    #再次启动,仍然失败,我们杀掉进程,再次启动mysql,正常
    [iyunv@serv01 databackup]# /etc/init.d/mysqld restart
     ERROR! MySQL server PID file could not be found!
    Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/serv01.host.com.pid).

    [iyunv@serv01 databackup]# ps -ef | grep mysql
    root      2386     1  0 18:36 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/serv01.host.com.pid
    mysql     2664  2386  0 18:36 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/serv01.host.com.err --pid-file=/usr/local/mysql/data/serv01.host.com.pid --socket=/tmp/mysql.sock --port=3306
    root      3022  1490  0 19:39 pts/0    00:00:00 mysql -uroot -px xxxx
    root      5021  3040  0 22:05 pts/2    00:00:00 grep mysql
    [iyunv@serv01 databackup]# pkill -9 mysql
    [iyunv@serv01 databackup]# /etc/init.d/mysqld start
    Starting MySQL.. SUCCESS!

    [iyunv@serv01 databackup]# mysql -uroot -p123456
    Server version: 5.5.29-log Source distribution
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | game               |
    | hello              |
    | larrydb            |
    | mnt                |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    8 rows in set (0.00 sec)


五 参考资料

http://www.percona.com/doc/percona-xtrabackup/2.1/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-42388-1-1.html 上篇帖子: MySQL触发器的使用 下篇帖子: MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复 软件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表