MySQL数据库分库分表备份

该文章介绍了两个bash脚本,分别用于数据库和表的备份。脚本包含设置备份路径、排除特定系统数据库、创建目录、使用mysqldump进行备份以及gzip压缩。每个备份文件名包含日期戳,便于管理。同时,脚本会删除临时文件以保持清洁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分库备份

创建脚本并编写

[root@localhost scripts]# vim bak_db_v1.sh

#!/bin/bash

备份的路径

bak_path=/backup/db

账号密码

mysql_cmd='-uroot -pRedHat@123'

需要排除的数据库

exclude_db='information_schema|mysql|performance_schema|sys'

检验备份路径是否存在,不存在则创建

[ -d ${bak_path} ] || mkdir -p ${bak_path}

提取需要备份的数据库,并将其写入文件(dbname)中

mysql ${mysql_cmd} -e 'show databases' -N | egrep -v "${exclude_db}" > dbname

循环文件,针对每个库进行备份

while read line

do

 mysqldump ${mysql_cmd} -B $line | gzip > ${bak_path}/${line}_$(date +%F).sql.gz

done < dbname

删除临时文件

rm -f dbname

分表备份

#!/bin/bash
备份的路径
bak_path=/backup/db
账号,密码
mysql_cmd='-uroot -pRedHat@123'
需要排除的数据库
exclude_db='information_schema|mysql|performance_schema|sys'
提取需要备份的数据表,并将其写入文件(tbname)中
mysql -uroot -pRedHat@123 -N -e'show tables from abc' > tbname
循环文件,针对每个表进行备份
while read line
do
将数据表放在对应的数据库下面
 [ -d ${bak_path}/abc ] || mkdir -p ${bak_path}/abc
 mysqldump ${mysql_cmd} abc $line | gzip > ${bak_path}/abc/abc_${line}_$(date +%F).sql.gz
done < tbname
删除临时文件
rm -f tbname

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值