Linux5.6 Mysql备份与恢复

news2024/10/7 10:13:24

文章目录

  • 计算机系统
    • 5G云计算
      • 第四章 LINUX Mysql备份与恢复
        • 一、数据库备份的分类
          • 1. 数据备份的重要性
          • 2.数据库备份的分类
          • 3. 常见的备份方法
            • 1)物理冷备
            • 2)专用备份工具mysqldump或mysqlhotcopy
            • 3)启用二进制日志进行增量备份
            • 4)第三方工具备份
        • 二、MySQL 日志管理
        • 三、MySQL 完全备份与恢复
          • 1.MySQL 完全备份
          • 2.物理冷备份与恢复
          • 3.mysqldump 备份与恢复
          • 4.MySQL 完全恢复
        • 四、MySQL 增量备份与恢复
          • 1.MySQL 增量备份
            • 1)开启二进制日志功能
            • 2)可每周对数据库或表进行完全备份
            • 3)可每天进行增量备份操作,生成新的二进制日志文件(例如 mysql-bin.000002)
            • 4)插入新数据,以模拟数据的增加或变更
            • 5)再次生成新的二进制日志文件(例如 mysql-bin.000003)
            • 6)查看二进制日志文件的内容
          • 2.MySQL 增量恢复
            • 1)一般恢复,模拟丢失更改的数据的恢复步骤
            • 2)模拟丢失所有数据的恢复步骤

计算机系统

5G云计算

第四章 LINUX Mysql备份与恢复

一、数据库备份的分类

1. 数据备份的重要性

备份的主要目的是灾难恢复。在生产环境中,数据的安全性至关重要,任何数据的丢失都可能产生严重的后果

造成数据丢失的原因有以下几点:程序错误、人为操作错误、运算错误、磁盘故障、灾难(如火灾、地震)和盗窃等等众多因素

2.数据库备份的分类
数据库备份的分类(物理与逻辑的角度)说明
物理备份对数据库操作系统的物理文件(如数据文件、日志文件等)的备份
物理备份有三种备份方法,分别是冷备份、热备份、温备份
**冷备份(脱机备份)**是在关闭数据库的时候进行的
**热备份(联机备份)**数据库处于运行状态,依赖于数据库的日志文件
**温备份就是数据库锁定表格(不可写入但可读)**的状态下进行备份操作
逻辑备份对数据库逻辑组件(如:表等数据库对象)的备份
数据库备份的分类(数据库的备份策略角度)说明
完全备份每次对数据库进行完整的备份
差异备份备份自从上次完全备份之后被修改过的文件
增量备份只有在上次完全备份或者增量备份后被修改的文件才会被备份
3. 常见的备份方法
1)物理冷备

备份时数据库处于关闭状态,直接打包数据库文件

备份速度快,恢复时也是最简单的

2)专用备份工具mysqldump或mysqlhotcopy

mysqldump常用的逻辑备份工具

mysqlhotcopy仅拥有备份MyISAM和ARCHIVE表

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

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

4)第三方工具备份

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

二、MySQL 日志管理

MySQL 的日志默认保存位置为 /usr/local/mysql/data

vim /etc/my.cnf
[mysqld]
###错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
log-error=/usr/local/mysql/data/mysql_error.log					
###指定日志的保存位置和文件名

###通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log

###二进制日志(binlog),用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数据恢复,默认已开启
log-bin=mysql-bin				
###也可以 log_bin=mysql-bin

###慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以找到哪些查询语句执行时间长,以便于优化,默认是关闭的
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5												
###设置超过5秒执行的语句被记录,缺省时为10秒


systemctl restart mysqld

mysql -u root -p
show variables like 'general%';									
###查看通用查询日志是否开启

show variables like 'log_bin%';									
###查看二进制日志是否开启

show variables like '%slow%';									
###查看慢查询日功能是否开启
show variables like 'long_query_time';							
###查看慢查询时间设置

set global slow_query_log=ON;				
###在数据库中设置开启慢查询的方法

在这里插入图片描述
在这里插入图片描述

三、MySQL 完全备份与恢复

完全备份是对整个数据库、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库。完全是差异备份与增量备份的基础

完全备份的优点备份与恢复操作简单方便缺点数据存在大量的重复、占用大量的备份空间、备份与恢复时间长

1.MySQL 完全备份

