Mysql -- 完全备份 + 增量备份 + 恢复

文章目录

一、数据库备份的分类

二、MySQL 完全备份

(1)完全备份特点

(2)mysqldump 备份库

1、针对单个库进行完全备份

2、针对多个库进行完全备份

3、对所有库进行完全备份

(3)恢复数据库操作

1、source 命令

2、使用 mysql 命令

(4)mysqldump 备份表

1、备份表

2、备份表的结构

(5)恢复表的操作

三、MySQL 增量备份

一、数据库备份的分类:

1、从物理与逻辑的角度,备份可以分为:

物理备份:对数据库操作系统的物理文件(数据文件、日志文件等)备份;

逻辑备份:对数据库逻辑组件(如表等数据库对象)备份;

2、从数据库的备份策略角度,备份可分为:

完全备份:每次对数据进行完整的备份;

差异备份:备份那些自从上次完全备份之后被修改过后的文件;

增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。

二、MySQL 完全备份:

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

完全备份保存的是对备份完成时刻的数据库;

完全备份是增强备份的基础

(1)完全备份特点:

备份与恢复操作简单方便;

数据存在大量的重复,会导致占用大量的备份空间

备份与恢复时间长

(2)mysqldump 备份库

mysql 数据库的备份可以采取多种方式:

直接打包数据库文件夹;

使用专用的备份工具 ----- mysqldump ;

该命令工具可以将指定的库、表或全部的库导出为 SQL 脚本,在需要恢复时可进行数据恢复。

tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/
//直接对整个数据库的数据文件进行打包,备份,并以时间命名压缩包名称

1、针对单个库进行完全备份:

 mysqldump -uroot -p school > /opt/school.sql
 将名为school的数据库备份到/opt/目录下,起名为school.sql

2、针对多个库进行完全备份:

mysqldump -uroot -pabc123 --databases school team > /opt/db_s_t.sql
 //对school和team这两个数据库进行备份,起名为db_s_t.sql

3、对所有库进行完全备份:

mysqldump -uroot -pabc123 --all-databases > /opt/all.sql
//对所有的数据库进行备份

(3)恢复数据库操作

使用 mysqldump 命令导出的 SQL 备份脚本,在进行数据恢复时可使用两种方法导入:

source 命令

mysql 命令

1、source 命令:

先登录到 mysql 数据库,再执行 source 备份sql脚本的路径。

mysql> source /opt/school.sql;
//恢复school数据库

2、使用 mysql 命令:

 mysql -uroot -pabc123 school < /opt/school.sql
//恢复school数据库

(4)mysqldump 备份表

1、备份表:

mysqldump -uroot -pabc123 school info > /opt/school_info.sql
//对数据库school下的info表进行备份

2、备份表的结构:

 mysqldump -uroot -pabc123 -d school info > /opt/school_info.sql
 //加-d 选项,就是备份表的结构,不备份表内的信息

(5)恢复表的操作

恢复表时,同样可以使用 source 命令 和 mysql 命令 进行,操作与恢复库的操作相同;

需要注意的是:当备份文件中只包含表的备份,而不包括创建库的语句时,必须指定库名,且目标库必须存在。

三、MySQL 增量备份:

增量备份就是备份自上一次备份之后增加或变化的文件或者内容,必须先有完全备份才能进行增量备份。

使用 mysqldump 进行完全备份的存在的问题:

备份数据中有重复数据;

备份时间与恢复时间长;

(1)增量备份的特点:

没有重复数据,备份量不大,时间短;

恢复麻烦,需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要对所有增量备份进行逐个反推恢复。

增量备份依赖二进制日志文件,首先需要开启二进制日志文件:

修改 my.cnf文件,添加:log-bin=mysql-bin

mysqladmin -uroot -pabc123 flush-logs
//刷新所有日志

(2)MySQL 数据库增量恢复方法:

1、例如,对数据库进行了以下操作:

 insert into info (id,name,score) values (7,‘wang‘,33);
 //插入一条信息
 delete from info where name=‘jack‘;
 //删除一条信息;
insert into info (id,name,score) values (10,‘qian‘,44);
//再插入一条信息

2、查看日志文件:

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

方法一:一般恢复

命令:

mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u 用户名 -p

方法二:基于位置恢复

将某个起始时间的二进制日志导入数据库中,从而跳过某个发生错误的时间实现数据的恢复。

1、恢复数据到指定的位置:

mysqlbinlog --no-defaults --stop-position=‘293‘ /usr/local/mysql/data/mysql-bin.000005 | mysql -u root -p

2、从指定的位置开始恢复数据:

mysqlbinlog --no-defaults --start-position=‘396‘ /usr/local/mysql/data/mysql-bin.000005 | mysql -u root -p

方法三:基于时间点恢复

