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

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.hqwc.cn/news/73759.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity 之Transform组件(汇总)

文章目录 理论指导结合例子 理论指导 当在Unity中处理3D场景中的游戏对象时,Transform 组件是至关重要的组件之一。它管理了游戏对象的位置、旋转和缩放,并提供了许多方法来操纵和操作这些属性。以下是关于Transform 组件的详细介绍: 位置&a…

Flink之Task解析

Flink之Task解析 对Flink的Task进行解析前,我们首先要清楚几个角色TaskManager、Slot、Task、Subtask、TaskChain分别是什么 角色注释TaskManager在Flink中TaskManager就是一个管理task的进程,每个节点只有一个TaskManagerSlotSlot就是TaskManager中的槽位,一个TaskManager中可…

蓝光眼镜有效吗?科研团队:无法证明防蓝光镜片可以减少视力伤害

8 月 19 日消息,本次由墨尔本大学、莫纳什大学和伦敦城市大学联合进行的科研团队,对来自 6个国家和地区的 17 项已发表的研究进行了深入研究。他们的研究发现,无法证明防蓝光镜片能够减少眼睛的视力伤害或改善佩戴者的睡眠质量等功效。 这项研…

springboot+Vue--打基础升级--(二)写个主菜单导航界面

1. 华为OD机考题 答案 2023华为OD统一考试(AB卷)题库清单-带答案(持续更新) 2023年华为OD真题机考题库大全-带答案(持续更新) 2. 面试题 一手真实java面试题:2023年各大公司java面试真题汇总--…

【李沐】3.2线性回归从0开始实现

%matplotlib inline import random import torch from d2l import torch as d2l1、生成数据集: 看最后的效果,用正态分布弄了一些噪音 上面这个具体实现可以看书,又想了想还是上代码把: 按照上面生成噪声,其中最后那…

YOLOv8改进后效果

数据集 自建铁路障碍数据集-包含路障,人等少数标签。其中百分之八十作为训练集,百分之二十作为测试集 第一次部署 版本:YOLOv5 训练50epoch后精度可达0.94 mAP可达0.95.此时未包含任何改进操作 第二次部署 版本:YOLOv8改进版本 首…

Spring Boot 知识集锦之Spring-Batch批处理组件详解

文章目录 0.前言1.参考文档2.基础介绍2.1. 核心组件 3.步骤3.1. 引入依赖3.2. 配置文件3.3. 核心源码 4.示例项目5.总结 0.前言 背景: 一直零散的使用着Spring Boot 的各种组件和特性,从未系统性的学习和总结,本次借着这个机会搞一波。共同学…

从零实战SLAM-第四课(相机成像及常用视觉传感器)

在七月算法报的班,老师讲的蛮好。好记性不如烂笔头,关键内容还是记录一下吧,课程入口,感兴趣的同学可以学习一下。 --------------------------------------------------------------------------------------------------------…

如何学习专业的学术用语01

问题的提出——凭啥人家写的词汇这么专业 做法一 做法二:做一个专业数据库 专门做教育技术类的

Java进阶篇--迭代器模式

目录 同步迭代器(Synchronous Iterator): Iterator 接口 常用方法: 注意: 扩展小知识: 异步迭代器(Asynchronous Iterator): 常用的方法 注意: 总结&#xff1a…

【制作npm包4】api-extractor 学习

制作npm包目录 本文是系列文章, 作者一个橙子pro,本系列文章大纲如下。转载或者商业修改必须注明文章出处 一、申请npm账号、个人包和组织包区别 二、了解 package.json 相关配置 三、 了解 tsconfig.json 相关配置 四、 api-extractor 学习 五、npm包…

【云计算原理及实战】初识云计算

该学习笔记取自《云计算原理及实战》一书,关于具体描述可以查阅原本书籍。 云计算被视为“革命性的计算模型”,因为它通过互联网自由流通使超级计算能力成为可能。 2006年8月,在圣何塞举办的SES(捜索引擎战略)大会上&a…

万宾燃气管网监测解决方案,守护城市生命线安全

方案背景 城市燃气管网作为连接天然气长输管线与天然气用户的桥梁,担负着向企业和居民用户直接供气的重要职责。随着城市燃气需求的急剧增加,城市燃气管网规模日趋庞大,安全隐患和风险也随之增加。目前,我国燃气管网的运行仍存在…

OLED透明屏采购指南:如何选择高质量产品?

着科技的不断进步,OLED透明屏作为一种创新的显示技术,在各个行业中得到了广泛应用。 在进行OLED透明屏采购时,选择高质量的产品至关重要。在这篇文章中,尼伽将为您提供一个全面的OLED透明屏采购指南,帮助您了解关键步…

Beats:使用 Filebeat 将 golang 应用程序记录到 Elasticsearch - 8.x

毫无疑问,日志记录是任何应用程序最重要的方面之一。 当事情出错时(而且确实会出错),我们需要知道发生了什么。 为了实现这一目标,我们可以设置 Filebeat 从我们的 golang 应用程序收集日志,然后将它们发送…

【CSS动画02--卡片旋转3D】

CSS动画02--卡片旋转3D 介绍代码HTMLCSS css动画02--旋转卡片3D 介绍 当鼠标移动到中间的卡片上会有随着中间的Y轴进行360的旋转&#xff0c;以下是几张图片的介绍&#xff0c;上面是鄙人自己录得一个供大家参考的小视频&#x1f92d; 代码 HTML <!DOCTYPE html>…

Android Stodio编译JNI项目,Cmake出错:Detecting C compiler ABI info - failed

在使用Android Stodio编译JNI项目时出现Cmake错误&#xff0c;报错如下&#xff1a; Execution failed for task :app:configureCMakeDebug[arm64-v8a]. > [CXX1429] error when building with cmake using C:\Users\Dell\AndroidStudioProjects\MyApplication2\app\src\ma…

ssm医院门诊挂号系统源码和论文PPT

ssm医院门诊挂号系统源码和论文PPT008 开题报告 任务书 源码 数据库sql 论文 开发环境&#xff1a; 开发工具&#xff1a;idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具&#xff1a;navcat,小海豚等 开发技术&#xff1a;java ssm tomcat8.5 1.选题的背景和意义 …

UVC摄像头

1 版本历史 1.1 UVC uvc_version UVC 1.0: Sep-4-2003 UVC 1.1: Jun-1-2005 UVC 1.5: August-9-2012, H.264 video codec. Linux 4.5 introduces UVC 1.5, but does not support H264. 1.2 V4L版本历史 Video4Linux取名的灵感来自1992 Video for Windows&#xff08;V4W&#x…

k8s 自身原理之 Service

好不容易&#xff0c;终于来到 k8s 自身的原理之 关于 Service 的一部分了 前面我们用 2 个简图展示了 pod 之间和 pod 与 node 之间是如何通信息的&#xff0c;且通信的数据包是不会经过 NAT 网络地址转换的 那么 Service 又是如何实现呢&#xff1f; Service 我们知道是用…