当前位置: 首页 > news >正文

数据库的备份和恢复

备份:完全备份,增量备份

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

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

备份的需求

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

2 数据丢失可能是程序操作,运算错误,磁盘故障,人为操作等

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

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

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

逻辑备份:只是对数据库的逻辑组件 进行备份(表结构)以mysql语句的形式,把库 结构,表进行备份(直接在数据库系统中删除全部文件(rm -rf 库名),逻辑备份无法恢复)只能使用逻辑的方式(命令行)进行删除

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

优点:操作简单

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

打包备份最好把服务关掉,避免有新的数据进入,备覆盖,恢复失败

yum -y install xz

#压缩备份 tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data/

#解压恢复 tar Jxvf /opt/mysql_all_2020-11-22.tar.xz

物理冷备份

#关闭mysqld

#查看data下文件

#安装一个高压缩率的数据压缩工具(备份恢复先下载好这个)

#打包data

Tar Jcvf:打包

Tar Jxvf: 解压

打包/mysql_all_$(date+%F).tar.xz日期  打包位置

使用xz工具打包 J要大写J

把文件/usr/log/mysql/data打包到/opt/mysql_all_$(data +%F).tar.xz

(把data数据库打包相当于打包全部)

解压打包过来的数据包

#解压出来是

#演示删库(相当于删除所有)

数据备份恢复

数据全部还原了

远程数据迁移:

复制到、/opt 下之后 再保留权限复制到下面/usr/local/mysql/data/下

#再赋权之后 刷新 数据库 数据表格等都有了

重启MySQL

热备份中的逻辑备份

MySQL的自带工具:mysqldump

备份:重定向输出到/opt/下(使用mysqldump用.sql为结尾)

单个库备份

Mysqldump -u root -p --databases kgc > /opt/kgc.sql

多个库备份

Mysqldump -u root -p --databases kgc kgc1 > /opt/kgc1.sql

所有库进行备份

Mysqldump -u root -p --all-databases > /opt/kgc3.sql

恢复库使用mysql 小于号

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

##开启端口号、MySQL服务

单个数据库的逻辑热备份

#物理删除Kgc这个库(恢复之后只有库的架构 没有表数据)

#使用命令行的方式进行删除

#指定连接完mysql命令 之后自动退出

mysql -u root -p -e 'show databases;'

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

#恢复库

物理删除刷新没有了kgc

命令行删除还有恢复数据库

多个数据库的热备份的逻辑

备份全部数据库

如何备份指定库 指定表

指定数据库下 多表恢复

增量备份

优点:

mysgldump支持增量备份。

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

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

缺点:

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

MySQl二进制日志记录格式有3种

1 statemnet基于sql语句

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

2 row 基于行

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

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

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

增量-备份的过程

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

使用增量备份需要先修改配置文件

设置把二进制文件打开

log-bin=mysql-bin

binlog_format=MIXED

#二进制日志文件的位置

#查看二进制文件的内容

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002

mysqladmin -u root -p flush-logs

#刷新命令会生成一个新的mysql00000x记录点

恢复

mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p

基于位置点来进行恢复:

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

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

时间点要加-

At :数字是位置点

时间点 位置点

如何打开MySQL的默认日志

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

vim /etc/my.cnf

[mysqld]

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

#指定日志的保存位置和文件名

##错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启

general_log=ON

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

##通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的

log-bin=mysql-bin

 #也可以 log_bin=mysql-bin

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

slow_query_log=ON

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

long_query_time=5

##慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以找到哪些查询语句执行时间长,

以便于优化,默认是关闭的

#设置超过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;               #在数据库中设置开启慢查询的方法

附加题:写一个脚本,每个月的20号,对数据库打一个断点

断点之后进行增量备份

相关文章:

数据库的备份和恢复