使用基于时间点的恢复,可能会出现在一个时间点里既同时存在正确的操作又存在错误的操作,所以我们需要一种更为精确的恢复方式。

1、从日志开头截止到某个时间点的恢复:

 mysqlbinlog --no-defaults --stop-datetime=‘2020-01-14 17:56:36‘ /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p

2、从某个时间点到日志结尾的恢复:

 mysqlbinlog --no-defaults --start-datetime=‘2020-01-14 17:57:03‘ /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p

3、从某个时间点到某个时间点的恢复:

原文地址:https://blog.51cto.com/14557584/2468477

时间: 2024-10-22 12:55:32

Mysql -- 完全备份 + 增量备份 + 恢复的相关文章

MySQL 备份和恢复(三)Xtrabackup实现热备:完全备份+增量备份

Percona XtraBackup is the world's only open-source, free MySQL hot backup software that performs non-blocking backups for InnoDB and XtraDB databases. With Percona XtraBackup, you can achieve the following benefits: Backups that complete quickly and

mysql全备份 + 增量备份

mysql全备份 + 增量备份 配置文件: 管理mysql配置文件,打开binlog日志 对于mysql数据库: log_bin = /var/log/mysql/mysql_bin.log server-id = 1(必须有,否则重启fail) 对于mariadb数据库: log_bin = /var/log/mysql/mysql-bin.log 修改配置文件后需要重启mysql服务: service mysql restart | /etc/init.d/mysql restart 可登陆

MySQL数据库备份:完全备份+增量备份

MySQL数据库备份:完全备份+增量备份 ************************************************************************************** 计划任务: crontab -e  -u root 00 6  * * 1  /shell/mysqlbak.sh &> /dev/null 00 23  * * 2-7  /shell/mysqladd.sh &> /dev/null **************

mysql 利用binlog增量备份,还原实例

mysql 利用binlog增量备份,还原实例 张映 发表于 2010-09-29 分类目录: mysql 一,什么是增量备份 增量备份,就是将新增加的数据进行备份.假如你一个数据库,有10G的数据,每天会增加10M的数据,数据库每天都要备份一次,这么多数据是不是都要备份呢?还是只要备份增加的数据呢,很显然,我只要备份增加的数据.这样减少服务器的负担. 二,启用binlog vi my.cnf log-bin=/var/lib/mysql/mysql-bin.log,如果是这样的话log-bin

MySQL 利用binlog增量备份+还原实例

一,什么是增量备份 增量备份,就是将新增加的数据进行备份.假如你一个数据库,有10G的数据,每天会增加10M的数据,数据库每天都要备份一次,这么多数据是不是都要备份呢?还是只要备份增加的数据呢,很显然,我只要备份增加的数据.这样减少服务器的负担. 二,启用binlog vi my.cnf log-bin=/var/lib/mysql/mysql-bin.log,如果是这样的话log-bin=mysql-bin.log默认在datadir目录下面 [[email protected] mysql]

完全备份+增量备份完成即时点还原

完全备份+增量备份完成及时点还原 首先是一些感念 备份类型: 热备份,温备份,冷备份 热备份;读写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份,读,写操作均终止: 物理备份和逻辑备份 物理备份:复制数据文件 逻辑备份:将数据导出至文本文件中. 完全备份,增量备份和差异备份: 完全备份:备份全部数据 增量备份:仅备份上次完全备份或者增量备份以后变化的数据: 差异备份:仅备份上次完全备份以来变化的数据: 备份策略:每周完全+每日增量 完全备份;mysqldump 增量备份;备份二进制日志

xtrabackup完全备份增量备份以及恢复

一.安装 1.配置Yum源 rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm 2.安装 yum install xtrabackup -y 二.修改Mysql主配置文件 my.cnf(根据编译安装的参数进行设置,RPM安装可省略) [mysqld] datadir=/data/mysqldb basedir=/usr/local/mysql/ 三.开始备份 1.完全

mysql全备份+增量备份笔记总结

备份基础知识 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行: 温备(warm backup): 服务在线,但仅支持读请求,不允许写请求: 热备(hot backup):备份的同时,业务不受影响. 这种类型的备份,取决于业务的需求,而不是备份工具 MyISAM不支持热备,InnoDB支持热备,但是需要专门的工具 完全备份:full backup,备份全部字符集. 增量备份: incremental backup 上次完全备份或增量备份以来改变了的数据,不能单独使

linux mysql 物理备份-增量备份

大家好,我是霸王卸甲,今天给大家带来的是数据库中的物理备份,物理备份又包括增量备份和差异备份,今天要讲的是增量备份!!!!!!! 物理备份 + binlog 准备工作:PERCONA XtraBakuo它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份.它不暂停服务创建Innodb热备份:为mysql做增量备份:在mysql服务器之间做在线表迁移:使创建replication更加容易:备份mysql而不增加服务器的负载.percona是