MySQL数据库分库分表备份

分库备份

创建脚本并编写

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

相关推荐
kirs_ur10 小时前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化
是三一seven11 小时前
Sql注入基础
数据库·安全·网络安全
Sirens.11 小时前
MySQL表设计进阶-约束范式连接索引与事务
android·数据库·mysql
字节跳动开源12 小时前
火山引擎开源 Agent 驱动的搜索自迭代技术
数据库·开源·agent
Oo大司命oO14 小时前
藏在正则表达式里的陷阱
数据库·mysql·正则表达式
_oP_i15 小时前
mysql统计数据库使用存储大小
数据库
会编程的土豆16 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
jjjava2.016 小时前
系统日志:从入门到精通的完整指南
网络·数据库
写代码的强哥16 小时前
云原生数据库与传统数据库相比“新”在哪里
数据库·云原生·架构