mysql分表备份_MySQL分库备份与分表备份

1、分库备份

要求:将mysql数据库中的用户数据库备份,备份的数据库文件以时间命名

脚本内容如下:

[root@db01 scripts]# vim backup_database.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

????mysqldump -u$mysql_user -p$mysql_pass -B $n 2>/dev/null>/backup/${n}_`date +%Y_%m_%d`.sql

done

?

执行脚本进行测试:

[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 oldboy

+ 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 oldgirl

+ 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]#

?

检查备份情况:

[root@db01 scripts]# tree /backup/

/backup/

├──oldboy_2018_07_04.sql

├──oldgirl_2018_07_04.sql

└──test_2018_07_04.sql

?

0 directories, 3 files

[root@db01 scripts]#

?

2、分库分表备份

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

脚本内容如下:

[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

?

执行脚本进行测试:

[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/oldboy

++ sed 1d

++ mysql -uroot -p123456 oldboy -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 oldboy students

+ for m in ‘`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed ‘\‘‘1d‘\‘‘`‘

+ mysqldump -uroot -p123456 oldboy test

+ for m in ‘`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed ‘\‘‘1d‘\‘‘`‘

+ mysqldump -uroot -p123456 oldboy 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/oldgirl

++ mysql -uroot -p123456 oldgirl -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 oldgirl 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]#

?

检查备份情况:

[root@db01 scripts]# tree /backup/

/backup/

├──oldboy

│?? ├── students_2018_07_04.sql

│?? ├── test_2018_07_04.sql

│?? └── test2_2018_07_04.sql

├──oldgirl

│?? └── test3_2018_07_04.sql

└──test

└── test4_2018_07_04.sql

?

3 directories, 5 files

[root@db01 scripts]#

MySQL分库备份与分表备份

标签:tab   目录   test   show   要求   情况   font   ext   dir

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/ssgeek/p/10529524.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分库分表备份是一种将数据库中的数据按照一定规则分散存储在多个库和表中的备份方式。它可以通过将数据分散存储在多个库和表中,从而提高备份和恢复的效率。具体来说,分库分表备份可以降低数据迁移的时间的原因有以下几点: 1. 并行备份分库分表备份可以将数据分散存储在多个库和表中,这样在备份时可以同时备份多个库和表,实现并行备份。相比于单库备份分库分表备份可以同时备份更多的数据,从而提高备份的效率。 2. 减少备份数据量:分库分表备份可以将数据分散存储在多个库和表中,这样在备份时只需要备份需要备份的库和表,而不需要备份整个数据库。这样可以减少备份的数据量,从而降低备份的时间。 3. 灵活恢复:分库分表备份可以将数据分散存储在多个库和表中,这样在恢复时可以只恢复需要恢复的库和表,而不需要恢复整个数据库。这样可以灵活地进行数据恢复,提高恢复的效率。 总之,分库分表备份通过将数据分散存储在多个库和表中,实现并行备份、减少备份数据量和灵活恢复,从而降低数据迁移的时间。\[1\] #### 引用[.reference_title] - *1* *3* [MySQL分表备份方案(后附一键迁移脚本,经验证安全可用!!)](https://blog.csdn.net/ArrogantB/article/details/125988416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MySQL分库分表备份的思路和方法](https://blog.csdn.net/weixin_34293141/article/details/91499745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值