开源数据库Mysql_DBA运维实战 (备份与还原)

news2025/1/19 11:21:48

Mysql数据库的备份与还原🍃

备份对于数据库而言是至关重要的。当数据文件发生损坏、MySQL服务出现错误、系统内核崩溃、计算机硬件损坏或者数据被误删等事件时,使用一种有效的数据备份方案,就可以快速解决以上所有的问题。MySQL提供了多种备份方案,包括:逻辑备份、物理备份、全备份以及增量备份,你可以选择最适合自己使用的方式备份数据。

物理备份通过直接复制包含有数据库内容的目录与文件实现,这种备份方式适用于对重要的大规模数据进行备份,并且要求实现快速还原的生产环境。典型的物理备份就是复制 MySQL数据库的部分或全部目录,物理备份还可以备份相关的配置文件。但采用物理备份需要MySQL处于关闭状态或者对数据库进行锁操作,防止在备份的过程中改变发送数据。物理备份可以使用mysqlbackup对InnoDB数据进行备份,使用mysqlhotcopy对MyISAM数据进行备份。另外,也可以使用文件系统级别的cp、scp、tar、rsync等命令。

逻辑备份通过保存代表数据库结构及数据内容的描述信息实现,如,保存创建数据结构以及添加数据内容的SQL语句,这种备份方式适用于少量数据的备份与还原。逻辑备份需要查询MySQL服务器获得数据结构及内容信息,因为需要查询数据库信息并将这些信息转换为逻辑格式,所以相对于物理备份而言比较慢。逻辑备份不会备份日志、配置文件等不属于数据库内容的资料。逻辑备份的优势在于不管是服务层面、数据库层面还是数据表层面的备份都可以实现,由于是以逻辑格式存储的,所以这种备份与系统、硬件无关。

全备份将备份某一时刻所有的数据,增量备份仅备份某一段时间内发生过改变的数据。通过物理或逻辑备份工具就可以完成完全备份,而增量备份需要开启MySQL二进制日志,通过日志记录数据的改变,从而实现增量差异备份。

mysqldump参数大全:https://blog.51cto.com/SongR/7092848

percona-xtrabackup官方站点:https://www.percona.com/

备份🍃

关于备份的原因⭐

防止丢失和误删

备份的目标⭐

1.数据的一致性

2.服务的可用性

备份技术⭐

物理备份/冷备份

直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但是不能恢复到不同的MySQL版本。

tar    cp     scp

拷贝数据的    优点    快  

                      缺点    服务停止 后才可拷贝

逻辑备份/热备份

备份的是建表,建库,插入等操作所执行SQL语句(DDL  DML DCL), 适用于中小型数据库。

mysqldump   mydumper

效率相对比较低

备份种类⭐

完全备份

土财主专用(金融)

增量备份

 连续回复

特点:

因每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,所 以备份体积小,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进行恢复,恢复时间长。

差异备份

跳跃恢复

特点:

占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完整版本和最后 一次的差异版本(包含所有的差异),恢复速度介于完整备份和增量备份之间。

还原🍃

percona-xtrabackup🍃

Percona XtraBackup是一个开源的MySQL数据库热备工具,允许你在备份的时候不锁表。支持备份的存储引擎有InnoDB, XtraDB, MyISAM ;支持的MySQL版本 5.1 5.5, 5.6 , 5.7;无论是7X24的高负载数据库环境,还是低TPS的数据库环境,Percona XtraBackup都能完成备份而不影响生产环境

Percona XtraBackup是世界上唯一开源免费的MySQL热备工具,可以对InnoDB 和 XtraDB存储引擎的表进行非堵塞备份。

为mysql做增量备份;在mysql服务器之间做在线表迁移;使创建replication更加容易;备份mysql而不增加服务器的负载。


percona是一家老牌的mysql技术咨询公司。它不仅提供mysql的技术支持、培训、咨询,还发布了mysql的分支版本--percona Server。并围绕percona Server还发布了一系列的mysql工具。

特点

1 快速可靠完成备份

2 备份期间不会打断正在进行的事务

3 由于有压缩备份选项可以节省磁盘空间和网络带宽

4 自动的备份校验

5 更快的恢复速度,更短的恢复时间

备份过程

1.首先拷贝Innodb表的数据文件(利用两个进程 一个拷贝文件一个拷贝变化)

2.如果支持 backup lock,利用LOCK TABLE FOR BACKUP拷贝非Innodb表的数据文件(percona MySQL 5.6+ 支持oracle的MySQL支持吗?)

3.使用 LOCK BINLOG FOR  BACKUP 禁止所有改变Exec_Master_Log_Pos 或 Exec_Gtid_Set的操作。完成redo log的备份和获取binlog的日志中的坐标输出到备份目录。然后释放锁

 实例

1-1 完全备份流程

