mysql增量备份(mysql增量备份用什么做)

本篇文章给大家谈谈mysql增量备份,以及mysql增量备份用什么做对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

MySQL的备份与还原,非常规备份,全量备份,增量备份

1:官方百万级别的测试数据库:

官方测试数据库github网址:

下载到目录,解压即可,运行命令:

2:自己创建简单测试数据库:

快速随机生成测试语言的网站:

选择sql和想生成的字段,点击生成Generate!生成即可。

在MySQL输入生成的语句即可。

3:测帆升试备份还原时用到的命令

删库跑路测试(先备份好)

还原后查询库的表数据是否完整。

采用复制整个数据存放目录

1:查看数据库数据存放位置

有两种方法:

1):在数据库中用命令 show variables like 'datadir'; 查看

2):在配置文件中查看,配置了 datadir 目录的可查看。没有配置的默认为 /var/lib/mysql/ 位置

Linux中查看配置文件

2:复制目录或者目录下某个数据库名

3:还原时直接复制文件夹到数据库目录即可

mysqldump又可叫做全量备份。

参数 --databases 同 -B ,单独一个库,也可省略。

1、备份命令mysqldump格式

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 database 数据库名 文件名.sql

备份testDatabase数据库

2、备份MySQL数据库为带删除表的格式

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

3、直接将MySQL数据库压缩备份

备份并压缩

4、备份MySQL数据库某个(些)表

备份testDatabase中的myTable表,不需要用参数 --databases 或者 -B

5、同时备份多个MySQL数据库

同时备份testDatabase和 employees两个库

6、备份服务器上所有数据库

参数 --all-databases 同 -A

7、还原MySQL数据库的命令

1) 不指定数据名还原,默认生成原数据库名称,还原所有数据库。

2) 指定数据名还原,还原指定单个数据库,需在数据库种预先创建一个testDatabase名称。

3) 还原压缩的MySQL数据库

4) 进入数据库用source导入

增量备份是针对于数据库的bin-log日志进行备份的,增量备份是在全量的基础上进烂轿察行操作的。增量备份主要是靠mysql记录的bin-log日志。

1:查看是否开启bin-log日志

进入mysql输入命令可查看。

显示如下为开启状态,日志文件在/var/lib/mysql/以binlog.00001的格式保存。

如未开启,需要在配置文件种配置

2:查看目前使用的bin-log日志文件

进入mysql查看命令。

显示如下,目前使用的是binlog.000022文件,所有操作都记录在此文件。

查看当前testDatabase的表myTable数据如下,

3:刷新日志,使用新的日志文件(备份)

在命令端执行命令

日志文件从 binlog.000022 变为 binlog.000023

这时相当与已经备份成功,备份文件即为上次的binlog.000022日志文件。饥茄

4:删除数量,从日志还原数据

1) 删除ABC行

查询以及没有ABC行列。

2) 恢复数据ABC行

退出mysql,在命令端用mysqlbinlog命令恢复到binlog.000022日志状态。

进入数据库再次查看数据,ABC已经恢复。

增量备份完成。

[img]

基于Xtrabackup8的Mysql定时全量,增量备份及恢复实战演练

所有mysql实例皆为MYSQL8版本,使用的Xtrabackup备份组件为xtrabackup8.

生产mysql使用基于percona的分支,相对于原版升简mysql多了一些性能调教和监控视图,版本为:percona-server-server-8.0.22,备份相关工具对mysql8的官方版本也是完全兼容的.percona的分支相关信息:

生产环境mysql一共3个实例,使用MGR组成集群以实现灵活的高可用与读写分离.并由前置的proxysql进行数据的路由与转发.

模拟故障为:在生产环境mysql8 的MGR集群完全不可用,有前一天的Xtrabackup全量备份和增量备份,需要从之前的全量和增量备份完整恢复到故障最近的时间点.本次闹兆故障恢复的要求是读取前一天的所有增量和全量数据并恢复.快速重组生产MGR集群.

在这里会用ansible脚本快速搭建3个mysql实例,以模拟生产环境(略过).

backup_func.sh :

策略是每天的0:30做一次全量备份,之后每两个小时的半点会做一次增量备份.

注: 本次恢复属于完整的生产环境集群恢复,下面的 获取备份文件 , 准备备份 , 开始恢复 相关流程,需要在每一台服务器上执行,实际操作中,如果只需要恢复并查看数据则只做一个点就可以了.

这里取的是前一天的打过包的备份文件,根据备份脚本的规则,每天凌晨的全量备份之前,会自动将前一天的全量备份和增量备份目录全部打包并以前一天的日期命名:

20210609.tar.gz

