MySQL 实现分库和分表的备份 2023.7.29

1、分库备份

bash 复制代码
[root@localhost mysql-backup]# cat db_bak.sh 
#!/bin/bash
k_user=root
bak_password=123456
bak_path=/root/mysql-backup/
bak_cmd="-u$bak_user -p$bak_password"
exc_db="Database|information_schema|mysql|performance_schema|sys"
dbname=`mysql $bak_cmd -e "show databases"| egrep -v $exc_db`
for db in `echo $dbname`
do
   [ -d $bak_path ] || mkdir -p $bak_path
   mysqldump $bak_cmd -B $db | gzip > $bak_path/${db}_`date +$Y%m%d`.sql.gz
done

2、分表备份

bash 复制代码
[root@localhost mysql-backup]# cat tb_bak.sh 
#!/bin/bash
k_user=root
bak_password=123456
bak_path=/root/mysql-backup/
bak_cmd="-u$bak_user -p$bak_password"
exc_db="Database|information_schema|mysql|performance_schema|sys"
db_name=`mysql $bak_cmd -e "show databases"| egrep -v $exc_db`
#echo $db_name
for db in `echo $db_name`
do        
  [ -d ${bak_path} ] || mkdir -p ${bak_path}
  dt_name=`mysql $bak_cmd -e "use $db;show tables" | egrep -v "Tables_in_$db"`
  #echo $db
  #echo $dt_name
  for dt in `echo $dt_name`
  do
  #echo $db $dt
  mysqldump $bak_cmd $db ${dt} | gzip > $bak_path/${db}_${dt}.`date +%F%m%d`.sql.gz
  done 
done

3、运行截图

相关推荐
SH11HF42 分钟前
小菜狗的云计算之旅,今天学习MySQL数据库基础知识及操作
adb
vocal1 小时前
【我的安卓第一课】Android 多线程与异步通信机制(1)
android
顾林海1 小时前
ViewModel 销毁时机详解
android·面试·android jetpack
恋猫de小郭3 小时前
Google I/O Extended :2025 Flutter 的现状与未来
android·前端·flutter
@Ryan Ding3 小时前
MySQL主从复制与读写分离概述
android·mysql·adb
移动开发者1号4 小时前
Android 同步屏障(SyncBarrier)深度解析与应用实战
android·kotlin
移动开发者1号4 小时前
深入协程调试:协程调试工具与实战
android·kotlin
feifeigo12310 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
雨白12 小时前
Jetpack系列(三):Room数据库——从增删改查到数据库平滑升级
android·android jetpack
花王江不语15 小时前
android studio 配置硬件加速 haxm
android·ide·android studio