前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql分库备份与分表备份

mysql分库备份与分表备份

作者头像
仙人技术
发布2020-04-29 09:27:37
2.7K0
发布2020-04-29 09:27:37
举报
文章被收录于专栏:山山仙人的专栏

1、分库备份

要求:将mysql数据库中的用户数据库备份,备份的数据库文件以时间命名 脚本内容如下:

代码语言:javascript
复制
#!/bin/bash
mysql_user=root
mysql_pass=123456
mkdir -p /backup
for n in `mysql -u$mysql_user -p$mysql_pass -e 'show databases;' 2>/dev/null|grep -Ev '_schema|mysql'|sed '1d'`;
do
	mysqldump -u$mysql_user -p$mysql_pass -B $n 2>/dev/null>/backup/${n}_`date +%Y_%m_%d`.sql
done

执行脚本进行测试:

代码语言:javascript
复制
[root@db01 scripts]# sh -x backup_database.sh 
+ mysql_user=root
+ mysql_pass=123456
+ mkdir -p /backup
++ mysql -uroot -p123456 -e 'show databases;'
++ grep -Ev '_schema|mysql'
++ sed 1d
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 -B test1
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 -B test2
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 -B test
[root@db01 scripts]# 

检查备份情况:

代码语言:javascript
复制
[root@db01 scripts]# tree /backup/
/backup/
├── test1_2018_07_04.sql
├── test2_2018_07_04.sql
└── test_2018_07_04.sql

0 directories, 3 files
[root@db01 scripts]# 

2、分库分表备份

要求:备份每个数据库的表,同一个库中的表,放在对应数据库名字命名的目录下 脚本内容如下:

代码语言:javascript
复制
[root@db01 scripts]# vim backup_tables.sh
#!/bin/bash
mysql_user=root
mysql_pass=123456
mkdir -p /backup
for n in `mysql -u$mysql_user -p$mysql_pass -e 'show databases;' 2>/dev/null|grep -Ev '_schema|mysql'|sed '1d'`;
do
	mkdir -p /backup/$n
	for m in `mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '1d'`;
	do
		mysqldump -u$mysql_user -p$mysql_pass $n $m 2>/dev/null>/backup/${n}/${m}_`date +%Y_%m_%d`.sql
	done
done

执行脚本进行测试:

代码语言:javascript
复制
[root@db01 scripts]# sh -x backup_tables.sh 
+ mysql_user=root
+ mysql_pass=123456
+ mkdir -p /backup
++ mysql -uroot -p123456 -e 'show databases;'
++ grep -Ev '_schema|mysql'
++ sed 1d
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mkdir -p /backup/test1
++ sed 1d
++ mysql -uroot -p123456 test1 -e 'show tables;'
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 test1 students
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 test1 test
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 test1 test2
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mkdir -p /backup/test2
++ mysql -uroot -p123456 test2 -e 'show tables;'
++ sed 1d
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 test2 test3
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mkdir -p /backup/test
++ mysql -uroot -p123456 test -e 'show tables;'
++ sed 1d
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 test test4
[root@db01 scripts]# 

检查备份情况:

代码语言:javascript
复制
[root@db01 scripts]# tree /backup/
/backup/
├── test1
│   ├── students_2018_07_04.sql
│   ├── test_2018_07_04.sql
│   └── test2_2018_07_04.sql
├── test2
│   └── test3_2018_07_04.sql
└── test
    └── test4_2018_07_04.sql

3 directories, 5 files
[root@db01 scripts]# 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、分库备份
  • 2、分库分表备份
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档