如何备份与恢复MySQL数据库数据

news2024/10/7 18:20:39

目录

一、MySQL备份

备份方式

完全备份

差异备份

增量备份

二、常见的备份方法

物理冷备

专用备份工具 mysqldump 或 mysqlhotcopy

启用二进制日志进行增量备份

第三方工具备份

三、MySQL完全备份

四、数据库完全备份分类

物理冷备份与恢复

mysqldump备份与恢复

五、物理冷备份与恢复

查看一下目前的数据库

首先关闭数据库服务

安装相关压缩工具的服务

解压数据文件进行备份

将数据移除到别的文件下

接下来我们进行解压恢复数据

切换到目录下查看文件是否还原

启动服务看是否能正常启动

查看数据是否存在

六、mysqldump备份与恢复(温备份)

进行完全备份指定完整的库

进行完全备份所有MySQL服务器中的数据库

完全备份指定库中的部分表

如何查看备份文件

进行数据恢复

使用source恢复数据库

模拟数据库出现故障

恢复数据库

查看数据是否恢复

使用mysql语句恢复数据库

进行数据库恢复

登录数据库查看是否恢复

七、增量备份

首先开启二进制日志功能

重启数据库MySQL服务

备份一个二进制日志文件

查看二进制日志文件内容

刷新生成新的二进制日志文件

进入数据库创建新的数据

创建新数据增加二进制日志文件内容

查看新的二进制日志文件


一、MySQL备份

备份的主要目的是灾难恢复,备份还可以测试应用,回滚数据修改,查询历史数据。、审计等,而恢复备份中,日志起到了很重要的作用

MySQL日志默认保存位置为/etc/local/mysql/data目录下的日志文件

数据备份可分为物理备份和逻辑备份,物理备份是对数据库操作系统的物理文件(如数据文件和日志文件等)的备份,这种类型的备份适用于在出现问题的时候需要快速回复大型的重要数据库

冷备份(脱机备份):是在关闭数据库的时候进行的(tar)

热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件(MySQLbackup)

温备份:数据库锁定表哥(不可写入但可读)的状态下进行备份操作(MySQLdump)

备份方式

备份方式有三种,分为完全备份,差异备份,增量备份

完全备份

每次对数据进行完整备份,即对整个数据库、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础完全备份的备份与恢复操作都非常简单方便,但是数据存在大量的重复并且会占用大量的磁盘空间,备份的时间也很长

每次都进行完全备份,会导致备份文件占用空间巨大,并且有大量的重复数据,恢复时,直接使用完全备份的文件即可

差异备份

备份那些自从上次完全备份之后被修改过的所有文件,备份的时间节点是从上次完整备份起,备份数据量会越来越大。恢复数据时只需要恢复上次的完全备份与最佳的一次差异备份

每次差异备份,都会备份上一次完全备份之后的数据,可能会出现重复数据。恢复时,先恢复完全备份的数据,再恢复差异备份的数据

增量备份

只有那些在上次完全备份或者增量备份后被修改的文件才会被备份以上次完整备份或上次增量备份的时间为时间点,仅备份期间内的数据变化,因而备份的数据量小,占用空间小,备份速度快。但恢复时,需要从上一次的完整备份开始到最后一次增量备份之间的所有增量依次恢复,如中间某次的备份数据损坏,将导致数据的丢失 每次增量备份都是在备份在上一次完成全备份

每次增量备份都是备份在上一次完全备份或者增量备份之后的数据,不会出现重复数据的情况,也不会占用额外的磁盘空间 恢复数据,需要按照次序恢复完全备份和增量备份的数据

二、常见的备份方法

物理冷备

备份时数据库处于关闭状态,直接打包数据库文件(tar) 备份速度快,恢复时也是最简单的

专用备份工具 mysqldump 或 mysqlhotcopy

mysqldump 常用的逻辑备份工具 mysqlhotcopy 仅拥有备份 MyISAM 和 ARCHIVE 表

启用二进制日志进行增量备份

