数据库的备份和恢复

news2024/11/29 2:44:35

备份

完全备份:整个数据库完整的进行备份

增量备份:在完全备份的基础上,对后续新增的变量进行备份

备份的需求:

1、在生产环境中,数据的安全至关重要。任何数据的丢失都可能产生非常严重的后果

2、数据为什么会丢失?【1.程序操作 2.运算错误 3.磁盘故障 4.不可预期的事件(地震、海啸等) 5.人为操作】

备份的方法

1、冷备份

关机备份,停止mysql服务,然后进行备份

2、热备份

开机备份,无需关闭mysql服务,进行备份

3、物理备份

对数据库系统的物理文件(数据文件、日志文件等)进行备份

4、逻辑备份

对数据库的逻辑组件进行备份(表结构等),以SQL语句的形式把库、表结构、表数据进行备份保存

(直接在数据库系统中rm -rf*删除全部文件,逻辑备份无法恢复)

物理冷备份

一般采用完整备份,对整个数据库进行完整的打包备份

优点:操作简单

缺点:数据库文件占用量很大,占用空间很大,备份和恢复的时间都很长。而且需要暂停数据库服务

打包备份最好关闭服务器,避免有新的数据进入,被覆盖。也可能导致恢复失败

面试:如何把本地的数据库迁移上云?

答:阿里云tds支持热迁移

逻辑热备份

mysqldump是MySQL自带的工具

如何备份库(只能在命令行执行):

备份单个库 musqldump -u root -p123456 --databases fmh > /opt/fmh.sql

备份多个库  mysqldump -u root -p123456 --databases fmh fmh1 > /opt/fmh1.sql

备份所有库  mysqldump -u root -p123456 --all-databases > /opt/fmh3.sql

mysal -u root -p123456 -e 'show databases;

-e: 指定连接mysgl之后执行完命令,自动退出

mysql1的全部数据库的逻辑备份文件,导入到mysql2,那么有重名库是否会覆盖,不重名的库是否还在。

屋里冷备份和物理热备份

特点:操作简单

数据量大,占用的备份空间比较大

mysqldump是MySQL自带的备份文件命令

特点:方便、简单。但是只能基于逻辑上的表结构和表数据恢复。物理删除之后再用逻辑恢复会报错

也可以作为数据迁移。占用大空间。比较物理备份相对来说占的空间要小的多

全量,库,表

增量备份

在完全备份的基础上,对后续新增的变量进行备份

mysqldump也支持增量备份

特点:

1、没有重复数据,备份量小,时间短

2、mysqldump增量备份恢复表数据期间,表会锁定

1、备份时锁表,必然会影响业务。超过10G,耗时会比较长,导致服务不可用

增量备份的过程

1、mysql提供的二进制日志间接的实现增量备份

二进制文件怎么来?

修改配置文件

vim /etc/my.cnf

log-bin=mysql-bin

binlog_format=MIXED

wq!

mysql二进制日志记录格式

1、STATEMENT 基于SQL语句

记录修改的sql语句,高并发情况下,记录sql语句时候的顺序可能会出错,恢复数据时可能会导致丢失和误差。效率比较高

2、ROW  基于行

精准记录每一行的数据,准确率高,但是恢复的时效率低

3、MIXED  既可以根据SQL语句,又可以根据行

在正常情况下使用的是STATEMENT,一旦发生高并发,会智能自动切换到ROW行

mysquadmin -u root -p flush-logs  刷新MySQL

mysqlbinlog --no-defaults--base64-output=decode- rows -v mysql-bin.000002  查看备份的

位置恢复

基于位置点进行恢复

从某一个点开始,恢复到最后

mysqlbinlog --no-defaults --start-position=位置点 文件名 | mysql -u root -p

从开头恢复到某个位置

mysqlbinlog --no-defaults --stop-position=位置点 文件名 | mysql -u root -p

从指定点开始,恢复到某个结束点

mysqlbinlog --no-defaults --start-position=位置点 --start-position=位置点 文件名 | mysql -u root -p

查看位置点

时间恢复

基于时间点进行恢复

1、从某个时间点开始

