MySQL数据库分库分表备份(shell脚本)

news2024/11/16 17:34:16

创建目录

mkdir /server/scripts

一、使用脚本实现分库备份

1、创建脚本并编写
[root@localhost scripts]# vim bak_db_v1.sh +


#!/bin/bash
#########################################
# File Name:bak_db_v1.sh
# Version: V1.0
# Author:Shen QL
# Email:17702390000@163.com
# Organization:
# Create Time:2023-07-27 19:21:21
# Description:分库备份
#########################################

#优化
#备份的路径
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
#########################################
# File Name:bak_tb_v1.sh
# Version: V1.0
# Author:Shen QL
# Email:17702390000@163.com
# Organization:
# Create Time:2023-07-27 19:21:21
# Description:分表备份
#########################################

#优化
#备份的路径
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

  结果 

三、使用脚本实现分库分表备份

#!/bin/bash
#########################################
# File Name:bak_tb_v1.sh
# Version: V1.0
# Author:Shen QL
# Email:17702390000@163.com
# Organization:
# Create Time:2023-07-27 19:21:21
# Description:分库分表备份
#########################################

#优化
#备份的路径
bak_path=/backup/db
#账号,密码
mysql_cmd='-uroot -pRedHat@123'
#需要排除的数据库
exclude_db='information_schema|mysql|performance_schema|sys'

#提取需要备份的数据库,并将其写入文件(dbname)中
mysql ${mysql_cmd} -e 'show databases' -N | egrep -v "${exclude_db}" > dbname
while 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

 #提取需要备份的数据表,并将其写入文件(tbname)中
 mysql ${mysql_cmd} -N -e "show tables from $line" > tbname
 
 #循环文件,针对每个表进行备份
 while read tb
 do
  #将数据表放在对应的数据库下面
  mysqldump ${mysql_cmd} $line $tb | gzip > ${bak_path}/$line/${line}_${tb}_$(date +%F).sql.gz

 done < tbname
done < dbname

#删除临时文件
rm -f dbname tbname

  结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/799330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue2基础十、Vuex

零、文章目录 Vue2基础十、Vuex 1、vuex概述 &#xff08;1&#xff09;vuex是什么 vuex 是一个 vue 的 状态管理工具&#xff0c;状态就是数据。大白话&#xff1a;vuex 是一个插件&#xff0c;可以帮我们管理 vue 通用的数据 (多组件共享的数据) 例如&#xff1a;购物车数…

驱动_阻塞io内核实现

相关API 1.定义等待队列头 wait_queue_head_t wq_head; 2.void init_waitqueue_head(struct wait_queue_head *wq_head) 功能&#xff1a;用于初始化一个等待队列 参数&#xff1a; wq_head:等待队列头节点指针 返回值&#xff1a;无3.wait_event(wq_head, condition) 功能&am…

Antd DatePicker 日期选择框设置中文不生效

Antd 版本&#xff1a;4.21.6 moment 版本&#xff1a; 2.29.4 这里是 Antd 官网对于日期选择框国际化配置的说明 我是对 DatePicker 单独进行配置&#xff0c;而没有使用全局配置&#xff0c;但是发现代码未生效。 后来发现问题在于引入的路径有误&#xff0c;如下&#xf…

Python中字符串拼接有哪些方法

目录 什么是字符串拼接 为什么要进行字符串拼接 Python中字符串拼接有哪些方法&#xff1f; 什么是字符串拼接 字符串拼接是将多个字符串连接在一起形成一个新的字符串的操作。在编程中&#xff0c;字符串拼接经常用于将不同的字符串组合在一起&#xff0c;以创建更长或更有…

GO语言日志切割 + 记录调用源

准备工作 日志记录对程序排查问题比较关键&#xff0c;记录下GO中日志选择&#xff0c;从以下出发点考虑&#xff1a; 日志文件能自动切割&#xff0c;以免过大能记录从哪个文件哪行代码调用的&#xff0c;方便排查问题配置简单明了库文件使用人数较多&#xff0c;稳定 经过一段…

一大波涨姿势的小众网站,带你解锁新大陆!

夏日炎炎&#xff0c;给大家分享20个涨姿势的小众网站&#xff0c;打开你的新世界大门&#xff01; 1、电台公园 http://radio.garden/ 可以收听到世界各地的电台&#xff0c;在世界地图上选一个绿点&#xff0c;就可以收听当地的电台了。 2、下载 4K 画质 Bing 壁纸 https…

[OnWork.Tools]系列 03-软件设置

主题设置 点击右上角的设置按钮 可以切换为深色模式 系统设置 点击设置 开机自动运行: 开机自动启动 关闭最小化: 点击右上角关闭按钮时最小化到托盘 快捷键设置: 快速唤醒/隐藏界面 默认为AltO 关于 可以快速打开文件夹,方便调试使用