InnoDB存储引擎的数据库在磁盘上存储成三个文件:db.opt(表属性文件)、表名.frm(表结构文件)、表名.ibd(表数据文件)

###准备个测试的表,并插入一些数据
use kb;
create table if not exists t1 (
id int(4) not null auto_increment,
name varchar(10) not null,
sex char(10) not null,
hobby varchar(50),
primary key (id));

insert into t1 values(1,'user1','male','running');
insert into t1 values(2,'user2','female','singing');

在这里插入图片描述

2.物理冷备份与恢复
systemctl stop mysqld
###压缩备份
tar zcvf /opt/mysql_all_$(date +%Y%m%d).tar.gz /usr/local/mysql/data/
###解压恢复
tar xf /opt/mysql_all_2020-11-22.tar.gz
mv /opt/usr/local/mysql/data/ /usr/local/mysql/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.mysqldump 备份与恢复
1)完全备份一个或多个完整的库(包括其中所有的表)
mysqldump -u root -p[密码] --databases 库名1 [库名2] … > /备份路径/备份文件名.sql	
###导出的就是数据库脚本文件
例:
mysqldump -u root -p123 --databases kb > /opt/kb.sql
mysqldump -u root -p123 --databases mysql kb > /opt/mysql-kb.sql2)完全备份 MySQL 服务器中所有的库
mysqldump -u root -p[密码] --all-databases > /备份路径/备份文件名.sql
例:
mysqldump -u root -p123 --all-databases > /opt/all.sql3)完全备份指定库中的部分表
mysqldump -u root -p[密码] [-d] 库名 [表名1] [表名2]> /备份路径/备份文件名.sql
例:
mysqldump -u root -p123 kb t1 account mingdan > /opt/kb_all_tables.sql
###使用“-d”选项,说明只保存数据库的表结构
###不使用“-d”选项,说明表数据也进行备份4)查看备份文件
grep -v "^--" /opt/kb_all_tables.sql | grep -v "^/" | grep -v "^$"

在这里插入图片描述

4.MySQL 完全恢复
systemctl start mysqld
(1)恢复数据库
mysql -u root -p123 -e 'drop database kb;'
###“-e”选项,用于指定连接 MySQL 后执行的命令,命令执行完后自动退出
mysql -u root -p123 -e 'SHOW DATABASES;'

mysql -u root -p123 < /opt/kb.sql
mysql -u root -p123 -e 'SHOW DATABASES;'2)恢复数据表
当备份文件中只包含表的备份,而不包含创建的库的语句时,执行导入操作时必须指定库名,且目标库必须存在。
mysql -u root -p123 -e 'drop table kb.t1;'
mysql -u root -p123 -e 'drop table kb.mingdan;'
mysql -u root -p123 -e 'drop table kb.account;'
mysql -u root -p123 -e 'show tables from kb;'

mysql -u root -p123 kb < /opt/kb_all_tables.sql
mysql -u root -p -e 'show tables from kb;'3)source恢复数据
先登录到mysql,再执行 source XXX.sql
(注:如果XXX.sql是表数据文件那么需要先自行创建库并use切换库)

(4)cat恢复数据
cat XXX.sql | mysql -uXXX -pXXX [库名]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、MySQL 增量备份与恢复

1.MySQL 增量备份
1)开启二进制日志功能
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
binlog_format = MIXED				
###可选,指定二进制日志(binlog)的记录格式为 MIXED
server-id = 1

###二进制日志(binlog)有3种不同的记录格式:STATEMENT(基于SQL语句)、ROW(基于行)、MIXED(混合模式),默认格式是STATEMENT(5.7版本默认格式是ROW)

systemctl start mysqld
ls /usr/local/mysql/data/

在这里插入图片描述

2)可每周对数据库或表进行完全备份
mysqldump -u root -p kgc t1 > /opt/kgc_t1_$(date +%Y%m%d).sql
mysqldump -u root -p --databases kb > /opt/kb_$(date +%Y%m%d).sql

在这里插入图片描述

3)可每天进行增量备份操作,生成新的二进制日志文件(例如 mysql-bin.000002)
mysqladmin -u root -p flush-logs
4)插入新数据,以模拟数据的增加或变更
use kb;
insert into t1 values(3,'user3','male','game');
insert into t1 values(4,'user4','female','reading');

在这里插入图片描述

