zoukankan      html  css  js  c++  java
  • 备份及恢复 工具

    备份工具
    mysqldump:
    mysqldump -uroot -p -A -R -E --triggers >/data/backup/full.sql

    mysqldump -uroot -p123 -A -R --triggers --set-gtid-purged=OFF --master-data=2 --single-transaction|gzip > /backup/full_$(date +%F).sql.gz

    参数:

    -A    全备
    -B    备个别库/多个库
    -R            备份存储过程及函数
    --triggers  备份触发器
    -E             备份事件
    -F 在备份开始时,刷新一个新binlog日志
     
    innobackupex:
    全备:
    innobackupex  --defaults-file=/etc/my.cnf  --user=root  --password='123'  --socket=/tmp/mysql.sock  --no-timestamp  /data/backup/xtrabackup

    增量:

    (1)删掉原来备份
    略.
    (2)全备(周日)
    [root@db01 backup]# innobackupex  --defaults-file=/etc/my.cnf  --user=root  --password='123'  --socket=/tmp/mysql.sock  --no-timestamp  /data/backup/full >&/tmp/xbk_full.log
    (3)模拟周一数据变化
    db01 [(none)]>create database cs charset utf8;
    db01 [(none)]>use cs
    db01 [cs]>create table t1 (id int);
    db01 [cs]>insert into t1 values(1),(2),(3);
    db01 [cs]>commit;
    
    (4)第一次增量备份(周一)
    innobackupex --defaults-file=/etc/my.cnf  --user=root  --password='123'  --socket=/tmp/mysql.sock --no-timestamp --incremental --incremental-basedir=/backup/full  /backup/inc1 &>/tmp/inc1.log
    (5)模拟周二数据
    db01 [cs]>create table t2 (id int);
    db01 [cs]>insert into t2 values(1),(2),(3);
    db01 [cs]>commit;
    (6)周二增量
     innobackupex --defaults-file=/etc/my.cnf  --user=root  --password='123' --socket=/tmp/mysql.sock --no-timestamp --incremental --incremental-basedir=/backup/inc1  /backup/inc2  &>/tmp/inc2.log
    (7)模拟周三数据变化
    db01 [cs]>create table t3 (id int);
    db01 [cs]>insert into t3 values(1),(2),(3);
    db01 [cs]>commit;
    db01 [cs]>drop database cs;

    恢复过程:

    1. 检查备份
    1afe8136-601d-11e9-9022-000c2928f5dd:7-9
    2. 备份整理(apply-log)+合并备份(full+inc1+inc2)
    (1) 全备的整理
    [root@db01 one]# innobackupex --apply-log --redo-only /data/backup/full
    (2) 合并inc1到full中
    [root@db01 one]# innobackupex --apply-log --redo-only --incremental-dir=/data/backup/inc1 /data/backup/full
    (3) 合并inc2到full中
    [root@db01 one]# innobackupex --apply-log  --incremental-dir=/data/backup/inc2 /data/backup/full
    (4) 最后一次整理全备
    [root@db01 backup]#  innobackupex --apply-log  /data/backup/full
    3. 截取周二 23:00 到drop 之前的 binlog 
    [root@db01 inc2]# mysqlbinlog --skip-gtids --include-gtids='1afe8136-601d-11e9-9022-000c2928f5dd:7-9' /data/binlog/mysql-bin.000009 >/data/backup/binlog.sql
    4. 进行恢复
    [root@db01 backup]# mkdir /data/mysql/data2 -p
    [root@db01 full]# cp -a * /data/mysql/data2
    [root@db01 backup]# chown -R mysql.  /data/*
    [root@db01 backup]# systemctl stop mysqld
    vim /etc/my.cnf
    datadir=/data/mysql/data2
    systemctl start mysqld
    
    Master [(none)]>set sql_log_bin=0;
    Master [(none)]>source /data/backup/binlog.sql

    恢复工具:

    mysql> source /data/backup/full.sql

    查看二进制日志:

    更多二进制日志相关信息请查阅:https://www.jianshu.com/p/00c54d2832ed

    show master status;
    show variables like 'log_error';
    show binlog events in 'mysql-bin.000003';
    二进制日志截取:需查看起点/终点

    -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.0000xx', MASTER_LOG_POS=xxx;
    mysqlbinlog --skip-gtids --include-gtids='3ca79ab5-3e4d-11e9-a709-000c293b577e:6-7' /data/binlog/mysql-bin.0000xx >/backup/bin.sql

  • 相关阅读:
    Gym102028L
    CF985G
    三元环 & 四元环计数 学习笔记
    Hall 定理 学习笔记
    CF36E
    CF1110G
    P6071
    可持久化数据结构 学习笔记
    多项式全家桶
    c++ 编译zlib
  • 原文地址:https://www.cnblogs.com/fengyuanfei/p/14498359.html
Copyright © 2011-2022 走看看