0-超级计算机

超级计算机 概述主要特点处理能力并行处理大规模存储应用领域能耗云超算 中国超算流行体系结构片内异构节点内异构 概述 当谈到超级计算机时&#xff0c;我们指的是性能超高、处理能力强大的计算机系统。 它们通常由数以千计的处理器核心组成&#xff0c;并具备大规模的内存和…

初识mysql数据库之事务的概念及操作

目录 一、数据库多客户端访问问题 1. 数据库的CURD无限制带来的问题 2. 如何解决CURD导致的问题 二、事务的概念 1. 什么是事务 2. 事务的四个属性 3. mysql对事务的管理 4. 为什么会有事务 5. 事务的版本支持 三、事务的操作 1. 事务提交方式 2. 事务操作的准备工…

力扣简单1道_两数之和

两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。你可以按任意顺序…

【面试题】芯片中的IR drop现象是什么?

这里是尼德兰的喵芯片面试相关文章,欢迎您的访问! 如果文章对您有所帮助,期待您的点赞收藏,也欢迎您对文中存在的问题和疑惑进行评论 此外,gitee仓库尼德兰的喵 (gjm9999) - Gitee.com与微信公众平台也期待您的访问 让我们一起为芯片前端全栈工程师而努力!!!! 今天突然…

matlab Tabel操作

https://zhuanlan.zhihu.com/p/104266351 Table数据类型的引用要三点要注意&#xff1a; 1&#xff09;{}–花括号&#xff08;curly braces&#xff09;&#xff0c;()–小括号&#xff08;parentheses&#xff09;, .–圆点&#xff08;dot&#xff09;对Table类型数据的作用…

架空线接地故障测试仪

一、凯迪正大架空线路接地故障定位仪产品概述 KDJK-10A只能在线路发生故障停运后进行故障定位&#xff0c;由发射机向故障线路施加高压将故障复现&#xff0c;超低频电流由发射机流向故障点&#xff0c;经过渡电阻进入大地并流回发射机&#xff1b;在线路沿线&#xff0c;将传…

Python的包安装工具——pip命令大全

对于大多数使用Python的人来说&#xff0c;一定知道pip这个包安装工具&#xff0c;但是对pip可能还不是很了解&#xff0c;今天作者给大家介绍一下pip的命令&#xff0c;以方便灵活使用pip。 一、pip工具使用方法 pip的语法如下&#xff1a; pip <command> [options] 式中…

elementPlus dialog组件设置可拖动,当内容高度大于视口高度拖动显示异常的解决办法

elementPlus UI的dialog弹框组件在设置了draggable属性后就可拖动弹框&#xff0c;但是当弹框的内容高度大于视口高度时去拖动弹框就会出现显示问题。 解决办法&#xff08;修改源码&#xff09; 去node_modules下面找到element-plus文件夹&#xff0c;按照以下路径修改onMou…

使用 monaco-editor-nls 汉化 右键菜单汉化部分失败原因

首先使用npm或者其他包管理工具安装依赖插件&#xff1a; npm install monaco-editor --save npm install monaco-editor-nls --save npm install monaco-editor-webpack-plugin --save npm install monaco-editor-esm-webpack-plugin --save-dev如果右键菜单汉化一部分失败&a…

宋浩高等数学笔记(八)向量代数与空间解析几何

本章知识点并不难理解&#xff0c;但是公式与名词属于非常多&#xff0c;记忆时需重点对待。

基于pytest的主流POM模式——测试框架的设计与实现

1、POM设计模式 ——页面对象模型&#xff08;Page object Modules&#xff09;&#xff0c;又名&#xff1a;PO/POM&#xff0c;是UI自动化最佳设计模式之一。把一个页面的测试用例&#xff0c;测试逻辑&#xff0c;封装为一个测试方法或者一个测试类&#xff08;说白了&…

语音同声翻译软件让你不再为语言障碍困扰

从前有一个叫黄俊的小伙子&#xff0c;他有一个大梦想&#xff1a;环游世界&#xff01;但是&#xff0c;他只会说中文&#xff0c;而去到外国又怎么跟当地人交流呢&#xff1f;为了实现自己的梦想&#xff0c;黄俊开始了寻找能帮他解决问题的捷径。这时&#xff0c;方娜向他介…

开源快速开发平台:做好数据管理,实现流程化办公!

做好数据管理&#xff0c;可以提升企业的办公协作效率&#xff0c;实现数字化转型。开源快速开发平台是深受企业喜爱的低代码开发平台&#xff0c;拥有多项典型功能&#xff0c;是可以打造自主可控快速开发平台&#xff0c;实现一对一框架定制的软件平台。在快节奏的社会中&…