首页 > 数据库 >MySQL备份与恢复

MySQL备份与恢复

时间:2024-06-19 21:30:11浏览次数:30  
标签:恢复 备份 MySQL mysqldump mysql 日志 数据库

目录

1.数据库备份的分类

1.1 数据备份的重要性

1.2 数据库备份的分类

1.3 常见的备份方法

2.MySQL完全备份与恢复

2.1 MySQL完全备份

2.2 数据库完全备份分类

2.3 MySQL物理冷备份及恢复

2.4 mysqldump进行逻辑备份

2.4.1 mysqldump备份数据库

2.4.2 mysqldump备份数据表

3. 恢复数据库

3.1 使用source命令恢复数据库

3.2 使用mysql命令恢复数据库

3.2.1 重定向方式恢复数据库​

3.2.2 管道符方式恢复数据库

3.3 恢复表操作

4.MySQL增量备份与恢复

4.1 二进制日志文件

4.2 实例:完全备份+增量备份恢复数据库​编辑

4.3 断点恢复

4.3.1 基于位置恢复

4.3.2 基于时间点恢复

5.如何备份的数据库


1.数据库备份的分类

1.1 数据备份的重要性

1.2 数据库备份的分类

物理备份:直接对数据库的数据文件或者日志文件进行备份.
逻辑备份:对数据库的库或表对象进行备份.

备份策略

1.3 常见的备份方法


2.MySQL完全备份与恢复

2.1 MySQL完全备份

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

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

2.2 数据库完全备份分类

2.3 MySQL物理冷备份及恢复

先关闭数据库,然后打包备份相关数据库文件;

systemctl stop mysqld
cd /usr/local/mysql
tar zcf /opt/mysql_backup_$(date +%Y%m%d) data/
cd /opt/backup/
tar tf mysql_data-2023-06-19.tar.gz     #查看tar压缩包里的数据文件
tar xf mysql_data-2023-06-19.tar.gz    #解压缩tar压缩包里的数据文件

恢复数据库

###远端已备份数据文件主机(IP:192.168.9.210)
cd  /opt
scp mysql_backup_20240619 192.168.9.210:/opt

###需要恢复数据库文件主机(IP:192.168.9.210)
systemctl stop mysqld
cd /opt
tar xf mysql_backup_20240619 
mv /usr/local/mysql/data /usr/local/mysql/data.bak    #将原有的数据库文件移走
mv /opt/data/ /usr/local/mysql/
systemctl restart mysqld   #重新启动数据库服务
mysql -uroot -pabc123    #此数据库密码为之前备份数据库的密码



2.4 mysqldump进行逻辑备份

2.4.1 mysqldump备份数据库

备份指定数据库中的文件:
mysqldump -u用户名 -p密码 数据库名 > 指定路径的绝对路径/数据库名.sql


备份指定数据库和文件:
mysqldump -u用户名 -p密码 --databases 数据库名 > 指定路径的绝对路径/数据库名.sql

备份多个库及文件
mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 > 指定路径的绝对路径/数据库名.sql


备份所有数据库文件:
mysqldump -u用户名 -p密码 --all-databases > 指定路径的绝对路径/数据库名.sql

2.4.2 mysqldump备份数据表

备份指定数据库中的表数据文件:
mysqldump -u用户名 -p密码 数据库名 表名 > 指定路径的绝对路径/数据库名_表名.sql

3. 恢复数据库

3.1 使用source命令恢复数据库

mysql -u root -pabc123; 登录数据库
source /opt/backup/tan1.sql  #使用soure 指定原先库备份的路劲
show  databases;   #查看库



3.2 使用mysql命令恢复数据库


 

3.2.1 重定向方式恢复数据库

3.2.2 管道符方式恢复数据库

3.3 恢复表操作


4.MySQL增量备份与恢复

4.1 二进制日志文件

vim /etc/my.cnf
------------在“server-id”行下面添加mysql数据库的日志信息---------
server-id = 1
---------------------------------------------------------------
#错误日志
log-error=/usr/local/mysql/data/mysql_error.log
#通用查询日志
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
#二进制日志
log_bin=mysql_bin
#慢查询日志
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=2

systemctl restart mysqld
mysql -uroot -pabc123




刷新生成二进制日志文件的两种方式:

(1)重启数据库服务:systemctl restart mysqld; 

(2)flush-logs命令刷新:mysqladmin -uroot -pabc123 flush-logs;



二进制日志(binlog)有3种不同的记录格式:

  • STATEMENT(基于SQL语句):默认格式是STATEMENT。该方式记录语句快,占用内存空间少。但高并发情况下会导致记录日志顺序紊乱,造成恢复数据时发生偏差。
  • ROW(基于行):基于数据内容行进行记录,不仅记录执行的命令语句,还会记录命令影响的相关数据行。
  • MIXED(混合模式):高并发情况下ROW方式进行记录,一般情况下采用STATEMENT方式进行记录。

