数据的备份和恢复

数据的备份和恢复

备份:完全备份 增量备份

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

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

备份的需求

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

2、数据为什么会丢失,程序操作,运算错我,磁盘故障,不可预期的时间(地震之类),人为操作

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

热备份:开机备份,无需关闭mysql服务然后进行备份

物理备份和逻辑备份

物理备份:对数据系统的物理文件(数据文件,日志文件)进行备份

逻辑备份:只是对数据库的逻辑组件进行备份(表结构)以sql语句的形式把库、表结构、表数据进行备份保存(直接在数据库系统中,删除全部文件,逻辑备份无法恢复)

物理备份:采用完全备份,对整个数据库进行完整的打包备份

优点:操作简单

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

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

面试题

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

开放式问题,除了上课演示的之外

dis支持热迁移

热备份当中的逻辑备份

这是mysql自带的工具

mysqldump

mysqldump -u root -p123456 --databases kgc > /opt/kgc.sql

mysqldump -u root -p123456 --databases kgc kgc1 > /opt/kgc1.sql

mysqldump -u root -p123456 --all-databases > /opt/kgc3.sql

mysql -u root -p123456 -e 'show database';

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

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

会不会被覆盖掉

物理冷备份和物理热备份

:特点,简单

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

mysqldump:这是mysql自带的备份文件的命令

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

他也可以作为数据迁移,占用大空间。比较物理备份想读来说站的空间要小的多。

全量 库 表

增量备份

mysqldump:支持增量备份

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

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

缺点 :备份时锁表,必然会响应业务。超过10G,必然耗时比较长,导致服务不可用

增量备份的过程

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

二进制文件怎么来

修改配置文件:

mysql二进制日志记录格式有三种

1、STAEMNET:基于sql语句

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

2、ROW:基于行

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

3、MIXED:即可以根据sql语句,也可以根据行

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

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='位置点' stop-position='位置点' 文件名 | mysql -u root -p

基于时间点进行恢复、

1、从某个时间点开始

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

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

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

3、指定时间范围

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

mysqlbinlog --no-defaults --start-datetime='23-11-06 17:48:38' 文件 -stop-datetime='' 文件 | mysql -u root -p

时间点是不能打错的

总结:

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

在工作中,我们能只需要对binlog文件进行备份 随时可以进行备份恢复

数据库迁移上云: 1、整体备份

mysqldump -u root -p --all-databases > /opt/all_database.sql

sz all_database.sql

云服务器

mysql -u root -p < /opt/all_database.sql

2、sql文件 如果复制到另外一个库,不是重名命的库,是否会被覆盖,相同的表名会不会覆盖,相同的库名会不会覆盖

mysqldump -u root -p --all-databases > /opt/all_database.sql

scp - r root@20.0.0.52:/opt/all_database.sql /opt

mysql -u root -p < /opt/all_database.sql

会被覆盖

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL进阶之路丨第十六篇】一文带你精通MySQL函数

引言 在上一篇中我们介绍了MySQL数据的导入与导出&#xff1b;在开发中&#xff0c;对MySQL函数的运用是十分重要的。这一篇我们使用命令行方式来帮助读者掌握MySQL中函数的操作。 上一篇链接&#xff1a;【MySQL进阶之路丨第十五篇】一文带你精通MySQL数据的导入与导出 MySQ…

vue3使用element plus时遇到的问题

1.el-form中input无法输入 问题描述&#xff1a;在el-form中的el-input中输入数字或字母时出现卡顿&#xff0c;输入不进去的现象 问题原因&#xff1a;el-form的ref和model的名称写成了一样的单词 问题解决&#xff1a;两个不能一样 2.input去除边框 问题描述&#xff1a;…

2、鸿蒙开发工具首次运行时开发环境配置

请务必在第一次运行时配置好开发环境&#xff0c;如果取消了配置&#xff0c;后续再配置会比较麻烦 1、点击工具图标运行 2、在欢迎页中点击“Agree” 3、默认“Do not import setting”&#xff0c;点击“OK” 3、此片设置Nodejs和Ohpm的安装&#xff0c;其中&#xff0c; …

基于springboot实现高校党务平台管理系统【项目源码】

基于springboot实现高校党务平台管理系统演示 Java技术 Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点&#xff0c;而且Java是开源的&#xff0c;拥有全世界最大的开发者专业社群&#x…

Python类的定义和使用:什么是类?实在不知道啥叫累!

文章目录 前言1.基础概念2.定义一个 Person 类3.类定义4.类方法定义5.类的继承6.类的公有,私有7.子类调用父类的方法关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例…

【紫光同创国产FPGA教程】——【PGL22G第十一章】以太网传输实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注www.meyesemi.com) 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古22K&#xff09; 一&#xff1a;盘古22K开发板&#xff08;紫光…

VEX —— Intrinsic attribute

