zoukankan      html  css  js  c++  java
  • xtraback工具的使用和备份

     

     

    http://www.cnblogs.com/gomysql/p/3650645.html

    mysqldump

    参数:

    --all-databases #所有数据库

    --database dbname #指定库的

    --single-transaction #备份前执行transaction命令,保持数据的一致性

    --lock-tables #针对备份前对当前库下的表进行锁表,只能读取数据不能写入,保证数据的一致性,一般是用于myisam引擎,对于innodb引擎一般使用--single-transaction

    --lock-all-tables #在备份过程中,以锁住所有库下的所有表

    =====================================================================

    针对mysql不同引擎的备份参数:

    如果库中既有innodb引擎又有myisam引擎时可以添加参数为:

    --single-transaction -l 这两个参数的含义是:在innodb的引擎时既不会影响数据的读写,而且在myisam中是备份哪个对象,它就锁定哪个对象,相对于myisam引擎的读写影响较小。

    =========================================================

    xtraback工具的使用:

    安装:

    rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm

    yum install rsync

    yum install libaio

    yum install perl-DBD-MySQL

    rpm -ivh percona-xtrabackup-24-2.4.8-1.el6.x86_64.rpm --nodeps

    创建备份用户,给相应的权限

    grant reload,lock tables,replication client,create tablespace,super,process on *.* to xtraback@'%' identified by '123';

    全备份:

    innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=xtraback --password=123 --socket=/usr/local/mysql/mysqld.sock /opt/data/
    |备份的目录|

    恢复全备份:

    首先:

    innobackupex --apply-log /opt/data/2017-09-14_15-21-31/

    再次进行恢复:

    innobackupex --defaults-file=/usr/local/mysql/my.cnf --copy-back --rsync /opt/data/2017-09-14_15-21-31/

    最后修改data文件的权限:

    chown -R /usr/local/mysql/data


    增量备份:

    1.全备份:

    2.增量备份:

    --incremental #指定增量备份的路径

    --incremental-basedir= #指定上一次完全备份或增量备份的备份路径

    --parallel=2   

    会创建2个IO线程

    命令:

    innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=xtraback --password=123 --socket=/usr/local/mysql/mysqld.sock --incremental /opt/data/zeng/ --incremental-basedir=/opt/data/2017-09-14_15-21-31/ --parallel=2

    ll /opt/data/zeng/
    total 8
    drwxr-x--- 7 root root 4096 Sep 14 15:54 2017-09-14_15-54-27

    基于上次增量备份的增量备份:

    innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=xtraback --password=123 --socket=/usr/local/mysql/mysqld.sock --incremental /opt/data/zeng/ --incremental-basedir=/opt/data/zeng/2017-09-14_15-54-27/ --parallel=2

    ll /opt/data/zeng/
    total 8
    drwxr-x--- 7 root root 4096 Sep 14 15:54 2017-09-14_15-54-27
    drwxr-x--- 7 root root 4096 Sep 14 16:04 2017-09-14_16-04-07

    恢复增量备份

    --redo-only #是否回滚未提交的数据,添加不回滚,不添加回滚数据

    1.先恢复完全备份

    innobackupex --apply-log --redo-only /opt/data/2017-09-14_15-21-31/

    2.恢复第一次的增量备份 (添加 --redo-only参数,最后一次增量恢复去掉这个参数)

    innobackupex --apply-log --redo-only /opt/data/2017-09-14_15-21-31/ --incremental-dir=/opt/data/zeng/2017-09-14_15-54-27/

    3.恢复第二次的增量备份,依次恢复增量备份

    innobackupex --apply-log /opt/data/2017-09-14_15-21-31/ --incremental-dir=/opt/data/zeng/2017-09-14_16-04-07/

    4.对整体的完全备份进行回复,回滚那些未提交的数据 (不添加--redo-only)

    innobackupex --apply-log /opt/data/2017-09-14_15-21-31/

    把恢复完的备份复制到mysql的家目录中,并且给定权限,启动mysqld

    /etc/init.d/mysqld stop

    恢复数据:

    innobackupex --defaults-file=/usr/local/mysql/my.cnf --copy-back --rsync /opt/data/2017-09-14_15-21-31/

    给定权限:

    cd /usr/local/mysql

    chown -R mysql:mysql data/

    /etc/init.d mysqld start

    最后检查数据的完整性。

    xtraback实现在线添加从库:

    参数:

    --galera-info #会将master的binlog文件名和偏移量位置保存到xtrabackup_slave_info文件中

    --safe-slave-backup #会暂停slave的SQL线程直到没有打开的临时表的时候开始备份。备份结束后SQL线程会自动启动,这样操作的目的主要是确保一致性的复制状态。

    实例:

    1.在原有的slave上进行备份:

    slave1

    innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=xtraback --password=123 --socket=/usr/local/mysql/mysqld.sock --slave-info --safe-slave-backup --no-timestamp /opt/clone


    查看xtrabackup_slave_info文件内容,这个内容就是为搭建从库时需要change master to的参数:

    cat /opt/clone/xtrabackup_slave_info

    CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=404;

    还原备份:

    innobackupex --apply-log --redo-only /opt/clone/

    将还原的数据文件复制到newslave上

    rsync -avprP -e ssh /opt/clone/ 192.168.1.83:/opt/clone
    |newslave的ip|

    master上对newslave授权

    在建主从的时候已经授权成功

    拷贝slave1的配置文件到newslave上,并修改ID号:

    scp /usr/local/mysql/my.cnf 192.168.1.83:/usr/local/mysql/
    |newslave的ip|

    newslave:

    cat /usr/local/mysql/my.cnf|grep server

    server-id = 4

    在newslave上进行授权,并启动服务:

    cd /usr/local/mysql/

    cp -rf /opt/clone ./data

    chown -R mysql:mysql data/

    /etc/init.d/mysqld start

    查看xtrabackup_slave_info文件内容,并在newslave上进行CHANGE MASTER TO

    change master to master_host='192.168.1.218',master_user='repl',master_password='123',master_log_file='mysql-bin.000002',master_log_pos=404;

    启动io线程,查看slave的状态:

    mysql> start slave;

    mysql> show slave statusG

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

  • 相关阅读:
    【AtCoder】AGC002
    【AtCoder】ARC059
    【AtCoder】AGC003
    【AtCoder】ARC060
    ES6学习总结之Set和Map的使用
    phaser学习总结之Text详解
    javascript实现数组排序的方法
    phaser学习总结之phaser入门教程
    javascript中字符串常用的方法和属性
    javascript中数组常用的方法和属性
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/14665340.html
Copyright © 2011-2022 走看看