• Xtrabackup 热备


    Xtrabackup介绍
    Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁);
    mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合。

    安装:
    用默认的yum安装的版本较低,不支持mysql5.7,需要如下操作方能安装较新的版本
    yum install https://www.percona.com/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm

    yum install percona-xtrabackup-24
    这种方式简单粗暴。其他方法经常会出现缺少依赖的情况,处理起来很耗时间,如下面方法:

    下载官网https://www.percona.com/downloads/XtraBackup/

    下载XtraBackup rpm包
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

    安装依赖包:
    yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-Digest-MD5
    rpm -ivh ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/libev-4.15-1.el6.rf.x86_64.rpm
    rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm

    安装XtraBackup
    rpm -ivh percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

    备份:

    将备份的数据存在本地

    innobackupex --defaults-file=/etc/my.cnf --user=root --password=64704b  /www/219bake

    将备份的数据压缩后存在本地

    innobackupex -p057ab  --stream=tar /tmp | gzip > /usr/local/src/xtraback/backup/241bake.tar.gz

    将备份的数据压缩后以流的方式传输到存储服务器

    innobackupex -p64704bf  --stream=tar /tmp | ssh root@192.168.6.250 "gzip > /www/bake/250/20180426.tar.gz"

    还原:

    将事物日志应用到备份的数据中

    innobackupex --apply-log --redo-only --use-memory=1G ./

    将mysql停止,并删除mysql的所有数据

    service mysqld stop

    rm -rf /home/www/server/data/*

    将备份数据拷贝回/home/www/server/data
    innobackupex --datadir=/home/www/server/data --copy-back ./

    设置mysql访问权限

    chown -R mysql.mysql /home/www/server/data/*

    重启mysql

    service mysqld restart

    登录mysql,设置从主服务器同步数据

    set global server_id=111;

    从xtrabackup_binlog_pos_innodb获取log file name和位置

    cat xtrabackup_binlog_pos_innodb

    设置从主库同步

    change master to  master_host='192.168.7.*',master_user='liaogs',master_password='adfadfasdf',master_log_file='mysql-bin.000893',master_log_pos=1008633;

    start slave;

    show slave status G;

    重置slave

    reset slave;

    另外

    数据库恢复MySQL [ERROR] Table 'mysql.user' doesn't exist
    删除了数据库文件后,需要重新初始化mysql:
    /www/server/mysql/bin/mysql_install_db --user=mysql --basedir=/www/server/mysql --datadir=/www/server/mysql/data
    在5.6.8之后的版本,用此种方式初始化后,root密码将会存放在 /root/.mysql_secret中,需要用alert重置密码
    ALTER USER 'root'@'%' IDENTIFIED BY 'c3ea96bbd5bf0a94a87a57efd417807d';

  • 相关阅读:
    为图片指定区域添加链接
    数值取值范围问题
    【leetcode】柱状图中最大的矩形(第二遍)
    【leetcode 33】搜索旋转排序数组(第二遍)
    【Educational Codeforces Round 81 (Rated for Div. 2) C】Obtain The String
    【Educational Codeforces Round 81 (Rated for Div. 2) B】Infinite Prefixes
    【Educational Codeforces Round 81 (Rated for Div. 2) A】Display The Number
    【Codeforces 716B】Complete the Word
    一个简陋的留言板
    HTML,CSS,JavaScript,AJAX,JSP,Servlet,JDBC,Structs,Spring,Hibernate,Xml等概念
  • 原文地址:https://www.cnblogs.com/kilometerwine/p/10625435.html
Copyright © 2020-2023  润新知