mysqlbinlog --no-dafaults --start-datetime=时间点 文件 | mysql -u root -p

2、从开头到指定的结尾时间点

mysqlbinlog --no-dafaults --stop-datetime=时间点 文件 | mysql -u root -p

3、指定时间范围

mysqlbinlog --no-dafaults --start-datetime=时间点 --stop-datetime=时间点 文件 | mysql -u root -p

时间点

mysqlbinlog --no-defaults -start-datetime='2023-11-06 11:44:32' mysql-bin.000004 | mysql -u root -p

总结:

在生产中,通过binlog进行增量恢复是非常好用的方法

我们只需要对binlog文件进行备份,随时可以进行备份和恢复

错误日志单独记录

log-error=/usr/local/mysql/data/mysql_error.log  

设置日志单独存放

general_log=ON

general_log_file=/usr/local/mysql/data/mysql_general.log

慢查询日志  (记录查询时间超过5秒的)

general_query_log=ON

general_query_log_file=/usr/local/mysql/data/mysql_slow_query.log

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

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

相关文章

电力设备行业密钥管理系统的功能及特点 安当加密

电力设备行业密钥管理系统的主要功能包括: 密钥生成:密钥管理系统能够采用多因素身份验证技术,如指纹识别和动态口令等,确保生成的密钥对用户来说易于使用,同时又足够安全。密钥存储:应采用多层安全机制&a…

管道的介绍

管道 它是一个连接读写进程的文件,用户进程间数据交互和进程同步造作。管道是单向的,发送进程视管道为输出文件,将大量数据以字节流的形式送入管道;接收进程视管道为输入文件,接收管道的数据。 管道优缺点 1、管道…

【C++初阶】一、入门知识讲解(C++关键字、命名空间、C++输入输出、缺省参数、函数重载)

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【数据结构初阶】十一、归并排序(比较排序)的讲解和实现 (递归版本 非递归版本 -- C语言实现)-CSDN博客 引入:什么是C C语言是结构化和模块化的…

HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居

HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居 文章目录 HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居基本条件一、下载HACS源码二、添加HACS集成三、绑定米家设备 ​ 上文介绍了如何实现群晖Docker部署HomeAssist…

pytorch实现 --- 手写数字识别

本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在Pytorch&#xff…

天津热力管网监测系统丨高效、稳定的供热解决方案

热力管网监测系统是一种用于监测和控制系统热力管道的智能技术。热力管网监测系统通过将传感仪器建设在热力管道上,实现对管道内温度、压力、流量等参数的实时监测,同时将数据传输到控制中心进行数据分析,以保障热力管道的安全稳定运行。 中央…

不学51直接学stm32可以吗?学stm32需要哪些基础?

不学51直接学stm32可以吗?学stm32需要哪些基础? 不管那些大佬技术多么牛逼,大多数入门都是从51单片机开始。 最近有一些入门的小伙伴问我说看到同学都从直接从STM32开始干了。最近很多小伙伴找我,说想要一些stm32的资料&#xff…

C++ reference

cppreference.com 《现代C语言核心特性解析》 这是一本 C 进阶图书,全书分为 42 章,深入探讨了从 C11 到 C20 引入的核心特性。 本书不仅通过大量的实例代码讲解特性的概念和语法,还从编译器的角度分析特性的实现原理,让读者…

王道p18 第11题 现在有两个等长升序序列 A和 B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列 A和B的中位数。

视频讲解&#x1f447;&#xff1a; p18 第10题 c语言代码实现王道数据结构课后代码题_哔哩哔哩_bilibili 本题代码如下 int search(int a[], int b[], int c[]) {int i 0;int j 0;int k 0;while (i < 5 && j < 5){if (a[i] < b[j])c[k] a[i];elsec[k…

NOIP2005提高组第二轮T3:传纸条

题目链接 NOIP2005提高组第二轮T3&#xff1a;传纸条 题目描述 小渊和小轩是好朋友也是同班同学&#xff0c;他们在一起总有谈不完的话题。一次素质拓展活动中&#xff0c;班上同学安排坐成一个 m m m 行 n n n 列的矩阵&#xff0c;而小渊和小轩被安排在矩阵对角线的两端…

