当前位置: 首页 > news >正文

Sheel编写关于mysqldump实现分库分表备份

编写脚本,使用mysqldump实现分库分表备份。

#编辑脚本文件
[root@localhost scripts]# vim bak_tb1.sh#脚本内容:
#设置变量,减少代码冗余
mysql_cmd='-uroot -p123'
exclude_db='Database|information_schema|-S|mysql|performance_schema|sys'
bak_path=/backup/db
#将要分出来的数据库名写在dbname文件缓存中
mysql ${mysql_cmd} -e 'show databases' | egrep -v "${exclude_db}" > dbnamewhile read line #获取所需数据库的备份
do[ -d ${bak_path}/$line ] || mkdir -p ${bak_path}/$line #创建文件路径,若有则在该目录下创建目录;反之,创建符合条件的相关目录mysqldump ${mysql_cmd} -B $line | gzip > ${bak_path}/${line}/${line}_$(date +%F).sql.gz #通过循环将需要备份的数据库一个个压缩,传到之前创建的文件目录下mysql -uroot -p123 -N -e "show tables from $line" > tbname #查询数据库中的表while read tb #获取数据库中表的备份domysqldump ${mysql_cmd}  $line $tb | gzip > ${bak_path}/${line}/${line}_${tb}_$(date +%F).sql.gz #将数据库中的表压缩并在相应的数据库路径下done < tbname     #读取tbname文件内容
done < dbname       #读取dbname文件内容
rm -f dbname tbname  删除缓存的数据库,数据表文件
#在对应路径下查看生成的文件:
[root@localhost scripts]# tree /backup/db
/backup/db
├── db
│   ├── db_2023-08-03.sql.gz
│   ├── db_score_2023-08-03.sql.gz
│   └── db_student_2023-08-03.sql.gz
├── db1
│   └── db1_2023-08-03.sql.gz
├── db2
│   └── db2_2023-08-03.sql.gz
├── db3
│   └── db3_2023-08-03.sql.gz
└── db4└── db4_2023-08-03.sql.gz5 directories, 7 files
#检验文件是否能成功还原:
[root@localhost scripts]# mysql -uroot -p123 -e 'select * from db.student'
mysql: [Warning] Using a password on the command line interface can be insecure.
+-----+-----------+------+-------+--------------+--------------------+
| id  | name      | sex  | birth | department   | address            |
+-----+-----------+------+-------+--------------+--------------------+
| 901 | 张老大    ||  1985 | 计算机系     | 北京市海淀区       |
| 902 | 张老二    ||  1986 | 中文系       | 北京市昌平区       |
| 903 | 张三      ||  1990 | 中文系       | 湖南省永州市       |
| 904 | 李四      ||  1990 | 英语系       | 辽宁省阜新市       |
| 905 | 王五      ||  1991 | 英语系       | 福建省厦门市       |
| 906 | 王六      ||  1988 | 计算机系     | 湖南省衡阳市       |
+-----+-----------+------+-------+--------------+--------------------+#删除db数据库中的student表
[root@localhost scripts]# mysql -uroot -p123 -e 'drop table db.student'
mysql: [Warning] Using a password on the command line interface can be insecure.#检查是否成功删除
[root@localhost scripts]# mysql -uroot -p123 -e 'select * from db.student'
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1146 (42S02) at line 1: Table 'db.student' doesn't exist#将/backup/db/db中的 db_student_2023-08-03.sql.gz表压缩包还原到数据库db中[root@localhost scripts]# zcat /backup/db/db/db_student_2023-08-03.sql.gz | mysql -uroot -p123 db
mysql: [Warning] Using a password on the command line interface can be insecure.#再次查看student表的情况:
[root@localhost scripts]# mysql -uroot -p123 -e 'select * from db.student'      mysql: [Warning] Using a password on the command line interface can be insecure.
+-----+-----------+------+-------+--------------+--------------------+
| id  | name      | sex  | birth | department   | address            |
+-----+-----------+------+-------+--------------+--------------------+
| 901 | 张老大    ||  1985 | 计算机系     | 北京市海淀区       |
| 902 | 张老二    ||  1986 | 中文系       | 北京市昌平区       |
| 903 | 张三      ||  1990 | 中文系       | 湖南省永州市       |
| 904 | 李四      ||  1990 | 英语系       | 辽宁省阜新市       |
| 905 | 王五      ||  1991 | 英语系       | 福建省厦门市       |
| 906 | 王六      ||  1988 | 计算机系     | 湖南省衡阳市       |
+-----+-----------+------+-------+--------------+--------------------+
http://www.lryc.cn/news/107319.html

相关文章:

  • Rust的入门篇(上)
  • 数字滚动变化-指令形式
  • LNMP搭建及论坛搭建
  • 小程序商品如何开启秒杀?
  • vue 标题文字字数过长超出部分用...代替 动态显示
  • DAY2,C高级(shell脚本的使用)
  • maven中的properties标签
  • [openCV]基于拟合中线的智能车巡线方案V2
  • 软件测试环境讲解
  • mysql 面试
  • linux 安装FTP
  • 软考高项(六)项目管理概述 ★重点集萃★
  • 【vue】组件使用教训
  • 2023年华数杯数学建模B题思路代码分析 - 不透明制品最优配色方案设计
  • 百度飞桨助力高校培养AI大模型人才,2023年飞桨产学合作项目申报启动
  • 【NLP概念源和流】 02-稠密文档表示(第 2/20 部分)
  • 同构多核架构(SMP)和异构多核架构(AMP)
  • 【网络基础进阶之路】一文弄懂TCP的三次握手与四次断开
  • VUE框架、UNIAPP框架:vue2转vue3全面细节总结(1)vue框架:路由模式、路由跳转;uniapp框架:存储数据写法、引入数据写法;
  • GIS在地质灾害危险性评估与灾后重建中的应用教程
  • leetcode----JavaScript 详情题解(3)
  • PGsql-安装
  • 数据结构----c语言复习
  • 网络安全公司校招面试会面试那些问题?
  • vue element el-upload附件上传、在线预览、下载当前预览文件
  • 设计模式九:组合模式(Composite Pattern)
  • 【COlor传感器】通过扰动调制光传感实现智能光传输的占用分布估计研究(Matlab代码实现)
  • 微服务系列<3>---微服务的调用组件 rpc 远程调用
  • P1558 色板游戏
  • 大数据概论