• ADADADADAD

    mysql innobackupex 物理备份[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:12:37

    作者:文/会员上传

    简介:

    一、innobackupex 安装

    本次环境为centos6,在http://www.percona.com/downloads/xtrabackup/下载安装包

    本次实验下载安装为
    wget https://www.percona.com/downloads/Xtra

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一、innobackupex 安装

    本次环境为centos6,在http://www.percona.com/downloads/xtrabackup/下载安装包

    本次实验下载安装为
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.4/binary/redhat/6/x86_64/Percona-XtraBackup-2.3.4-re80c779-el6-x86_64-bundle.tar

    下载完成后,如下安装:root@mysqlslave soft]# rpm -ivh percona-xtrabackup-2.3.4-1.el6.x86_64.rpm
    warning: percona-xtrabackup-2.3.4-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
    error: Failed dependencies:
    libev.so.4()(64bit) is needed by percona-xtrabackup-2.3.4-1.el6.x86_64

    发现缺依赖包。。。。
    解决:
    yum install libev -y
    再次安装:
    [root@mysqlslave soft]# rpm -ivh percona-xtrabackup-2.3.4-1.el6.x86_64.rpm
    warning: percona-xtrabackup-2.3.4-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
    Preparing...########################################### [100%]
    1:percona-xtrabackup ########################################### [100%]

    安装成功,并查看版本
    [root@mysqlslave soft]# innobackupex -version
    innobackupex version 2.3.4 Linux (x86_64) (revision id: e80c779)


    一、备份1.1、创建全备份集
    innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --port=3306 --user=root --password=123456 --socket=/usr/local/mysql/mysql.sock /data/backup/full
    参数解释:
    --defaults-file 启动mysql的参数文件
    --host主机名称可以备份远端服务器
    --portmysql的端口号
    --user备份用户名
    --password 备份用户密码
    --socket 启动mysql的socket文件

    以下是mysqlinnobackupex 物理备份并备份日志的脚本
    #!/bin/bash
    cd /data/backup/full/
    c=`pwd`
    innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --port=3306 --user=root --password=123456 --socket=/usr/local/mysql/mysql.sock $c
    a=`echo $?`
    echo $a
    b=`ls -l | grep '^d'|awk -F ":" '{print$2}'|awk -F " " '{print$2}'`
    echo $b
    cd $c
    if [ $a == 0 ];then
    innobackupex --use-memory=500m --apply-log $b
    echo -e "\033[32m ################################################ \033[0m"
    echo -e "\033[32m ####BackUp Sucessed ##### \033[0m"
    echo -e "\033[32m ################################################ \033[0m"
    tar -zcvf $b.tar $b
    rm -rf $b
    else
    echo -e "\033[41;37m ############################################# \033[0m"
    echo -e "\033[41;37m ####BackUp Failed#### \033[0m"
    echo -e "\033[41;37m ############################################# \033[0m"
    echo "backup failed"
    fi


    1.2 增量备份

    增量备份首先也需要一个全量的备份。

    例子:

    例如:

    星期一星期二星期三
    全备增量增量

    全备备份星期一备份星期二
    与星期二差异 与星期三差异

    备份子目录需要手工创建。

    mkdir /data/backup/{mon,tue,wed}

    全备(星期一):星期一需要做一个0级备份,也就是全备份
    innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 /data/backup/mon
    增量备份(星期二):星期二做一个与0级备份之间相差的增量备份
    innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 --incremental /data/backup/tue/ --incremental-basedir=/data/backup/mon/2016-04-20_19-50-34

    增量备份(星期三):星期三与星期二之间相差的增量备份
    innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 --incremental /data/backup/wed/ --incremental-basedir=/data/backup/tue/2016-04-20_19-53-41/


    1.3查看备份信息

    可以通过以下文件查看备份信息。

    [root@drbd-01 backup]# cat /data/backup/full/2015-07-28_12-10-45/xtrabackup_checkpoints

    backup_type = full-backuped

    from_lsn = 0

    to_lsn = 3194902

    last_lsn = 3194902

    compact = 0

    [root@drbd-01 backup]# cat /data/backup/001/xtrabackup_checkpoints

    backup_type = incremental

    from_lsn = 3194902

    to_lsn = 3198776

    last_lsn = 3198776

    compact = 0

    [root@drbd-01 backup]# cat /data/backup/002/xtrabackup_checkpoints

    backup_type = incremental

    from_lsn = 3198776

    to_lsn = 3202726

    last_lsn = 3202726

    compact = 0

    上面看到,可以通过lsn看到这3个备份集关系。

    二恢复

    删除原来的mysql数据目录/data/mysql,创建新的数据库目录,用来模拟数据库损坏。

    [root@drbd-01 data]#rm –rf /data/mysql

    [root@drbd-01 data]# cd /data/

    [root@drbd-01 data]# mkdir mysql

    [root@drbd-01 data]# chown mysql.mysql mysql

    完全恢复;

    执行恢复操作

    [root@drbd-01 ~]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/full/2015-07-28_12-10-45/

    修改权限及属主:

    chown -R mysql:mysql /data/mysql


    增量恢复:

    1.1先Prepare完整备份集(应用日志)[root@mysqlslave mysql]#innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_18-12-50 --use-memory=500m --user=root --password=123456
    2.2 Prepare增量备份集2.2.1合并第一个增量备份到完全备份里面星期二增量备份追加到星期一的备份(0级备份)
    [root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_19-50-34/ --incremental-dir=/data/backup/er/2016-04-20_19-53-41/ --user=root --password=123456
    星期三增量备份追加到星期一的备份(0级备份)
    [root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_19-50-34/ --incremental-dir=/data/backup/san/2016-04-20_19-53-55/ --user=root --password=123456
    将整个备份追加到星期一,再将星期一的备份prepare 一下
    [root@mysqlslave mysql]#innobackupex --apply-log /data/backup/yi/2016-04-20_19-50-34/ --use-memory=500m --user=root --password=123456

    恢复操作:
    最终恢复的操作和完成恢复一样

    [root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/yi/2016-04-20_19-50-34

    修改权限:
    chown mysql:mysql -R *

    验证数据是否恢复



    mysql innobackupex 物理备份.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载