进行增量备份,需要刷新二进制日志

MySQL支持增量备份,进行增量备份时必须启用二进制日志。二进制日志文件为用户提供复制,对执行备份点后进行的数据库更改所需的信息进行恢复。如果进行增量备份(包含自上次完全备份或增量备份以来发生的数据修改),需要刷新二进制日志。

第三方工具备份

免费的MySQL 热备份软件 Percona XtraBackup mysqlbackup

三、MySQL完全备份

  • 是对整个数据库、数据库结构和文件结构的备份

  • 保存的是备份完成时刻的数据库

  • 是差异备份与增量备份的基础

  • MySQL完全备份优缺点

1、优点: 备份与恢复操作简单方便

2、缺点: ​ 数据存在大量的重复 ​,占用大量的备份空间,备份与恢复时间长

四、数据库完全备份分类

物理冷备份与恢复

关闭MySQL数据库 使用tar命令直接打包数据库文件夹 直接替换现有MySQL目录即可

mysqldump备份与恢复

MySQL自带的备份工具,可方便实现对MySQL的备份 可以将指定的库、表导出为SQL 脚本 使用命令mysq|导入备份的数据

五、物理冷备份与恢复

查看一下目前的数据库

命令:show databases;

show tables;

首先关闭数据库服务

再进行冷备份

命令:systemctl stop firewalld

安装相关压缩工具的服务

命令:yum -y install xz

解压数据文件进行备份

命令:tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data

将数据移除到别的文件下

命令:mv /usr/local/mysql/data /opt

接下来我们进行解压恢复数据

命令:mkdir /usr/local/mysql/data

tar Jxvf /opt/mysql_all_2023-07-18.tar.xz -C /usr/local/mysql/data

切换到目录下查看文件是否还原

命令:cd /usr/local/mysql/data

启动服务看是否能正常启动

命令:systemctl start mysqld.service

查看数据是否存在

命令:show databases;

show tables; 

六、mysqldump备份与恢复(温备份)

进行完全备份指定完整的库

命令:mysqldump -u root -p[密码] --databases [库名] > [备份路径文件名].sql

进行完全备份所有MySQL服务器中的数据库

命令:mysqldump -u root -p[密码] --all-databases > [备份路径文件名].sql

完全备份指定库中的部分表

命令:mysqldump -u root -p[密码] 库名 [表名1] [表名2] ... > [备份路径文件名].sql

如何查看备份文件

命令:grep -v "^--" /opt/[文件名].sql | grep -v "^/" | grep -v "^$"

进行数据恢复

使用mysqldump导出的文件,可使用导入的方法
① source命令
② mysql命令

使用source恢复数据库

先登录到数据库

命令:mysql -u [用户名] -p [密码]

模拟数据库出现故障

命令:drop database [数据库名];

恢复数据库

命令:source [备份文件全路径].sql;

查看数据是否恢复

命令:show databases;

show tables;

使用mysql语句恢复数据库

再次模拟数据库故障丢失数据

命令:drop database [数据库名];

进行数据库恢复

退出数据库,在命令行中操作恢复

命令:mysql -u[用户名] -p[密码] < [备份文件全路径].sql

登录数据库查看是否恢复

命令:mysql -u[用户名] -p[密码]

show databases;

show tables;

七、增量备份

首先开启二进制日志功能

增量备份要基于完全备份做备份,所以在做增量备份之前,先将目前的数据库内数据进行一次全量备份,保证备份开始时的数据完整性

命令:vim /etc/my.cnf

重启数据库MySQL服务

命令:systemctl restart mysqld

备份一个二进制日志文件

命令:cp /usr/local/mysql/data/mysql-bin.000001 /opt

查看二进制日志文件内容

命令:mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/mysql-bin.000001

二进制日志中需要关注的部分

1、at :开始的位置点

2、end_log_pos:结束的位置

3、时间戳: 210712 11:50:30

4、SQL语句

刷新生成新的二进制日志文件

命令:mysqladmin -uroot -p flush-logs

