MySQL分表备份

#!/bin/bash
DUMP=/usr/bin/mysqldump
MYSQL=/usr/bin/mysql
IPADDR=127.0.0.1
PORT=3306
USER=abc
PASSWD=123456
DATABASE=(db1 db2 db3)
ROOT_DIR=/data
LogFile=/var/log/mysqldunp.log
DATE="`date +%Y%m%d`"
MYSQLCMD="$MYSQL -h$IPADDR -P$PORT -u$USER -p$PASSWD"
MYSQLDUMP="$DUMP -h$IPADDR -P$PORT -u$USER -p$PASSWD"
OUTDIR="${ROOT_DIR}/mysql/${DATE}/${DATABASE}"


function log_info(){
    echo -e "[`date +%Y-%m-%d\ %H:%M:%S`] - INFO "  $@" " >> $LogFile
}
function log_error(){
    echo -e "[`date +%Y-%m-%d\ %H:%M:%S`] - ERROR " $@" " >> $LogFile
}
function backup(){
    database=$1
    table=$2
    $MYSQLDUMP $DATABASE $table > ${OUTDIR}/${DATE}-${database}-${table}.sql
    if [ $? == 0 ];then
        log_info  "${database} database ${table} table Backup successfully!"
    else
        log_error "${database}-${table} Backup failure 100"
        exit 100
    fi
}
function create_directory(){
    database=$1
    outdir="${ROOT_DIR}/mysql/${DATE}/${database}"
    [ -d $outdir ] || mkdir -p $outdir
    if [ -d $outdir ];then
        log_info "Directory created successfully! --> ${outdir}"
    else
        log_error "${outdir}  Directory creation failed."
        log_error "Backup to terminate."
    fi
}
function tables_bak(){
    database=$1
    table=(`$MYSQLCMD -e "show tables from $database;" | sed '1d'`)
    log_info "${#table[*]} tables : ${table[*]}"
    for table in  ${table[*]}
    do
        backup $database $table
    done
}

log_info "Database backup starts `date +%Y-%m-%d\ %H:%M:%S`"


for db in ${DATABASE[*]}
do
    create_directory $db
    tables_bak $db
done

转载于:https://www.cnblogs.com/outsrkem/p/11256950.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分库分表备份是一种将数据库中的数据按照一定规则分散存储在多个库和表中的备份方式。它可以通过将数据分散存储在多个库和表中,从而提高备份和恢复的效率。具体来说,分库分表备份可以降低数据迁移的时间的原因有以下几点: 1. 并行备份:分库分表备份可以将数据分散存储在多个库和表中,这样在备份时可以同时备份多个库和表,实现并行备份。相比于单库备份,分库分表备份可以同时备份更多的数据,从而提高备份的效率。 2. 减少备份数据量:分库分表备份可以将数据分散存储在多个库和表中,这样在备份时只需要备份需要备份的库和表,而不需要备份整个数据库。这样可以减少备份的数据量,从而降低备份的时间。 3. 灵活恢复:分库分表备份可以将数据分散存储在多个库和表中,这样在恢复时可以只恢复需要恢复的库和表,而不需要恢复整个数据库。这样可以灵活地进行数据恢复,提高恢复的效率。 总之,分库分表备份通过将数据分散存储在多个库和表中,实现并行备份、减少备份数据量和灵活恢复,从而降低数据迁移的时间。\[1\] #### 引用[.reference_title] - *1* *3* [MySQL分表备份方案(后附一键迁移脚本,经验证安全可用!!)](https://blog.csdn.net/ArrogantB/article/details/125988416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MySQL分库,分表备份的思路和方法](https://blog.csdn.net/weixin_34293141/article/details/91499745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值