#连接数据库,开始备份。

innobackupex --user=root --password='QianFeng@123' /xtrabackup/full

#查看备份目录。数据库,配置文件,日志文件

ls /xtrabackup/full/

ls /xtrabackup/full/2017-08-01_00-00-02/

#观看二进制日志位置

cat /xtrabackup/full/2017-08-01_00-00-18/xtrabackup_binlog_info 

1-2 完全恢复流程

#停止数据库

systemctl stop mysqld

#清理环境(模拟损坏)

rm -rf /var/lib/mysql/*

rm -rf /var/log/mysqld.log 

#生成回滚日志(指定备份点)

innobackupex --apply-log /xtrabackup/full/2017-08-01_00-00-18/

#恢复文件

innobackupex --copy-back /xtrabackup/full/2017-08-01_00-00-18/

#登陆验证

ls /var/lib/mysql
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld
mysql -uroot -p'QianFeng@123'

2-1 增量备份流程

#使用指定数据库

create database testdb;
use testdb;
create table test(id int);
insert into test values (1);
select * from test;

  mysql> select * from test;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

#完整备份(周一)

rm -rf /xtrabackup/*   ;

date 09010000
innobackupex --user=root --password='QianFeng@123' /xtrabackup
ll /xtrabackup/

#增量备份(周二)

date 09020000   更新时间
mysql -uroot -p'QianFeng@123' -e  'insert into testdb.test values (2)'

innobackupex --user=root --password='QianFeng@123' 
--incremental /xtrabackup/ 
--incremental-basedir=/xtrabackup/2017-09-01_00-00-04
basedir基于周一的备份。会生成一个今天的。
ls  /xtrabackup/
	


 

2-2 增量恢复流程

#停止数据库
systemctl stop mysqld
#清理环境
rm -rf /var/lib/mysql/*
#周一
innobackupex --apply-log --redo-only /xtrabackup/2017-09-01_00-00-04 回滚合并
#周二
innobackupex --apply-log --redo-only /xtrabackup/2017-09-01_00-00-04 
--incremental-dir=/xtrabackup/2017-09-02_00-00-26
#恢复
innobackupex --copy-back /xtrabackup/2017-09-01_00-00-06  
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld


登陆查询记录。请思考记录是第几天的,想回复3,怎么办
 

systemctl stop mysqld
innobackupex --apply-log --redo-only /xtrabackup/2017-09-01_00-00-04  
--incremental-dir=/xtrabackup/2017-09-03_00-00-27
# rm -rf /var/lib/mysql/*
innobackupex --copy-back /xtrabackup/2017-09-01_00-00-04 
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld
mysql -uroot -p'QianFeng@123' -e 'select * from testdb.test'

mysqldump + binlog🍃

 

 

 

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

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

相关文章

Android平台内网RTSP网关和轻量级RTSP服务的区别和联系

技术背景 我们在对接轻量级RTSP服务的时候,遇到客户这样的使用场景:客户是用于车载自组网环境,确保多辆车之间可以相互看到对方的实时视频,以期可以了解到前方路况等关注的信息。 除了安卓自带摄像头的数据,还有车载…

Nacos权限认证

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!如果我的博客对你有帮助,欢迎进行评论✏️✏️、点赞👍👍、收藏⭐️⭐️&#…

ssm家政服务网站源码和论文

ssm家政服务网站源码和论文024 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必…

MYSQL 作业三

创建一个student表格: create table student( id int(10) not null unique primary key, name varchar(20) not null, sex varchar(4), birth year, department varchar(20), address varchar(50) ); 创建一个score表格 create table score( id int(10) n…

视频监控有哪些存储方式?安防监控应该如何选择存储模式?

视频监控系统涉及到大量的视频数据,需要对这些数据进行存储,以备日后查看或备份。视频监控的存储需求需要根据场所的实际情况进行选择,以保证监控数据的有效存储和日后的调阅、回溯。 当前视频监控的存储方式,通常有以下几种&…

手持两把锟斤拷,口中疾呼烫烫烫

大家好,我是可乐。 你是否有过在网页上看到一堆乱码,完全不知所云的经历?或者你试图打开一个文档,结果看到的都是奇怪的字符?这背后的元凶,很可能是字符编码。 这听起来像是一个高深的计算机名词&#xff…

介绍一些编程语言— Visual Basic 语言

介绍一些编程语言— Visual Basic 语言 Visual Basic 语言 简介 Visual Basic(简称 VB)是美国 Microsoft 公司于 1991 1991 1991 年研制的一种基于图形用户接口的 Windows 环境下的开发工具,是一种面向对象、可视化的新型开发工具&#x…

STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复)

STM32 CubeMX Freertos STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复) STM32 CubeMX Freertos前言一、STM32 CubeMX 配置时钟树配置使能串口,用于用于检查实验现象使用STM32 CubeMX 库,配置Freertos创建任务 二…

antd中Switch组件的使用

<Switch> 是 Ant Design 中的一个组件&#xff0c;用于在开关之间切换。checkedChildren 是 <Switch> 组件的一个属性&#xff0c;用于指定在开关打开时显示的文本或 React 元素。 以下是 <Switch> 组件的基本语法&#xff1a; import { Switch } from ant…

【Vue-Router】路由过渡动效

在 Vue Router 中&#xff0c;你可以通过过渡动效&#xff08;Transition Effects&#xff09;为路由切换添加平滑的过渡效果&#xff0c;从而提升用户体验。过渡动效可以使用 Vue 的 <transition> 组件和 CSS 过渡来实现。 基本使用&#xff1a; 对导航使用动画&#…

【愚公系列】华为云系列之基于ModelBox搭建的AI寻车系统

文章目录 前言一、ModelBox简介1.ModelBox是什么2.AI开发遇到的问题和解决方案一2.1 相关问题2.2 解决方案 3.AI开发遇到的问题和解决方案二3.1 相关问题3.2 解决方案 4.ModelBox的功能5.ModelBox的其他特性6.ModelBox的应用场景 二、ModelBox搭建的AI寻车系统1.案例效果2.环境…

『虫无涯赠书01期』|〖测试设计思想〗

『虫无涯赠书01期』&#xff5c;〖测试设计思想〗 &#x1f498; 赠书 - 《测试设计思想》&#x1f9e1; 内容简介&#x1f49b; 作者简介&#x1f496; 本书内容&#x1f497; 读后感想&#x1f49d; 参与方式 &#x1f498; 赠书 - 《测试设计思想》 购书传送门&#xff1a;测…

应用 - 行为分析篇

前言 以商超项目为例&#xff0c;为了更好的给用户提供服务&#xff0c;我们需要了解到用户喜欢什么&#xff0c;我的产品中哪些是用户感兴趣的&#xff0c;哪些是不感兴趣的。我应该在推荐栏目中给用户推荐的内容是哪些。 基于这些业务场景&#xff0c;我们需要一套行为分析…

STL转GLTF【在线工具】

3DConvert 是一个可以进行3D模型格式转换的在线工具&#xff0c;支持多种3D模型格式进行在线预览和互相转换。 1、STL与GLTF格式简介 STL&#xff08;Stereo Lithography&#xff09;文件是一种用于3D打印的文件格式。它是由3D Systems公司开发的一种二进制文件格式&#xff0…

创意转写,文字催生:介绍有用的录音实时转写功能

我有一个朋友叫小敏&#xff0c;是一名记者。她在采访工作中常常遇到一个难题&#xff1a;采访过程中非常容易错过重要信息&#xff0c;到底要用哪款手机录音实时转写软件才能解决这个问题&#xff1f;于是有一天&#xff0c;她听说了一款神奇的录音转文字软件&#xff0c;决定…

84. 柱状图中最大的矩形(单调栈)

题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 解题思路&#xff1a; 方法一&#xff1a;暴力解法 矩形的面积由宽和高决定&#xff0c;可以枚举所有的高度&#xff0c;也就是固定高度&#xff0c;然后从当前高度所在的位置向…

创新方案|超越炒作 – 从产品驱动增长PLG到产品驱动销售PLS的务实策略指南

这篇文章探讨从产品驱动增长到产品驱动销售的策略&#xff0c;超越了产品驱动增长的炒作。尽管产品驱动增长模式被认为是科技公司的灵丹妙药&#xff0c;但要取得成功&#xff0c;通常需要结合更传统的企业模式的要素。研究表明&#xff0c;只有少数采用产品驱动增长模式的公司…

生信豆芽菜-ESTIMATE预测免疫评分

网址&#xff1a;http://www.sxdyc.com/immuneEstimateScore 一、ESTIMATE预测免疫评分介绍 ESTIMATE&#xff08;Estimation of STromal and Immune cells in MAlignant Tumor tissues using Expression data&#xff09;是一种用于预测肿瘤免疫评分的计算方法。它通过分析基因…

LC-相交链表(解法2)

LC-相交链表&#xff08;解法2&#xff09; 链接&#xff1a;https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 描述&#xff1a;给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在…

生态系统NPP及碳源、碳汇模拟教程

详情点击链接&#xff1a;生态系统NPP及碳源、碳汇模拟教程 一&#xff1a;CASA模型 1.1 碳循环模型 1.2 CASA模型原理 1.3 CASA下载与安装 1.4 CASA注意事项 二&#xff1a;CASA初步操作 2.1 ENVI界面 2.2 ENVI 数据及格式 2.3 基于ENVI的CASA模拟 2.4 CASA结果分析 …