进入数据库创建新的数据

命令:mysql -u[用户名] -p[密码]

创建新数据增加二进制日志文件内容

命令:create database lll;

查看新的二进制日志文件

命令:mysqlbinlog --no-defaults --base64-output=decode-rows -v /usr/local/mysql/data/mysql-bin.000002

 

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

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

相关文章

海外应用商店的ASO优化表现跟踪

花更少的时间整合App Store数据&#xff0c;花更多的时间去解锁有助于我们实现高下载量的目标。了解我们应用商店表现的真实水平&#xff0c;以便我们可以自信地完善和调整应用营销策略。 全面跟踪所有重要的应用指标&#xff0c;踪各个国家/地区的展示次数、商店浏览量、安装…

小程序web-view本地测试:redirect_uri参数错误

要检查这些地方&#xff0c; 1&#xff1a; 2&#xff1a; 3&#xff1a;这里要加http、https this.testURL https://open.weixin.qq.com/connect/oauth2/authorize?appidwx54d162c2a94191f1&redirect_uri${encodeURIComponent(http://xxxxx)}&response_typecode&a…

Slim-neck by GSConv 论文学习

1. 解决了什么问题&#xff1f; 目标检测是计算机视觉中一个重要任务。在边缘设备上&#xff0c;大模型很难取得实时的效果。而使用大量深度可分离卷积的模型则很难取得高准确率。如下图&#xff0c;深度可分离卷积的缺点就是&#xff1a;输入图像的通道信息在计算时被分隔开了…

RocketMQ 5.0本地源码启动3Nameserve+2broker集群

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 背景 由于RocketMQ 5.x主从同步的方式改动非常大&#xff0c;集群部署的方式也改动很大&#xff0c;所以打算本地启动一个小集群&#xff0c;进行debug研究源码学…

PCB反复评审难题,终极解决办法有了?

随着电子产品的高速发展&#xff0c;PCB生产中大量使用BGA、QFP、PGA和CSP等高集成度器件&#xff0c;PCB的复杂程度也大大增加&#xff0c;随之而来的PCB的设计和制造难、测试困难、焊接不良、器件不匹配和维修困难等生产问题&#xff0c;导致整个产品工期延误&#xff0c;产品…

整合 JXLS模版导出excel表格

1、引入 包 - <!--easypoi --> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>3.3.0</version> <…

Day57|647. 回文子串 、516.最长回文子序列

647. 回文子串 1.题目&#xff1a; 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串&#xff0c;即使是…

学生宿舍智能电表限电原理

学生宿舍智能电表限电石家庄光大远通电气有限公司生产销售系列学生公寓智能管理模块、学生公寓智能控电水电联控系统及相关公寓安全用电产品&#xff0c;产品销往全国各地&#xff0c;广泛应用于各种学校公寓物业及商业地产公司&#xff0c;为企事业单位物业管理提供便捷的水电…

性能优化:如何彻底解决SharedPreferences造成的卡顿

背景 在上线 ANR 监控平台后&#xff0c;线上收集到了较多的ANR日志 &#xff0c;从火焰图信息上看&#xff0c;函数阻塞在了QueuedWork 相关函数上 &#xff0c;本文主要介绍的这一现象的原因以及如何解决这一问题。 本文介绍的解决方案&#xff0c;已放到github 上https://g…

[Android] Android Studio 找不到一些包,编辑器显示红色

起因 此前写了一个项目里面用了 org.apache.commons.cli 这个库&#xff0c;在本地一段时间&#xff0c;因为其他业务影响就没有编写。今天突发奇想加点东西&#xff0c;发现—— 原本完好的项目&#xff0c;通过Android studio打开之后&#xff0c;org.apache.commons引入…

FPGA课程设计——数字电子时钟VERILOG(基于正点原子新起点开发板,支持8位或6位共阳极数码管显示时分秒毫秒,可校时,可设闹钟,闹钟开关,led指示)