将其scp到待恢复的服务器上并解压:

解压后的目录结构:

确保需要恢复的服务器有mysql实例,xtrabackup8工具已安装,由于备份是经过压缩的,确保qpress也已安装.

由于备份脚本在备份时使用了 --compress 指令,在恢复备份前,需要先解压缩备份,

这里将所有增量和全量备份路径均执行一下解压缩指令:

在同时存在全量和增量备份需要合并的情况下,准备备份时需要带上 --apply-log-only 参数,但是要注意在准备最后一个增量备份的时候,不需要加该参数.

以上操作会将所有的增量备份合并到全量备份中.

根据各自安装时指定的相关路径去删除数据.(data,binglog,logs,undolog),一般在my.cnf中有指定

如果my.cnf不是在默认路径(/etc/my.cnf),需要指定一下mysql配置文件的路径: --defaults-file=${DB_CONF}

至此,备份数据在单节点上的恢复已经完成了.

查看下最后一份增量备份里才会有的一些数据

先确吵弯裤保同样的mysql恢复操作分别在三台服务器上执行完成.(如果在新建服务器上恢复MGR集群,一定要检查my.cnf中MGR集群相关配置,比如 loose-group_replication_local_address , loose-group_replication_group_seeds , loose-group_replication_start_on_boot )

master节点启动:

MGR的三台节点的权重实际上是一样的,选择其中的一台做master即可.

mster节点启动完成后,再分别在两台slave节点启动MGR:

由于3台mysql实例的数据是一样的,节点间状态同步迅速就OK了.

至此,3台mysql的MGR状态均为 online ,整个集群启动完成,全演练流程结束.

有哪些mysql数据库容灾备份方案推荐?

以mysql为列:

规划容灾备份时,有两个参考依据,1:恢复点目标(PRO),2:恢复时间目标(RTO)。他们定义了可以容忍丢失多少数据,以及恢复数据需要多少时间。而且一定要走出一个误区,复制就是备份,只有备份才能满足滑中滑备份的要求。

个人认为备份方案类型如下:

1:在线备份或者离线备份,通常关闭mysql做离线备份是最简单最安全的,服务器不提供应用访问服务,可以更快完成备份,但是,这样会导致服务中断,同时,重启mysql也需要一定的时间成本,对于已经上线的系统,基本不可取。在线备份的最大一个问题是,mysql可能锁住大量的表,除非锁被释放,否则会有大量的io请求被阻塞。

综上所述,我们在规划备份的时候需要考虑一下几点:

a:锁时间。

b:备份时间。

c:备份负载对服务器的影响有多大。

d:恢复备份时间需要多久。

2:逻辑备份还是物理备份。

(1):逻辑备份有以下优点:

a:逻辑备份文件恢复非常简单。只需要使用mysqlimport即可。

b:在我们只想查看数据,不想恢复的时候可以使用grep或者sed命令查看。

c:逻辑备份与存储引擎没有关系,我们可以跨存储引擎恢复数据,比如:从InnoDB表中备份,用很小的工作量就可以把数据恢复到MyISAM中。

逻辑备份也会有以下缺点:

a:必须有数据库服务器完成备份工作,增加服务器工作负荷。

b:逻辑备份文件某些场景比数据库本身文件还大。

c:无法保证导入导出的数据是一样的,比如浮点型数据。

d:恢复的时候需要重建索引,速度会慢。

(2):物理备份有以下优点:

a:基于文件的物理备份,只需要培郑复制操作到目标目录即可。

b:恢复的时候只需要将文件copy到要恢复的目录即可。InnoDB可能需要停止服务和其他一些操作。

c:物理备份中恢复速度块,而且容易垮平台和操作系统和mysql数据库版本。

物理备份信腊也会有以下缺点:

a:文件名大小写敏感,浮点格式数据可能会遇到麻烦。

b:物理备份通常包含很多未使用的空间。

3:增量备份和差异备份。增量备份和差异备份只是局部备份,主要是思想就是不备份没有改变的表,但是会减少服务器的开销,备份时间等。

4:二进制日志备份。通常数据小,我们可以频繁的备份,同时,基于时间点的恢复,二进制日志备份是一个很有效的手段。

5:文件系统快照,通过创建镜像达到恢复的目的。

对于一个好的开发人员来说,有好的备份容灾规划和计划是必不可少的。这样可以提高我们在线系统的持续运行能力。更好的服务我们系统的用户。我个人最喜欢的备份方式就是从文件系统快照中直接复制数据文件。

以上是个人的见解,希望对你有一定的帮助。谢谢。

关于mysql增量备份和mysql增量备份用什么做的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表