基于mysqldump的MySQL数据库异地备份方案(含完整脚本和解释)
MySQL数据库异地备份方案
0 文档描述
- 本文描述了一个数据库异地备份方案,以下脚本代码都是在线上应用的
- 本文以CentOS7为例,其他系统请自行查询安装命令
- 如果评论有需求,我就对应系统做一下文档
1 基本原理
1.1 流程
原理本身很简单:
- 1、利用mysqldump导出指定的数据库
- 2、利用7za命令压缩文件
- 3、通过ssh下载到异地(本地机房)
1.2 说明
- 通常情况下,本地机房是无法访问异地的生产环境的,因此需要服务端一个脚本(用于导出数据库和压缩)、本地(即异地备份的“异地”)机房下载服务端的压缩包并保存。
- 那么如何保证安全呢?建议通过云供应商的安全组限定IP、ssh证书等方式保障服务器访问是可控的
1 安装必要环境
# 安装mysqldump
yum -y install holland-mysqldump.noarch
# 安装压缩软件7z
sudo yum install p7zip
2 导出数据库并打包
- 废话不多说,直接说内容、脚本,解释见注释
- 在服务端(能访问被备份数据库的服务器上)上导出数据库并打包
- 建议将下方脚本保存为bakcup.sh,在下一步中有调用
- 下方dbname改为你的数据库名称,数据库地址、数据库账号、数据库密码改为你的
# 删除上一次导出的数据库
rm dbname.sql
# 删除上一次压缩的文件
rm dbname.7z
# 导出数据库
# 请正确修改下方信息,如:
# mysqldump -h 'localhost' -u root -p'123456' test > test.sql
mysqldump -h '填你的MySQL数据库地址' -u 数据库账号 -p'你的密码' dbname > dbname.sql
# 加密压缩,如果7za命令不存在,建议试试7z命令,如果还不行就得在网上找找了,实在不行就用gzip命令,不加密
7za a -p dbname.7z dbname.sql
3 下载到本地机房(异地)
- 命令如下,主要是利用ssh远程执行上述
- ssh如何免密远程?见第4步(不是本文核心)
echo '正在备份和加密打包'
# 利用ssh远程执行服务器上的backup脚本
ssh root@你的服务器IP "cd /data/mysql;./backup.sh;exit;"
echo '正在下载文件'
scp -P 22 root@你的服务器IP:/data/mysql/dbname.7z ./dbname.7z
echo '正在存储文件'
mv dbname.7z backup/$(date +"%Y%m%d_%H%M%S").7z
cd backup/
ls
echo 'done.'
exit 0
- 这样数据库就实现了云端导出和打包并下载到本地,从而实现了异地备份存储
4 ssh免密登录
- 网上有很多种方法,您可以去搜索下,这里提供一种
ssh-keygen -t rsa
# 下方为显示内容,一直enter就行
# Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]
# Enter passphrase (empty for no passphrase): [Press enter key]
# Enter same passphrase again: [Pess enter key]
# Your identification has been saved in /home/jsmith/.ssh/id_rsa.
# Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
# The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9
ssh-copy-id -i ~/.ssh/id_rsa.pub root@你的服务器IP
# 需要按提示输入密码,输入后enter即可
# 完成之后进行如下验证, 看有没有上到你的云服务器上
ssh root@你的服务器IP
5 其他建议
- 1、为保障服务器安全,建议限制白名单IP执行文件下载命令
- 2、可以使用Jenkins、Cron等方法使用定时任务备份数据库
- 3、7z的压缩效果比较好,基本上能压缩为30%左右,推荐使用
- 4、本文以CentOS7上的应用为例
相关文章:
基于mysqldump的MySQL数据库异地备份方案(含完整脚本和解释)
MySQL数据库异地备份方案 0 文档描述 本文描述了一个数据库异地备份方案,以下脚本代码都是在线上应用的本文以CentOS7为例,其他系统请自行查询安装命令如果评论有需求,我就对应系统做一下文档 1 基本原理 1.1 流程 原理本身很简单&#…...
C语言中10个字符串函数详解
目录 1.strlen 2.strcpy 3.strcat 4.strcmp 5.strncpy 6.strncat 7.strncmp 8.strstr 9.strtok 10.strerror 1.strlen 基本结构:size_t strlen(const char *str);功能:用于计算字符串的长度;字符串已经 0作为结束标志…...
flume系列之:查询多个flume agent组是否有topic重复接入情况
flume系列之:查询多个flume agent组是否有topic重复接入情况 一、查询zk节点下的flume agent组二、获取采集的topic三、获取重复接入的topic,支持设置重复接入白名单四、执行流程五、完整代码一、查询zk节点下的flume agent组 def get_flumeAgent_zkPath(zkRootPaths):for z…...
Windows自动化1️⃣环境搭建WinAppDriver
对于技术选型: 我尝试了, pywinauto, WinAppDriver,CukeTest 担心CukeTest可能会收费, 尝试pywinauto,在元素点击,搜索时, 遇到不可用情况; WinAppDriver是微软家的,大厂开源, 就它了! 步骤一:安装WinAppDriver 进入WinAppDriver下载页面(https://githu…...
云服务器Docker内部署服务后,端口无法访问?
云服务器Docker内部署服务后,端口无法访问,可以按照以下思路进行排查: 以【docker run --name my-nginx -d -p 9395:80 nginx】举例: 查看Docker映射是否正确,可使用docker ps命令查看。Docker是否设置端口映射&#…...
Unity将摄像机视角保存成Json文件方便读取使用
系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、设置环境👉二、代码如下👉三、使用方法 👉四、下次外部调用json里面的摄像机位置的时候如下代码方法👉壁纸分享👉总结 👉…...
git是什么/基本指令
git作用 去中心化, 分布式版本控制器 新增术语:仓库区, 工作区, 暂存区 具体见下板书 常用git命令 git clone 仓库网址 git status 查看仓库状态 git add newfile 临时添加到git仓库 git commit -m 正式添加git仓库 g…...
Linux 中的同步机制
代码基于:Kernel 6.6 临界资源:指哪些在同一时刻只允许被一个线程访问的软件或硬件资源。这种资源的特点是,如果有线程正在使用,其他进程必须等待直到该线程释放资源。 临界区:指在每个线程中访问临界资源的那段代码。…...
Day17 枚举、typedef、位运算、堆空间的学习
目录 枚举 typedef 位运算 堆上的空间 枚举 一个一个列举出来,是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。 作用: 1、为了提高代码的可读性 2、提高代码的安全性 枚举类型 基本语法: enum 枚举名 { …...
Python爬虫与数据分析:中国大学排名的深度挖掘
前言 👉 小编已经为大家准备好了完整的代码和完整的Python学习资料,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】 一、选题背景 高考作为中国学生生涯中最为重要的事,在高考之后,选择一所…...
微软开源库 Detours 详细介绍与使用实例分享
目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C软件异常排查从入门到精通…...
js中的getElementById的使用方法
在JavaScript中,document.getElementById()是一种用于通过元素的id属性获取DOM元素的方法。它的作用是返回与指定id匹配的HTML元素。 使用document.getElementById()可以通过元素的id属性直接获取该元素的引用,然后可以使用该引用对元素进行各种操作。例…...
设计模式 - 桥接模式
💝💝💝首先,欢迎各位来到我的博客!本文深入理解设计模式原理、应用技巧、强调实战操作,提供代码示例和解决方案,适合有一定编程基础并希望提升设计能力的开发者,帮助读者快速掌握并灵活运用设计模式。 💝💝💝如有需要请大家订阅我的专栏【设计模式】哟!我会定…...
LeetCode530 二叉搜索树的最小绝对差
前言 题目: 530. 二叉搜索树的最小绝对差 文档: 代码随想录——二叉搜索树的最小绝对差 编程语言: C 解题状态: 成功解决! 思路 注意题目中的二叉搜索树,这个条件暗示每个节点的左子节点肯定小于该节点&am…...
【STM32 FreeRTOS】信号量与互斥锁
二值信号量 二值信号量的本质是一个队列长度为1的队列,该队列就只有空和满两种情况,这就是二值。 二值信号量通常用于互斥访问或任务同步,与互斥信号量比较类似,但是二值信号量有可能会导致优先级翻转的问题,所以二值…...
SP:eric 靶场复现【附代码】(权限提升)
靶机下载地址: https://www.vulnhub.com/entry/sp-eric,274/https://www.vulnhub.com/entry/sp-eric,274/ 1. 主机发现端口扫描目录扫描敏感信息获取 1.1. 主机发现 nmap -sn 192.168.7.0/24|grep -B 2 08:00:27:75:19:80 1.2. 端口扫描 nmap 192.168.7.104 -p…...
SpringBoot项目启动直接结束--已解决
点击启动类,项目启动了,但是却直接停止了。遇到这个问题如何解决呢? 想要项目一直启动是要部署在tomcat服务器上面了,说明现在项目没有运行在tomcat服务器上面。 解决方案: 添加springweb的starter依赖。 <dependency><…...
【笔记】从零开始做一个精灵龙女-画贴图阶段(下)
补充四点,第一,前期画体积用一号或十三号笔刷,压力60,硬度80,体积大一点 2号笔刷比较适合画过渡和软一点的东东 第二, 游戏里面角色原画海报都是发光很亮很透。但是在bp不能画那么亮,因为你进…...
React 学习——react项目中加入echarts图
实现的代码如下: import * as echarts from echarts import { useEffect, useRef } from react; const Home ()>{const chartRef useRef(null);useEffect(()>{// const chartDom document.getElementById(main);//使用id获取节点const chartDom chartRef…...
链表算法题一
旋转链表 旋转链表 首先考虑特殊情况 若给定链表为空表或者单个节点,则直接返回head,不需要旋转操作.题目给定条件范围: 0 < k < 2 ∗ 1 0 9 0 < k < 2 * 10^9 0<k<2∗109,但是受给定链表长度的限制,比如示例2中,k4与k1的效果等价. 那么可以得出kk%l…...
Unity(2022.3.38LTS) - 基础概念
目录 一. 场景 二. 游戏对象 三. 组件 四. 标签 五. 静态游戏对象 六. 保存 一. 场景 Unity 场景是游戏或应用开发中的一个重要概念。 Unity 场景的组成元素: 它通常包含了各种游戏对象,比如 3D 模型、灯光、摄像机、脚本组件、音频源等等。 作用…...
无人机之飞手必看篇
一、熟悉无人机设备 了解你的无人机:熟悉无人机的各个部分,包括遥控器、电池、螺旋桨和摄像头等。 预飞行检查:在每次飞行前进行预检查,确保所有部件正常工作,螺旋桨牢固,电池充满电。 二、选择适当的飞…...
数据结构(11)——二叉搜索树
欢迎来到博主的专栏:数据结构 博主ID:代码小豪 文章目录 二叉搜索树二叉搜索树的声明与定义二叉搜索树的查找二叉搜索树的插入二叉搜索树的中序遍历二叉搜索树的删除 二叉搜索树 二叉搜索树也称二叉排序树,是具备以下特征的二叉树 (1&#x…...
如何使用和配置 AWS CLI 环境变量?
欢迎来到雲闪世界。环境变量在配置和保护应用程序方面起着至关重要的作用,在使用 AWS CLI(命令行界面)时,它们的使用尤其重要。在这篇博客文章中,我们将深入探讨环境变量的世界,探索它们的用途、它们在 AWS…...
七、流程控制
if语句 在go语言中if语句的写法是比较简单的,也是很常见的 func main() {a : trueif a {fmt.Println("a is true")} }if else 语句 func main() {a : trueif !a {fmt.Println("a is true")} else {fmt.Println("a is false")} }el…...
【通过python启动指定的文件】
通过python启动指定的文件 在 Python 中,可以使用os模块的startfile函数(在 Windows 系统中)或者subprocess模块来启动指定的文件。 以下是使用os模块在 Windows 系统中的示例: import osfile_path "C:\\path\\to\\your\…...
区块链开源的项目有哪些?
区块链领域有许多开源项目,它们覆盖了从基础设施到应用层的不同方面。以下是一些著名的区块链开源项目: 1. Bitcoin (比特币):第一个去中心化的加密货币,源代码在 GitHub 上开源。它实现了区块链技术的基本概念。 2. Ethereum (…...
3152. 特殊数组 II(24.8.14)
题目 如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组 。 你有一个整数数组 nums 和一个二维整数矩阵 queries,对于 queries[i] [fromi, toi],请你帮助你检查 子数组 nums[fromi…toi] 是不是一个 特殊数组…...
Android 全系统版本文件读写最佳适配,CV 即用(适配到 Android 14)
结合着Android的历史问题,我们需要这样写才行: 首先 manifest 部分 <manifest><!-- Devices running Android 12L (API level 32) or lower --><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" a…...
【日记】朋友和他女朋友领证了(368 字)
正文 一定程度上感受到了驻场运维的水深火热,感觉成天到晚都在救火。今天下午就给人修了四五台机器…… 回想了一下,今天貌似还真没干什么。毕竟早上睁眼就是 8:35 了,给人吓得半死。 (感觉 AI 也很智障,当初就是发现音…...
海南省住房和建设厅网站首页/seo行业岗位
羽毛球鞋什么牌子好写回答 共76个回答PINKY5567LV.4 推荐于 2018-02-27YONEX的球鞋产品线最多,推广最好,性能和脚感也是顶尖的,如果买来送人,首选建议是YONEX。(现在最好的鞋是01LTD、F1NLTD、65X、86LTD、SC6i等等&am…...
济宁做网站的公司/种子搜索
前提: 1. 是否带表头 SQL> set heading on SQL> set heading off 2. 控制一行长度 SQL> set line 4000 HEADING和as用法一样,只是更简略。使用HEADING后,查询时列名不变,列标题变。 语法: column 列名1 format 列长 heading 列标题,类似as后面的类容; …...
企业应该找什么样的网站建设公司/自己在家怎么做电商
数据协商的概念 客户端发送请求给服务端,客户端会声明请求希望拿到的数据的格式和限制,服务端会根据请求头信息,来决定返回的数据。 分类 请求 Accept 返回 Content Accept Accept 声明想要数据的类型 Accept-Encoding 数据以哪种编码方式传输…...
wordpress 仿站/企业营销网站制作
背景:在做项目时,经常会遇到这样的表结构在主表的中有一列保存的是用逗号隔开ID。如,当一个员工从属多个部门时、当一个项目从属多个城市时、当一个设备从属多个项目时,很多人都会在员工表中加入一个deptIds VARCHAR(1000)列(本文…...
wordpress构架都是模板/seo全国最好的公司
1、业务场景:在开发业务时,有一个对象数组,对象数组有一个字段是数字,我需要筛选出这个数组对应的数字字段的最大值,于是用到了如下代码: Math.max.apply(Math,mayArr.map((item:{score:number})> retu…...
杭州做兼职网站/百度怎么推广产品
with打开文件的用法,打开运行完后,不管有没有错,都会自动关闭 with open("a.txt","r") as f: xf.read() print(x) with open("a.txt","w") as f: f.write("456") raise的作…...