备份&#xff1a;完全备份&#xff0c;增量备份 完全备份&#xff1a;将整个数据库完整的进行备份 增量备份&#xff1a;在完全备份基础的之上&#xff0c;对后续新增的内容进行备份 备份的需求 1生产环境中&#xff0c;数据的安全性至关重要&#xff0c;任何数据都可能产生非…...

DS图—图非0面积/bfs【数据结构】

DS图—图非0面积 题目描述 编程计算由"1"围成的下列图形的面积。面积计算方法是统计"1"所围成的闭合曲线中"0"点的数目。如图所示&#xff0c;在10*10的二维数组中&#xff0c;"1"围住了15个点&#xff0c;因此面积为15。 提示&…...

Wnmp服务安装并结合内网穿透实现公网远程访问——“cpolar内网穿透”

文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 WNMP是Windows系统下的绿色NginxMysqlPHP环境集成套件包&#xff0c;安装完成后即可得到一个Nginx MyS…...

2023版Pycharm关闭一直显示closing project,正在关闭项目

点击 帮助 下的 查找操作 英文版为 Help 下的 Find Action 输入 Registry 禁用 ide.await.scope.completion 即可 PS&#xff1a;按 Ctrl F 输入可以快速检索...

Gradle笔记 二 Gradle的基础Groovy

学习Groovy的必要性 首先Gradle是由Groovy写成的&#xff0c;而且构建脚本的语法都遵循Groovy的语法&#xff0c;所以要学好Gradle的前提是要基本了解Groovy的语法。 Groovy 简介 在某种程度上&#xff0c;Groovy可以被视为Java的一种脚本化改良版,Groovy也是运行在JVM上&am…...

浅谈剩余电流动作继电器在电动伸缩门的应用

摘 要&#xff1a;随着时代的发展&#xff0c;越来越多的小区、厂区、园区和学校等场所的大门安装了电动伸缩门&#xff0c;几乎可以说随处可见。电动伸缩门是一种长期在户外使用的设备&#xff0c;工作电压为220 V&#xff08;过去也有380 V&#xff09;&#xff0c;其电机是处…...

stable diffusion安装踩坑之clip安装、git报错

clip本地安装环境链接问题 本节主要记录一下在windows安装stable diffusion时&#xff0c;clip脚本安装不上&#xff0c;本地安装时如何链接到当前库的问题 首先&#xff0c;在脚本安装clip不成功时&#xff0c;脚本会输出一个commend指令&#xff0c;复制到浏览器就可以很快…...

colmap gpu服务器安装

1.官方安装说明 https://colmap.github.io/install.html 后边有编译支持gpu的步骤&#xff01;&#xff01;&#xff01; 2.sudo apt-get install libgtest-dev 3.cmakelists.txt 250行 set(CMAKE_CUDA_ARCHITECTURES “native”) 4. sudo apt-get install libqt5core5a sud…...

linux内的循环

格式 while 【 条件判断 】 do 语句体 done 上图 第一次代码&#xff0c;输入语句在外面&#xff0c;结果输入完&#xff08;非hello&#xff09;程序不断循环&#xff0c;没办法&#xff0c;ctrlc给程序终止了&#xff0c;然后把用户输入的语句放到了循环体里面…...

强化学习(RL)的学习笔记

1. 前言 &#xff08;1&#xff09;PPO的优点 PPO&#xff08;Proximal Policy Optimization&#xff09;算法相比其他强化学习方法有几个显著优点&#xff1a; 稳定性和鲁棒性&#xff1a;PPO通过限制策略更新的幅度来避免训练过程中的大幅波动&#xff0c;这增加了算法的稳…...

2023世界传感器大会开幕,汉威科技多领域创新产品引瞩目

11月5日&#xff0c;2023世界传感器大会在郑州国际会展中心正式拉开帷幕。据悉&#xff0c;本次大会由河南省人民政府、中国科学技术协会主办&#xff0c;郑州市人民政府、河南省工业和信息化厅、河南省科学技术协会、中国仪器仪表学会承办。 大会由“一会一赛一展”组成&#…...

