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

[经验分享] MySQL Xtrabackup备份和恢复

[复制链接]

尚未签到

发表于 2016-9-20 10:51:06 | 显示全部楼层 |阅读模式
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。
1.安装mysql http://instance.iyunv.com/blog/1454027
2.安装Xtrabackup ,下载Xtrabackup
  配置源
    #vi /etc/yum.repos.d/percona.repo
   
[percona]
name = CentOS $releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 1


   添加key
   #cd  /etc/pki/rpm-gpg
   #wget http://www.percona.com/downloads/RPM-GPG-KEY-percona
   安装Xtrabackup
   yum install xtrabackup
  
备份及恢复
一. 整库备份及恢复
①备份
#innobackupex-1.5.1 --user=root --password=1234 --defaults-file=/etc/my.cnf   /var/backups

②恢复
a. 停止 MySQL 服务:# /etc/init.d/mysqld stop

b. #innobackupex-1.5.1 --apply-log --defaults-file=/etc/my.cnf  /var/backups/2012-03-20_19-30-04
# innobackupex-1.5.1 --copy-back --defaults-file=/etc/my.cnf /var/backups/2012-03-20_19-30-04

   使用cd或者ls 命令看看你的数据库目录下是不是有文件了?
   修改数据库文件权限,否则无法启动。(这步我是cd到原数据库目录下进行的)
   #chown -R mysql:mysql *
   重启数据库,看恢复是否成功。
二.全量备份及恢复
   使用xtrabackup,仅限InnoDB和xtradb表,且注意mysql配置文件my.cnf中“default_table_type = InnoDB”否则不成功
①备份
    #xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/var/backups/base/

②恢复
    执行两次:
    #xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/var/backups/base
#xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/var/backups/base

    因为第二次prepare会帮助我们生成redo log文件,从而加快MySQL数据库启动的速度。
    将数据库停掉,删除数据库下的ib*(ib开头的所有)文件。将/var/backups/base目录下的ib*文件拷贝到数据库目录。
    #chown mysql:mysql ib*
   重启数据库,看恢复是否成功。
三.增量备份及恢复
    xtrabackup做增量仅限InnoDB和xtradb表,且注意mysql配置文件my.cnf中“default_table_type= InnoDB”否则不成功
    做增量前当然要先进行全量备份,在全量的基础上来进行增量
    首先进行全量备份
    # xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/var/backups/base/

    在全量备份的基础上进行增量
    # xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/var/backups/1/ -- incremental-basedir=/var/backups/base

    xtrabackup --defaults-file=配置文件 --target-dir=全量备份存储目录 --incremental-basedir=增量存储目录 --backup
    注:/var/backups/1/是每次都需修改的。比如第二次增量就改成/var/backups/2

    增量恢复。(步骤同全量恢复,只是在执行恢复命令的时候中间多一步)
     # xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/var/backups/base
# xtrabackup --target-dir=/backups/base --prepare --incremental-dir=/var/backups/1
# xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/var/backups/base

     将数据库停掉,删除数据库下的ib*文件。将/var/backups/base目录下的ib*文件拷贝到数据库目录。
    #chown mysql:mysql ib*
   重启数据库,看恢复是否成功。

注:备份前先登录数据库,打开一个表看看记录条数,然后进行备份,然后再对表最终的记录进行修改,然后在备份,再测试。

运维网声明 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.yunweiku.com/thread-274893-1-1.html 上篇帖子: mysql乱码 级联问题 下篇帖子: Mysql char 与 varchar 区别(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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