5)再次生成新的二进制日志文件(例如 mysql-bin.000003)
mysqladmin -u root -p flush-logs
###之前的步骤4的数据库操作会保存到mysql-bin.000002文件中,之后数据库数据再发生变化则保存在mysql-bin.000003文件中
6)查看二进制日志文件的内容
cp /usr/local/mysql/data/mysql-bin.000002 /opt/
mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/mysql-bin.000002
###--base64-output=decode-rows:使用64位编码机制去解码并按行读取
###-v:显示详细内容

在这里插入图片描述
在这里插入图片描述

2.MySQL 增量恢复
1)一般恢复,模拟丢失更改的数据的恢复步骤
use kb;
delete from t1 where id=3;
delete from t1 where id=4;

mysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -u root -p123

在这里插入图片描述
在这里插入图片描述

2)模拟丢失所有数据的恢复步骤
use kb;
drop table t1;

mysql -u root -p123 kb < /opt/kb_all_tables.sql
mysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -u root -p

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

8.2 网络分层OSI七层模型

目录 计算机网络体系结构的形成 两台计算机要互相传送文件需解决很多问题 提出了不同体系结构 国际标准&#xff1a;开放系统互连参考模型 OSI/RM 但 ISO/OSI 失败了 存在两种国际标准 协议与划分层次 协议与划分层次 协议的两种形式 层次式协议结构 划分层次的概念举…

卷积计算加速方法--分块卷积

1、大尺寸卷积存在的问题 当卷积的输入太大导致内存不够用时&#xff0c;考虑将一大块卷积分成多个小块分别进行卷积&#xff0c;相当于将原始输入分成几个小的输入经过同一组卷积核分别卷积&#xff0c;其中每块小的输入都是原始输入的子集&#xff0c;每块之间互不影响&#…

OpenHarmony社区运营报告(2023年5月)

本月快讯 ● 2023年6月11-13日&#xff0c;2023开放原子全球开源峰会即将在北京北人亦创国际会展中心盛大开幕。2023开放原子全球开源峰会上&#xff0c;OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;将通过分论坛与展览等方式&#xff0c;展示生态进展…

C# 特性详解

目录 特性是什么&#xff1f; 如何使用特性&#xff1f; &#xff08;1&#xff09;.Net 框架预定义特性 &#xff08;2&#xff09;自定义特性 为什么要使用特性&#xff1f; 特性的应用 特性实现枚举展示描述信息 特性是什么&#xff1f; 特性&#xff08;Attribute&…

划重点!超全PMP报考指南,速速收藏!

PMP证书作为项目管理专业人士的重要标志&#xff0c;是每一位项目经理职业发展生涯中不可或缺的证书。PMP学习不仅可以提升项目经理的项目管理水平&#xff0c;也可以进一步提升项目经理的个人竞争力。 一&#xff0c;PMP介绍 PMP&#xff08;项目管理专业人士资格认证&#…

新建一个vue2项目

安装Vue CLI 在终端中输入以下命令进行全局安装&#xff1a; npm install -g vue/cli 创建Vue项目 1.在你要创建项目的目录下打开终端输入vue create 【你的项目名称】 2.手动选择安装 3.根据自己的需求选择 4.选择vue版本 5.是否使用calss风格的组件语法&#xff1a; (推荐…

8.1 什么是互联网

目录 计算机网络的定义与分类 计算机网路的定义 几种不同类别的计算机网络 按照网络的作用范围进行分类 按照网络的使用者进行分类 网络的网络 计算机网络 互连网络 网络与互连网 互联网 互联网的组成 互联网的边缘部分 互联网基础结构发展的三个阶段 第一阶段&a…

JavaWeb小记——Servlet

目录 Servlet概念 Servlet快速入门 1.创建web项目 2.创建一个Java类&#xff0c;实现Servlet接口 3.重写接口中的service()方法 4.配置Servlet——web.xml中 5.发布项目 6.发送请求&#xff0c;请求Servlet Servlet原理 Servlet的生命周期 1.init() 2.service() 3.…

el-form 表单项前面显示星号 但又不校验这一项代码怎么实现

效果图&#xff1a; 1.将 prop 属性设置为空字符串&#xff1b; 2.同时将 required 属性设置为 true。 这样就可以显示星号但不进行校验。 示例代码&#xff1a; <el-form> <el-form-item label"姓名" prop"name" required> <el-input…

SAP ERP系统PP模块控制BOM的变更是否需要ECN的三种解决方法<转载>