什么是机器学习中的正则化?

1. 引言 在机器学习领域中&#xff0c;相关模型可能会在训练过程中变得过拟合和欠拟合。为了防止这种情况的发生&#xff0c;我们在机器学习中使用正则化操作来适当地让模型拟合在我们的测试集上。一般来说&#xff0c;正则化操作通过降低过拟合和欠拟合的可能性来帮助大家获得…...

PostgreSQL JDBC连接详解(附DEMO)

PostgreSQL JDBC连接详解 PostgreSQL JDBC连接详解摘要引言1. JDBC基础1.1 JDBC简介1.2 JDBC驱动程序1.3 建立JDBC连接 2. 配置PostgreSQL JDBC连接2.1 PostgreSQL连接JDBC2.2 PostgreSQL连接JDBC是否成功2.3 PostgreSQL连接JDBC获取表信息注释等2.4 PostgreSQL连接JDBC根据表名…...

学习视频剪辑:巧妙运用中画、底画,制作画中画,提升视频效果

随着数字媒体的普及&#xff0c;视频剪辑已经成为一项重要的技能。在视频剪辑过程中&#xff0c;制作画中画可以显著提升视频效果、信息传达和吸引力。本文讲解云炫AI智剪如何巧妙运用中画、底画批量制作画中画来提升视频剪辑水平&#xff0c;提高剪辑效率。 操作1、先执行云…...

Android Studio代码无法自动补全

Android Studio代码自动无法补全问题解决 在写layout布局文件时&#xff0c;代码不提示&#xff0c;不自动补全&#xff0c;可以采用如下方法&#xff1a; 点击File—>Project Structure&#xff0c;之后如图所示&#xff0c;找到左侧Modules&#xff0c;修改SDK版本号&…...

从零开始搭建微服务

人狠话不多,直接开始少点屁话本着共同学习进步的目的和大家交流如有不对的地方望铁子们多多谅解 准备工具 开发工具 idea Java环境 jdk.18 Maven 3.8.6 仓库镜像阿里云 <mirror><id>alimaven</id><name>aliyun maven</name><url>https:…...

HF Hub 现已加入存储区域功能

我们在 企业版 Hub 服务 方案中推出了 存储区域&#xff08;Storage Regions&#xff09; 功能。https://hf.co/enterprise 通过此功能&#xff0c;用户能够自主决定其组织的模型和数据集的存储地点&#xff0c;这带来两大显著优势&#xff0c;接下来的内容会进行简要介绍&…...

linux下实现电脑开机后软件自启动

实现linux的软件自启动&#xff0c;需要四个文件 第一个【displayScreen.desktop】文件&#xff0c;.desktop文件就是一个用来运行程序的快捷方式,也叫启动器&#xff0c;常用来自启动用的文件&#xff0c;内容如下 [Desktop Entry] #要执行的脚本位置 Exec/home/yicaobao/te…...

【C/PTA】循环结构进阶练习(二)

本文结合PTA专项练习带领读者掌握循环结构&#xff0c;刷题为主注释为辅&#xff0c;在代码中理解思路&#xff0c;其它不做过多叙述。 7-1 二分法求多项式单根 二分法求函数根的原理为&#xff1a;如果连续函数f(x)在区间[a,b]的两个端点取值异号&#xff0c;即f(a)f(b)<0…...

Visual Studio 2010 软件安装教程(附下载链接)——计算机二级专用编程软件

下载链接&#xff1a; 提取码:2wAKhttps://www.123pan.com/s/JRpSVv-9injv.html 安装步骤如下&#xff1a; 1.如图所示&#xff0c;双击打开【Visual Studio 2010简体中文旗舰版】文件夹 2.如图所示&#xff0c;找到“Setup”文件夹打开&#xff0c;双击运行“setup” 3.如图…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...