目录 查看 使用 PackedGeometry Intrinsic attribute 内在属性是已经被计算的值&#xff08;从几何体派生出来的&#xff09;&#xff0c;可像属性一样访问&#xff1b; 查看 ginfo -I&#xff0c;打印所有内在属性&#xff1b;geometry spreadsheet&#xff0c;查看内在属性…

08.Diffusion Model数学原理分析(下)

文章目录 denoising matching term σ t z \sigma_tz σt​z的猜想Diffusion Model for SpeechDiffusion Model for TextMask-Predict 部分截图来自原课程视频《2023李宏毅最新生成式AI教程》&#xff0c;B站自行搜索。 书接上文。 denoising matching term E q ( x t ∣ x 0 …

第四章:人工智能深度学习教程-激活函数(第一节-激活函数)

简单来说&#xff0c;人工神经元计算其输入的“加权和”并添加偏差&#xff0c;如下图所示的净输入。 从数学上来说&#xff0c; 现在净输入的值可以是从 -inf 到 inf 之间的任何值。神经元并不真正知道如何绑定到值&#xff0c;因此无法决定激发模式。因此激活函数是人工神经网…

【Proteus仿真】【STM32单片机】汽车尾灯控制设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用按键、LED模块等。 主要功能&#xff1a; 系统运行后&#xff0c;系统运行后&#xff0c;系统开始运行&#xff0c;K1键控制左转向灯&#xff…

【PHP函数封装】分分钟帮你实现数据脱敏处理, 支持手机号码、邮箱、身份证号 中文字符串!

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&#x1…

一篇文章教会你写一个贪吃蛇小游戏(纯C语言)

一篇文章教会你写一个贪吃蛇小游戏 1、游戏展示2、游戏功能3、Win32 API3.1 控制台程序3.2 控制台屏幕上的坐标COORD3.3 GetStdHandle函数3.4 GetConsoleCursorInfo函数3.4.1 CONSOLE_CURSOR_INFO结构体 3.5 SetConsoleCursorInfo函数3.6 SetConsoleCursorPosition函数3.7 GetA…

C++智能指针的使用:shared_ptr、weak_ptr、unique_ptr的使用,使用案例说明。

系列文章目录 本章内容&#xff1a; &#xff08;1&#xff09;shared_ptr、weak_ptr、unique_ptr的介绍 &#xff08;2&#xff09;单独使用share_ptr造成的内存泄漏 &#xff08;3&#xff09;shared_ptr和weak_ptr的配合使用 文章目录 系列文章目录前言一、shared_ptr、wea…

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群 Redis 的多种模式Redis-Alone 单机模式Redis 单机模式的优缺点 Redis 高可用集群模式Redis-Master/Slaver 主从模式Redis-Master/Slaver 哨兵模式哨兵模式监控的原理Redis 节点主客观下线标记Redis 节点主客观…

如何避免手动修改文件名,批量重命名文件的方法

在我们的日常生活和工作中&#xff0c;经常需要处理大量的文件&#xff0c;其中一些文件可能需要进行重命名。如果只是少数几个文件&#xff0c;我们可以手动重命名&#xff0c;但是当面对成百上千的文件时&#xff0c;手动重命名就变得非常繁琐和低效。那么&#xff0c;有没有…

低代码技术这么香,如何把它的开发特点发挥到极致?

前言 什么是低代码技术&#xff1f; 低代码是一种可视化软件开发方法&#xff0c;通过最少的编码更快地交付应用程序。图形用户界面和拖放功能使开发过程的各个方面自动化&#xff0c;消除了对传统计算机编程方法的依赖。 文章目录 前言低代码平台怎么选&#xff1f;用友Yonbu…

C语言中一维指针、二维指针和三维指针

指针可以指向一份普通类型的数据&#xff0c;例如 int、double、char 等&#xff0c;也可以指向一份指针类型的数据&#xff0c;例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针&#xff0c;我们就称它为二级指针&#xff0c;或者指向指针的指针。 假设…

github遇到想要强制拉取远程仓库内容

进行项目的时候&#xff0c;遇到了我的远程仓库 Sync fork 更新以后&#xff0c;这时候我的本地就和远程不同步&#xff0c;如果使用 git pull 的时候&#xff0c;如果出现 conficts 过多的情况怎么办&#xff0c;如果我们想要直接把远程仓库拉下来应该怎么办&#xff1f; git…

srs webrtc推拉流环境搭建

官方代码https://github.com/ossrs/srs 拉取代码&#xff1a; git clone https://github.com/ossrs/srs.gitcd ./configure make ./objs/srs -c conf/rtc.confconf/rtc.conf中&#xff0c;当推拉流浏览器在本地时&#xff0c;如果srs也在本地&#xff0c;那么可以使用官网默认…

​怎么测试websocket接口

在部分业务中&#xff0c;我们需要使用长连接&#xff0c;我们可以使用http长连接或者websocket&#xff0c;开发结束后难免会遇到测试问题&#xff0c;这里推荐2个&#xff0c;一个是postman&#xff0c;一个是网站 postman 测试网站 测这边推荐测试网站&#xff0c;支持ws/w…
最新文章