2019 级 电子科学与技术 专业FPGA课程设计 报 告 2022 年 5 月 20 日 多功能数字电子钟的设计 摘要 电子设计自动化&#xff08;EDA&#xff09;是一种实现电子系统或电子产品自动化设计的技术&#xff0c;使用EDA技术设计的结果既可以用FPGA / CPLD来实施验证&#xff0c;…

k8s基础概念:port ,targetport,nodeport

在Kubernetes中&#xff0c;有三种类型的端口与Service相关&#xff1a;port、targetPort和NodePort。它们分别用于不同的用途&#xff1a; port&#xff1a;port字段定义了Service暴露给集群内部和外部的端口号。当你创建一个Service时&#xff0c;其他应用或服务可以通过该端…

配置右键点击文件夹通过IDEA打开项目

0、 前言 你是不是每次打开idea项目时&#xff0c;都需要走一遍这样的流程&#xff1a; 1、先启动idea 2、然后手动选择项目路径 3、打开项目 于是在打开项目的路上就耗费了大量的时间。 这篇文章会教你通过配置&#xff0c;让项目可以直接通过右键打开&#xff0c;大大提升项…

[新人向]MySQL和Navicat下载、安装及使用详细教程

MySQL和Navicat下载和安装及使用详细教程 因为这些软件的安装很多都是纯英文&#xff0c;作为新手安装真的需要摸索好久&#xff0c;包括我自己&#xff0c;所以Pipi酱就把自己的经验分享给大家~ MySQL的安装教程 一、下载安装包链接&#xff1a; 1.下载MySQL&#xff1a;ht…

aidl的学习(1)aidl中java.lang.RuntimeException: Didn‘t create service “XXX“

1、build中版本号为30及以上时&#xff0c;aidl无效&#xff0c;解决方案 ①在客户端的manifest.xml中添加一下代码&#xff0c;其中代码中的包名为服务端的包名 <manifest> ... <application> ....</application> <queries ><package android:na…

【Docker】了解和使用Docker

文章底部有投票活动&#xff0c;赶快参与进来吧&#x1f603; 相信大家在开发过程中都听说过 Docker 一词&#xff0c;至于 Docker 在开发中扮演的角色&#xff0c;估计好多人都说不上来&#xff0c;今天就让阿Q带大家一起揭开它神秘的面纱&#xff01; 文章目录 什么是容器&a…

SQL对决MySQL全面对比:差异、相似性、用途和优点!

SQL和MySQL被用于编程和管理关系型数据库。了解SQL和MySQL之间的主要区别&#xff0c;以及在使用这些数据库管理工具的工作中所需的技能。 SQL和MySQL是与数据库相关的语言。SQL是一种用于与关系型数据库中的数据交互的编程语言&#xff0c;而MySQL是一种实现SQL标准的开源数…

Android平台下的cpu利用率优化实现

背景 为了进一步优化APP性能&#xff0c;最近针对如何提高应用对CPU的资源使用、以及在多线程环境下如何提高关键线程的执行优先级做了技术调研。本文是对技术调研过程的阶段性总结&#xff0c;将分别介绍普通应用如何调控App频率、如何将指定线程绑定到特定CPU、如何通过提升…

迅为龙芯2K0500开发板-资料目录

基础资料 01 开发板硬件资料 02_开发及烧写工具 开发资料 03开发所需软件及驱动 04_pmon&Linux内核源码 05_内核镜像 06_pmon镜像 07_buildroot文件系统源码&镜像 08_测试文件 使用手册 01[北京迅为]iTOP-LS2K0500开发板快速启动手册_v1.0 02[北京迅为]iTOP-LS2K0500开…

抖音小程序开发常见问题

抖音小程序 问题1 抖音小程序调试预留白屏 解决 &#xff0c;连接wifi出现无法打开&#xff0c;用手机流量可以正常访问 抖音小程序 web-view 上传后白屏 抖音小程序使用 webview 白屏&#xff0c;使用web-vew打开h5页面白屏 解决&#xff1a;配置web-view域名 服务器域名配…