GraphCodeBert:基于数据流的代码表征预训练模型

GraphCodeBert https://arxiv.org/abs/2009.08366 1 模型结构 使用多层双向 Transformer 变量定义 &#xff1a; C&#xff1a;源码集合W&#xff1a;文本集合V&#xff1a;变量集合E&#xff1a;变量间的边的集合 输入&#xff1a;把注释&#xff0c;源代码和变量集连接为…

【MySQL基本功系列】第一篇 先熟悉MySQL的运行逻辑

​ 我将推出一系列关于MySQL的博客文章&#xff0c;涵盖了从入门到深入底层的原理。这些文章将包括MySQL的运行逻辑、InnoDB存储引擎、SQL优化、undo log、bin log等多个方面的知识。希望这些文章能为你提供宝贵的信息和洞见&#xff0c;并帮助你更好地理解和应用MySQL。同时&a…

国产系列 | Atlas 300I Pro 推理卡性能、应用场景、技术规格介绍

Atlas 300I Pro 推理卡是基于昇腾AI处理器的新一代高性能推理卡&#xff0c;融合“通用处理器、AI Core、编解码”于一体&#xff0c;提供超强AI推理、目标检索等功能&#xff0c;具有超强算力、超高能效、高性能特征检索、安全启动等优势&#xff0c;可广泛应用于OCR识别、语音…

UMS攸信技术与欣奕华复合机器人携手共进,领跑智能制造未来!

近年来&#xff0c;全球机器人领域的相关创新机构与科技企业不断探索人工智能、人机协作、多技术融合等领域&#xff0c;推动机器人在仓储运输、智能工厂、医疗康复等领域的深入应用。 2023年10月19日&#xff0c;攸信技术与浙江欣奕华达成战略合作&#xff0c;成为其产品特约经…

Mysql Cluster (NDB - Network Database) - 分布式

Mysql高可用架构 复制&#xff08;Replication&#xff09; 是本文中所有 MySQL 技术的基础。包括&#xff1a;异步复制、半同步复制&#xff0c;增强半同步复制。InnoDB 副本集&#xff08;MySQL InnoDB ReplicaSet&#xff09; 无缝衔接其他 MySQL 官方提供的应用程序&#…

Java智慧工地管理平台可视化大数据建造工地APP源码

建筑行业是国民经济的重要物质生产部门和支柱产业之一&#xff0c;同时&#xff0c;建筑业也是一个安全事故多发的高危行业。如何加强施工现场安全管理、降低事故发生频率、杜绝各种违规操作和不文明施工、提高建筑工程质量&#xff0c;是摆在各级政府部门、施工企业面前的一道…

多机位直播案例

目录 1、案例简述 2、设备准备&#xff1a; &#xff08;1&#xff09;笔记本电脑 &#xff08;2&#xff09;手机 &#xff08;3&#xff09;触控一体机 &#xff08;4&#xff09;教室前端监控摄像机 &#xff08;5&#xff09;教室后端监控摄像机 &#xff08;6&…

R语言piecewiseSEM结构方程模型在生态环境领域实践技术应用

结构方程模型&#xff08;Sructural Equation Modeling&#xff0c;SEM&#xff09;可分析系统内变量间的相互关系&#xff0c;并通过图形化方式清晰展示系统中多变量因果关系网&#xff0c;具有强大的数据分析功能和广泛的适用性&#xff0c;是近年来生态、进化、环境、地学、…

java拉取股票数据进行分析

1.背景 2.数据获取分析 3.代码获取数据 代码: package com.life.gupiao;import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpUtil; import cn.hutool.poi.excel.ExcelUtil; import…

Scala中使用Selenium进行网页内容摘录的详解

前言 公众号成为获取信息的重要途径之一。而对于公众号运营者来说&#xff0c;了解公众号的数据情况非常重要。比如&#xff0c;你可能想要获取公众号的文章内容&#xff0c;进行数据分析或者生成摘要。或者你可能想要监控竞争对手的公众号&#xff0c;了解他们的最新动态动态…