原文链接&#xff1a;http://www.360doc.com/content/12/0121/07/1079063886_1079063886.shtml BOM简称物料清单&#xff0c;它是PC和MC部门编制生产计划&#xff0c;物料采购和生产计划的依据&#xff0c;也是财务成本核算的基础&#xff0c;它的重要性不言而喻。 一个公司的…

Go语言精进之路读书笔记—第二章 项目结构、代码风格与标识符命名

上面是go语言库项目结构&#xff0c;细节补充如下&#xff1a; cmd目录&#xff1a; 存放项目要构建的可执行文件对应的main包源文件。 pkg目录&#xff1a; 项目自身要使用并且同样也是可执行文件对应main包要依赖的库文件。 makefile&#xff1a; 代码任何第三方构建工具脚本…

设备算法加密授权“安全+易用=?”

一提到软件授权&#xff0c;大家的第一反应都是“安全”和“易用”的问题&#xff0c;尤其是在算法加密授权领域。软件企业想要十足的安全性用来防止反编译&#xff0c;同时又需要具备灵活和易用来促使企业商业模式落地。那现在市面上是否有这样一款兼顾“安全性”和“易用性”…

谈谈:File、Blob、FileReader、ArrayBuffer、base64

JavaScript 提供了一些 API 来处理文件或原始文件数据&#xff0c;例如&#xff1a;File、Blob、FileReader、ArrayBuffer、base64 等。下面就来看看它们都是如何使用的&#xff0c;它们之间又有何区别和联系。 1. Blob Blob全称为binary large Object 即二进制大对象&#x…

嵌入式软件开发工程师具体可以分三类

嵌入式软件开发工程师可以根据其职责和专长分为以下三类&#xff1a;底层固件开发工程师&#xff1a;底层固件开发工程师负责编写和优化嵌入式系统的底层软件&#xff0c;与硬件密切相关。他们通常需要熟悉处理器架构、寄存器级编程、中断处理、设备驱动程序和实时操作系统&…

Oracle21C + PLSQL Developer 15 + Oracle客户端21安装配置完整图文版

一、Oracle21C PLSQL Developer 15 Oracle客户端文件下载 1、Oracl21C下载地址&#xff1a;https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html 2、 PLSQL Developer 15下载地址&#xff1a;https://www.allroundautomations.com/re…

微信支付(JSAPI支付)/支付宝支付(手机网站支付)实现思路及实现方案-无源码

背景 停车系统 一个二维码同时支持微信及支付宝扫码付款&#xff0c;使用手机网站实现 临时车费用缴费二维码需要通知支持微信及支付宝。用户缴纳的停车费直接到各个商户的账户上&#xff0c;不经过停车系统开发公司。 方案 微信&#xff1a;使用微信服务商提供的服务支付…

【twcc】学习2:cc-feedback包送去cc预估码率

继续学习1,学习1中是准备知识,实际操练是在本文的预估中。 主要是对照大神的神作第八章 学习。 大量引用了大神的内容。 学习1中,大神主要论述了发送侧如何构造cc-fb,等待收到rtcp-cc-fb后进行再更新,然后最终交给cc模块。 这是大神绘制的图片,总结的非常清晰到位: 大神…

归一化详细推导

1. 一组数减去平均数的差的和为0。 一组数:a1,a2,a3,……,an, 平均数:a=(a1+a2+……+an)/n, 则 a1+a2+……+an=n*a, 从而,每一个数减去平均数的差的和为 (a1-a)+(a2-a)+……+(an-a) =(a1+a2+……+an)-n*a =0 2. 设原始数据均值及标准差为,将原始数组经过变换后得到使得均…

保护您的网站免受黑客攻击的七个良好习惯

世界上通常有三种类型的网站/APP拥有者&#xff1a;第一种是一直具备较高风险意识的人、第二种是非常自信认为没有任何东西可以攻击和破坏他们网站的人&#xff0c;第三种&#xff1a;根本不关心它的人。 第二种远比另外两种人更容易感受后悔和痛苦。实际上&#xff0c;黑客攻…

autocad中的快文件

一、块的定义 图块也称块&#xff0c;它是由一组图形对象组成的集合&#xff0c;一组对象一旦被定义为图块&#xff0c;它们将成 为一个整体&#xff0c;选中图块中任意一个图形对象即可选中构成图块的所有对象。AutoCAD 把一个 图块作为一个对象进行编辑修改等操作&…