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

相关推荐
精进攻城狮@19 分钟前
Redis(value的数据类型)
数据库·redis
爪哇学长26 分钟前
SQL 注入详解:原理、危害与防范措施
xml·java·数据库·sql·oracle
MarcoAI1 小时前
github SSH连接(windows)
windows·ssh·github
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
mybatisPlus打印sql配置
数据库·sql
弗拉唐1 小时前
将Excel文件的两个表格经过验证后分别读取到Excel表和数据库
数据库·excel
刘艳兵的学习博客1 小时前
刘艳兵-DBA033-如下那种应用场景符合Oracle ROWID存储规则?
服务器·数据库·oracle·面试·刘艳兵
simpleGq1 小时前
Redis知识点整理 - 脑图
数据库·redis·缓存
NiNg_1_2342 小时前
关系型数据库和非关系型数据库详解
数据库·oracle·nosql
paopaokaka_luck2 小时前
基于Spring Boot+Vue的多媒体素材管理系统的设计与实现
java·数据库·vue.js·spring boot·后端·算法
python资深爱好者2 小时前
NoSQL数据库与关系型数据库的主要区别
数据库·oracle·nosql