• 实战:percona-xtrabackup 2.1.9 for mysql 5.6.19


    ----1.编译安装percona-xtrabackup


    yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr
    bison libtool ncurses-devel zlib-devel libgcrypt-devel

    wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.9/source/percona-xtrabackup-2.1.9.tar.gz


    tar xvzf percona-xtrabackup-2.1.9.tar.gz

    mkdir -p /usr/local/xtrabackup/


    mv percona-xtrabackup-2.1.9 /usr/local/xtrabackup/

    cd /usr/local/xtrabackup/percona-xtrabackup-2.1.9


    AUTO_DOWNLOAD="yes" ./utils/build.sh innodb56


    /*****又一次安装须要
    rm -rf /usr/bin/innobackupex
    rm -rf /usr/bin/xtrabackup

    ***********/


    cp innobackupex /usr/bin/

    cp src/xtrabackup_56  /usr/bin/

    ln -s /usr/local/mysql/bin/* /usr/bin/

    ---2.安装相关插件

    wget http://www.percona.com/downloads/percona-toolkit/LATEST/RPM/percona-toolkit-2.2.8-1.noarch.rpm

    yum install perl-DBI
    yum install perl-DBD-MySQL
    yum install perl-Time-HiRes
    yum install perl-IO-Socket-SSL

    rpm -ivh percona-toolkit-2.2.8-1.noarch.rpm


    *****************************************************************
    普通备份和还原
    *****************************************************************

    ----1.备份


    create table t1
    (
    sid int not null ,
    sname varchar(100)  not null
    )engine=innodb charset=gbk  ;


    DELIMITER //
    create PROCEDURE proc1()
    BEGIN 
        DECLARE i int DEFAULT 0;
        set i=1 ;
    set autocommit=0; 
    WHILE i<=1000000 DO
    INSERT INTO t1 values(i,'我');
    set i=i+1;
    END WHILE;
    commit;
    set autocommit=1;     
    END 
    //
    DELIMITER ;

    call proc1;

    ---2.备份数据

    innobackupex  --user=root --password=password  --defaults-file=/usr/local/mysql/my.cnf
    --port=3306 /backup


    ---3.恢复数据

    service mysql stop


    mv /usr/local/mysql/data/innodb_data/  /wind/

    cp -rvf innodb_data/  /wind/


    ----datadir数据文件夹和日志文件夹须要为空

    rm -rf /usr/local/mysql/innodb_data/*
    rm -rf /usr/local/mysql/data/*
    rm -rf /usr/local/mysql/mysql_logs/innodb_log/*

    ----4.准备日志(默认使用内存100M)
     
    innobackupex --ibbackup=xtrabackup_56    --user=root --password=password  --defaults-file=/usr/local/mysql/my.cnf 
    --apply-log  --use-memory=4G  /backup/2014-06-06_10-27-47


    ----5.还原数据库

    innobackupex  --ibbackup=xtrabackup_56   --defaults-file=/usr/local/mysql/my.cnf   --copy-back /backup/2014-06-06_10-27-47

    还原前数据文件和事务日志文件包含innodb的日志都须要删除.依据/et/my.cnf来确定MySQL的数据位置


    ---6.权限设置

    chown -R mysql:mysql /usr/local/mysql/


    service mysql start


    *****************************************************************
    增量备份和还原
    *****************************************************************


    ----1.准备数据

    create database wind;

    use wind;


    create table t1
    (
    sid int not null ,
    sname varchar(100)  not null
    )engine=innodb charset=gbk  ;


    DELIMITER //
    create PROCEDURE proc1()
    BEGIN 
        DECLARE i int DEFAULT 0;
        set i=1 ;
    set autocommit=0; 
    WHILE i<=1000000 DO
    INSERT INTO t1 values(i,'我');
    set i=i+1;
    END WHILE;
    commit;
    set autocommit=1;     
    END 
    //
    DELIMITER ;

    call proc1;

    ---2.全备数据

    mkdir -p /backup/full

    innobackupex  --user=root --password=password  --defaults-file=/usr/local/mysql/my.cnf
    --port=3306 /backup/full

    ----3.改变数据

    create table t2
    (
    sid int not null ,
    sname varchar(100)  not null
    )engine=innodb charset=gbk  ;


    DELIMITER //
    create PROCEDURE proc2()
    BEGIN 
        DECLARE i int DEFAULT 0;
        set i=1 ;
    set autocommit=0; 
    WHILE i<=2000000 DO
    INSERT INTO t2 values(i,'今天是个好日子');
    set i=i+1;
    END WHILE;
    commit;
    set autocommit=1;     
    END 
    //
    DELIMITER ;

    call proc2;

    ----4.增量备份

    mkdir -p /backup/incre

    innobackupex  --use-memory=4G  --user=root --password=password  --defaults-file=/usr/local/mysql/my.cnf
    --port=3306  --incremental  /backup/incre   --incremental-basedir=/backup/full/2014-06-06_12-26-10      


    ---3.恢复数据

    service mysql stop


    mv /usr/local/mysql/data/innodb_data/  /wind/

    cp -rvf innodb_data/  /wind/


    ----datadir数据文件夹和日志文件夹须要为空

    rm -rf /usr/local/mysql/innodb_data/*
    rm -rf /usr/local/mysql/data/*
    rm -rf /usr/local/mysql/mysql_logs/innodb_log/*

    ----4.准备日志(默认使用内存100M)

    ---4.1 Prepare完整备份集

    /*语法:  innobackupex --apply-log --redo-only BASE-DIR  */

     
    innobackupex --ibbackup=xtrabackup_56    --user=root --password=password  --defaults-file=/usr/local/mysql/my.cnf 
    --apply-log --redo-only   /backup/full/2014-06-06_12-26-10  --use-memory=4G


    ---4.2 Prepare增量备份集

    /*语法:innobackupex --apply-log --redo-only BASE-DIR --incremental-dir= */

    innobackupex --ibbackup=xtrabackup_56    --user=root --password=password  --defaults-file=/usr/local/mysql/my.cnf 
    --apply-log --redo-only   /backup/full/2014-06-06_12-26-10  --incremental-dir=/backup/incre/2014-06-06_12-38-16
    --use-memory=4G   

    ---4.3再次prepare全备集,回滚那些未提交的事务
    /*语法: innobackupex --apply-log BASE-DIR */

    innobackupex --ibbackup=xtrabackup_56    --user=root --password=password  --defaults-file=/usr/local/mysql/my.cnf 
    --apply-log    /backup/full/2014-06-06_12-26-10  --use-memory=4G


    ----5.还原数据库

    innobackupex  --ibbackup=xtrabackup_56   --defaults-file=/usr/local/mysql/my.cnf
    --copy-back /backup/full/2014-06-06_12-26-10

    还原前数据文件和事务日志文件包含innodb的日志都须要删除.依据/et/my.cnf来确定MySQL的数据位置


    ---6.权限设置

    chown -R mysql:mysql /usr/local/mysql/

    ---7.启动mysql

    service mysql start

  • 相关阅读:
    小程序开发点滴积累
    使用openssl在windows 10下本地xampp配置https开发环境
    linux networking
    CGI,FastCGI,PHP-FPM,PHP-CLI,modPHP
    centos 7.2 64位 docker安装lamp环境
    反模拟类游戏外挂 转
    鼠标 hook 源码 C#版
    C# 鼠标连击源码 转
    win32 API 在win10 64位失效
    利用浏览器外部协议(URL Procotol)打开本地exe文件
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7063703.html
Copyright © 2020-2023  润新知