Shell脚本实现分库分表操作

目录

一,分库备份

二,分库操作

三,分库分表备份

四,备份还原


一,分库备份

python 复制代码
#!/bin/bash
mysql_cmd='-uroot -pzly666666'
bak_path=/backup/db
[ -d ${bak_path} ] || mkdir -p ${bak_path}


mysql ${mysql_cmd} -e 'show databases' -N | egrep -v 'sys|mysql|information_schema|performance_schema' > dbname

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

done < dbname
rm -rf dbname

二,分库操作

python 复制代码
#!/bin/bash
mysql_cmd='-uroot -pzly666666'
bak_path=/backup/db
mysql -uroot -pzly666666 -e 'show tables from homework;' -N > tbname


#mysql ${mysql_cmd} -e 'show databases' | egrep -v 'sys|mysql|information_schema|performance_schema' > dbname

while read line
do
        [ -d ${bak_path}/homework ] || mkdir -p ${bak_path}/homework
        mysqldump ${mysql_cmd} homework $line | gzip > ${bak_path}/homework/homework_${line}_$(date +%F).sql.gz

done < tbname
rm -rf tbname

三,分库分表备份

python 复制代码
#!/bin/bash
mysql_cmd='-uroot -pzly666666'
bak_path=/backup/db
exclude_db='sys|mysql|information_schema|performance_schema'


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

while read db
do
        [ -d ${bak_path}/$db ] || mkdir -p ${bak_path}/$db
        mysqldump ${mysql_cmd} -B $db | gzip > ${bak_path}/${db}/${db}_$(date +%F).sql.gz

        mysql ${mysql_cmd} -e "show tables from ${db};" -N > tbname
        while read tb
        do
        mysqldump ${mysql_cmd} $db $tb | gzip > ${bak_path}/${db}/${db}_${tb}_$(date +%F).sql.gz
done < tbname
done < dbname
rm -rf tbname
rm -rf dbname

四,备份还原

zcat /backup/db/homework/homework_emp_2023-07-30.sql.gz | mysql -uroot -pzly666666 homework

相关推荐
小园子的小菜1 分钟前
MySQL ORDER BY 深度解析:索引排序规则与关键配置参数阈值
数据库·mysql
惊鸿一博38 分钟前
mysql_page pagesize 如何实现游标分页?
数据库·mysql
不学习何以强国2 小时前
Cool Unix + OpenAuth.Net 实现一款校园小程序的开发
mysql·前端框架·asp.net
九皇叔叔7 小时前
Linux Shell 函数:从定义到实战,让脚本更高效
linux·运维·chrome·shell
海奥华212 小时前
SQLEXPLAIN 详解
数据库·mysql
情深不寿31712 小时前
MySQL————数据库基础
数据库·mysql
程序新视界12 小时前
如何选择合适的数据库?PostgreSQL与MySQL各项对比
数据库·mysql·postgresql
dongchen。15 小时前
MySQL第一次作业
数据库·mysql
重生之我是Java开发战士17 小时前
【MySQL】数据库基础
数据库·mysql
ChuHsiang17 小时前
【剑指MySQL】数据库基础(1)
数据库·mysql