zoukankan      html  css  js  c++  java
  • 数据库备份策略

    数据库备份策略

    每周的周日进行一次全备;周一到周六每天做上一天增量,每周轮询一次。 
    备份方案: xtrabackup全备+增量

    备份策略(crontab):

    crontab -e

    00 03 1 /root/allbak.sh &>/dev/null //每周一的凌晨3点执行完全备份

    vim /root/allbak.sh  
    #!/bin/bash  
    [ ! -e /backup ]&& mkdir /backup #新建个文件夹专门放备份文件的  
    day=date +%F #定义日期是时间  
    user=root  
    pass=123456  
    innobackupex --user $user --password $pass /backup/allbak${day} --no-timestamp 
    #用innobackupex做完全备份  
    mysql -u$user -p$pass -e "flush logs"  
    #启用binlog日志,每次完全备份之后,每周刷新一遍binlog日志

    00 0 2-7 /root/newbak.sh & >/dev/null //每周二到周7的凌晨3点执行增量备份

    #周一全备,如果是周二执行,判断dir1 存在,则增量备份,如果不存在,则判断昨天的增量,存在则执行周三的增量,如果都没有,则全备执行一次吧 

    vim /root/newbak.sh  
    #!/bin/bash  
    d1=date +%F #定义时间,用日期来区分  
    d2=date +%F -d "-1 days" #找到昨天的日期,好指明上一次备份的备份文件  
    dir1=/backup/allbak${d2} #昨天做的完全备份文件  
    dir2=/backup/newbak${d2} #昨天做的增量备份文件  
    user=root  
    pass=123456  
    [ ! -e /backup ]&& mkdir /backup #如果文件不存在,则创建文件夹  
    if [ -e ${dir1} ];then #判断昨天做的是完全备份  Y指定昨天备份的完全备份文件
        innobackupex --user $user --password $pass --incremental /backup/newbak${d1} --incremental-basedir=${dir1} --no-timestamp 
    elif [ -e ${dir2} ];then#判断昨天做的是增量备份  Y指定昨天备份的增量备份文件
        innobackupex --user $user --password $pass --incremental /backup/newbak${d1} --incremental-basedir=${dir2} --no-timestamp 
    else  #昨天既没有做增量备份,又没有做完全备份,则做一次完全备份。
        innobackupex --user $user --password $pass /backup/allbak${d1} --no-timestamp  
    fi
  • 相关阅读:
    大数据基本概念及Hadoop技术基础
    基于 ReliefF和K-means算法的应用
    利用Hadoop和Spark处理用户心跳周期数据
    Java线程池源码解析及高质量代码案例
    muleESB的第一个开发实例-HelloWorld(二)
    [USACO11JAN]道路和飞机Roads and Planes
    CH6101 最优贸易
    POJ3662 Telephone Lines
    扫描线+线段树例题(HDU1542)
    关于Dinic算法的几点讨论
  • 原文地址:https://www.cnblogs.com/user-sunli/p/13917315.html
Copyright © 2011-2022 走看看