美文网首页
mysql备份

mysql备份

作者: donglq | 来源:发表于2018-01-15 23:43 被阅读0次

    备份两种方式

    一、xtrabackup

    只能备份数据,不能备份表结构

    • 备份
    sudo xtrabackup --defaults-file=/home/q/mysql/multi/3306/etc/my.cnf --backup  --host=127.0.0.1 --port=3306 --user=backup --password=123456 --backup--target-dir=./
    
    • 处理
    sudo xtrabackup --prepare --target-dir=./xtrabackup_backupfiles/
    
    • 恢复: 将数据copy到data下即可
    二、innobackupex
    • 备份
    sudo innobackupex --parallel=6 --host=127.0.0.1 --port=3306 --user=backup --password=123456 --defaults-file=/home/q/mysql/multi/3306/etc/my.cnf ./
    

    记住 最后输出的filename,position, GTID,类似

    filename 'mysql-bin.023745', position 282434278, GTID of the last change 'efafe04e-57c7-11e6-8f43-5cb90191669c:2-5228202:5228204-7114224:7114226-7114388:7114390-7136818:7136820-7175006,
    fb7b123d-57c8-11e6-8f4a-5cb90191667c:1-74099947'
    

    如果备份使用了--compress参数压缩,需要先执行(需要qpress支持)

    sudo innobackupex --decompress ./file 
    
    • 关闭待恢复的数据库,清空mysql数据目录下data文件。

    • 恢复日志文件

    sudo innobackupex --host=127.0.0.1 --port=3306 --user=backup --password=123456 --defaults-file=/home/q/mysql/multi/3306/etc/my.cnf --apply-log  ./2017-11-17_01-00-59/
    
    • 恢复数据文件
    sudo innobackupex --host=127.0.0.1 --port=3306 --user=backup --password=123456 --defaults-file=/home/q/mysql/multi/3306/etc/my.cnf --copy-back  ./2017-11-17_01-00-59/
    
    • 修改数据权限
    sudo chown -R mysql:mysql data
    
    • 启动数据库
    sudo /etc/init.d/mysql.server -P 3306 start
    
    • 登陆数据库执行如下操作,将gtid替换为前面记录的gtid,其他参数替换为实际值
    reset master;
    SET GLOBAL gtid_purged='gtid';
    
    reset slave;
    CHANGE MASTER TO MASTER_HOST='host',
    MASTER_USER='backup',
    master_port=port,
    MASTER_PASSWORD='password',
    MASTER_AUTO_POSITION=1;
    start slave;
    
    • 检查
    show slave status;
    

    相关文章

      网友评论

          本文标题:mysql备份

          本文链接:https://www.haomeiwen.com/subject/nosjoxtx.html