zoukankan      html  css  js  c++  java
  • 12-1 MySQL数据库备份(分库)

    #!/bin/bash
    source /etc/profile
    
    DATE="$(date +%F_%H-%M-%S)"
    DB_IP="172.16.1.122"
    HOST="localhost"
    PORT="3306"
    USER="root"
    PASS="Liuchang@2020"
    BACKUP_DIR="/data/db_backup"
    [ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR
    
    MYSQL_DUMP="mysqldump -h${HOST} -P${PORT} -u${USER} -p${PASS}"
    MYSQL_COMMAND="mysql -h${HOST} -P${PORT} -u${USER} -p${PASS}"
    DB_LIST="`$MYSQL_COMMAND -s -e "show databases;" 2>/dev/null |egrep -v "information_schema|performance_schema|sys|mysql"`"
    
    for DB in $DB_LIST; do
        BACKUP_NAME="${BACKUP_DIR}/${DB}_${DATE}.sql"
        if ! $MYSQL_DUMP -B $DB -R --single-transaction --events --hex-blob --triggers --flush-privileges > $BACKUP_NAME 2>/dev/null; then
            echo "MySQL $DB_IP DATABASE $BACKUP_NAME BACKUP FAILD" |mail -s "MySQL $DB_IP DATABASE $DB BACKUP FAILD" 2504164765@qq.com
        fi
    done
    
    ##############补充说明##########################
    # 主从复制时全备主库的命令
    # mysqldump -uroot -p'Liuchang@2020' -A -F -R --single-transaction --master-data=1 --events --hex-blob --triggers --flush-privileges | gzip > /tmp/mysql_master_20200821.sql.bak.gz
    
    # 普通备份参数:
    # -R: 转储存储的例程(功能和过程);
    # -E: --events:转储事件;
    # -A: 转储所有数据库, 这将与--databases以及所有已选择的数据库相同;
    # -B: 转储多个数据库,增加建库语句和use连接库的语句;
    # --hex-blob: 转储十六进制格式的二进制字符串(BINARY,VARBINARY,BLOB);
    # --triggers: 为每个转储的表转储触发器;
    # --flush-privileges: 转储mysql数据库后,发出FLUSH PRIVILEGES语句;
    # --single-transaction: 设置事务的隔离级别为可重复读(REPEATABLE READ),用于热备,只适用于MySQL InnoDB引擎。
    
    # 用于MySQL开启binlog时的参数:
    # -F: 开始转储之前刷新服务器中的日志文件;
    # --master-data=1: 备份中增加binlog日志文件名及对应的位置点,1不加注释,2加注释;
    
    # -d:没有行信息,只备份表结构,不备份表数据; Usage: -d <数据库> <表名称,多个表名称可用空格隔开>
    # -t:不要写表创建信息,只备份表数据,不备份表结构;Usage: -t <数据库> <表名称,多个表名称可用空格隔开>
    ################################################
  • 相关阅读:
    ActiveMQ 即时通讯服务 浅析
    Asp.net Mvc (Filter及其执行顺序)
    ActiveMQ基本介绍
    ActiveMQ持久化消息的三种方式
    Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性
    Azure China (10) 使用Azure China SAS Token
    Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
    Windows Azure Storage (22) Azure Storage如何支持多级目录
    Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
    Azure Redis Cache (2) 创建和使用Azure Redis Cache
  • 原文地址:https://www.cnblogs.com/LiuChang-blog/p/14697956.html
Copyright © 2011-2022 走看看