测试:


systemctl restart mysqld重启

###转换格式,查看指定序列号的二进制数据日志文件
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql_bin.000003
--no-defaults:不使用默认格式进行查看
--base64-output=decode-rows:使用base64密码格式进行转换,-rows:按行进行输出
-v:显示详细输出过程


4.2 实例:完全备份+增量备份恢复数据库

完全备份+增量备份








完全恢复+增量恢复




4.3 断点恢复


4.3.1 基于位置恢复

示例1:只恢复id为8和9内容

示例2:只恢复id为7的内容

示例3:只恢复di为8的内容

4.3.2 基于时间点恢复

示例1:只恢复id为8和9内容

示例2:只恢复id为7的内容

示例3:只恢复di为8的内容

5.如何备份的数据库

通过xtrabackup对所有数据库做完全备份,使用mysqldump针对某个库或者某个表做完全备份,还可以通过二进制或xtrabackup来做增量备份。

标签:恢复,备份,MySQL,mysqldump,mysql,日志,数据库
From: https://blog.csdn.net/2402_83805984/article/details/139793691

相关文章

  • MySQL入门操作 10.0
    本文仅仅为了加强个人记忆,如果要学习建议点击链接去原文学习,参考学习文章:原文链接:https://blog.csdn.net/YRB20/article/details/117999665 触发器:注意上述格式中的on,触发器是作用在相应的表上,要设定自己所需要的表; 示例写法: 与创建存储过程相同,都是要使用:delimiter$$......
  • Linux部署Mysql(服务器)
     远程服务器:CentOS7.6(本地VM也一样)连接:XShell7与Xftp7 1. 下载tar包与准备工作查看系统的glibc版本:(我的是2.17)rpm-qa|grepglibc 官网下载对应的Mysqltar包:https://dev.mysql.com/downloads/mysql/ #查找与mysql相关的软件包......
  • 1950 Springboot汽修技能点评系统idea开发mysql数据库APP应用java编程计算机网页源码m
    一、源码特点 springboot汽修技能点评系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSPjava编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。前段主要技术bootstrap.cssjquery......
  • MySQL 查询数据库响应时长详解
    前言作为一名测试工程师,在性能测试中,查询数据库的响应时长是一个重要指标。MySQL提供了多种方法来监控和优化查询性能。本文将详细介绍如何使用MySQL的内置功能和工具来查询数据库响应时长,并分享一些性能优化的技巧。启用查询日志开启慢查询日志慢查询日志用于记录执......
  • Pgsql数据库之Linux环境备份Windows环境还原
    Pgsql数据库之Linux环境备份Windows环境还原Linux环境备份使用pg_dump备份pg_dump是一个命令行工具,用于备份单个数据库。它可以生成一个SQL脚本文件,该文件包含了重建数据库所需的所有SQL命令。pg_dump-h主机名-p端口号-U用户名-Fc-b-v-fmypg.pgdumpmypg......
  • linux中搭建mysql服务
    下载mysql安装包wgethttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz解压压缩包tar-xvfmysql-5.7.27-linux-glibc2.12-x86_64.tar.gz#移动文件夹mvmysql-5.7.27-linux-glibc2.12-x86_64/usr/local/mysqlmysql用......
  • MYSQL最左匹配原则及其底层逻辑
    目录前言一、最左匹配原则示例1.导入测试数据-索引(a,b,c)2.全值匹配查询3.连续匹配查询​编辑4.不连续匹配查询三、底层原理详解1.MYSQL优化器2.最左匹配原理前言最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>、<、between、like)就会......
  • MySql入门操作集 6.0
    索引与完整性: 就是键之类的,通过键进行索引;看上图存在四种类型:nollnullprimarykeyuniqueforeignkey  对于键的设定可以在创建表的时候就添加相应的键:记得主键只设定一个作为索引吧好像;一般不设定实际意义,只是给他做一个标记作用用于索引其他的书写格式: 使......
  • mysql-connector-java 驱动jar包下載
    地址MySQL::MySQLDownloads,点击网址,进入mysql官网首页,我们点击downloads(下载)然后将页面往下拉,点击如图所画的选择,进入点击Connector/J,表示的java语言连接的数据库驱动器,如果是Python则选择下面Python为后缀的Connector,同理其他语言则选择对应的即可。因为我用的是Java,......
  • MYSQL 数字(Aggregate)函数
    目录1、AVG()2、MAX()3、MIN()4、SUM()5、COUNT()6、LIMIT()1、AVG()解释:返回数值列(字段)的平均值。语法格式:SELECTAVG(column_name)FROMtable_name中文注释:select AVG(数值列/字段)from表名;用法:SELECTAVG(column_name)FROMtable_name2、MAX()解......