在这篇文章中,我们将描述的改进雷竞技下载官网Percona XtraBackup 8.0.33-28(PXB),大大减少了时间准备前的备份恢复操作。这个改善Percona XtraBack雷竞技下载官网up显著减少所需的时间为一个新节点加入雷竞技下载官网Percona XtraDB集群(PXC)。
雷竞技下载官网Percona XtraDB集群使用Percona XtraBackup做SST(状态快照转移)从一个节点到另一个地方。当一个新的节点加入集群,SST执行从捐赠者JOINER接收数据。木工使用PXB流数据目录从捐献者。乔伊纳在使用它之前必须做好备份。可以看出当捐赠大量的表空间(一百万),XtraBackup工匠一边无法完成准备数据(XtraBackup准备)。
雷竞技下载官网Percona XtraBackup InnoDB数据文件副本。内部数据是不一致的,因为服务器并发修改数据文件时被复制。雷竞技下载官网Percona XtraBackup对文件执行崩溃恢复一致,可用的数据库。这就是所谓的“准备”操作(xtrabackup准备)。
的XtraBackup准备操作在两个阶段:
- 重做日志应用
- Undo日志应用
在重做应用阶段,修改重做日志文件的更改应用到一个页面。这一阶段没有一行或一个事务的概念。重做应用阶段不会使对事务数据库一致。所做的更改就可以刷新一个未提交的事务或写入重做日志的服务器。XtraBackup仍然适用的修改重做日志记录,和重做日志应用阶段不撤销这些变化。为此,我们必须使用undo日志。
在undo日志应用阶段(即回滚阶段),更改需要撤销事务从undo日志页面读。然后应用(例如,写旧值回来)的页写到磁盘上。在这个阶段,所有在备份回滚未提交的事务。
Undo日志记录有两种类型:插入Undo日志记录和更新Undo日志记录。删除的记录被认为是子类型的更新UNDO日志记录。
格式如下所示:

当服务器写这些记录,不写以及每条记录的索引/表信息。只是写一个“table_id”作为UNDO日志记录的一部分。table_id用于获取表模式。表模式和关键字段的undo日志记录被用来创建一个索引搜索元组(关键)。这个搜索元组(关键)是用于查找记录执行撤销操作。
所以,给定一个table_id,如何让表模式/定义呢?
在“数据字典”(DD)引擎和弟弟缓存服务器上初始化,存储引擎可以要求表定义。例如,InnoDB表定义基于table_id问道,也被称为“se_private_id”。
雷竞技下载官网Percona XtraBackup服务器不同,没有进入“数据字典”(DD)。初始化一个DD引擎缓存增加了复杂性和其他服务器的依赖关系。XtraBackup并不仅仅像一个服务器来访问一个表对象。
发现为什么rayben雷竞技 由成千上万的企业信任。
雷竞技下载官网Percona XtraBackup InnoDB引擎初始化,需要“InnoDB表对象”又名dict_table_t,所有它的目的(回滚,出口,等等)。XtraBackup依赖序列化字典信息(SDI)。这是一个表的JSON表示。InnoDB表空间的信息存储在表空间内。从8.0,IBD文件是“描述”;例如,表模式可在一个IBD文件。

让我们看一下示例表。
|
1
|
创建
表
test.t1 (
INT
主键,b
INT);
|
CREATE TABLE语句创建了一个名为t1的文件。炎症性肠病在测试目录。例如,mysql datadir /测试/ t1.ibd。所以t1。ibd包含的表结构信息(列,它们的类型、多少个索引列索引,外键,等等)SDI。使用工具称为“ibd2sdi”提取SDI IBD的文件。
|
1
|
ibd2sdi
数据
/
测试
/
t1
.ibd
>
t1
.sdi
|

从上图可以看出,表名在“dd_object:名称”字段,和列信息存储在一个数组“dd_object:列”。

老设计(直到Percona Xtra雷竞技下载官网Backup 8.0.33-27):

XtraBackup读取SDI *每一个* IBD和加载所有表从每个IBD non-evictable到缓存。基本上LRU non-evictable通过加载表缓存是禁用的。每个表保持在内存中,直到XtraBackup退出。
问题的方法:
- 加载表不需要回滚。
- 不必要的IO操作从阅读SDI页的表。
- 加载不必要的表增加准备所需的时间。
- 占用内存和伯父。
- 崩溃XtraBackup准备操作如果备份目录包含大量的表/ IBD文件。
- 节点加入PXC集群需要更多的内存,需要很长时间加入集群。
为什么XtraBackup负载表“non-evictable”?我们不能加载它们时项来解决这个问题吗?假设一个表是驱逐和再次加载。XtraBackup如何知道包含驱逐表的表空间(IBD) ?它必须每IBD再次找到驱逐表扫描。
新设计(从Percona Xtra雷竞技下载官网Backup 8.0.33-28)
加载表项,table_id和表空间之间的关系(space_id)包含表应该建立。它是通过扫描的b -树页mysql数据字典表。索引和mysql.index_partitions
在这个关系table_id→space_id建立,它将使用事务回滚。在这个新的设计,加载用户表只有一个事务回滚。
新的设计如下:

表从缓存中驱逐,当达到缓存大小限制或背景掌握线程。
新设计的好处,xtrabackup准备:
- 使用更少的内存
- 使用更少的输入输出
- 更快的准备
- 成功完成即使有大量的表。
- 一个节点完成对海温过程更快,迅速加入PXC集群。
- 一个节点加入PXC集群需要较少的内存。
基准



xtrabackup准备备份目录等大小10 k, 50 k, 100 k, 250 k表。性能改进如下:


结论
如您所见,从Percona XtraBac雷竞技下载官网kup 8.0.33-28, XtraBackup准备与字典缓存速度和记忆效率。表空间文件的改善取决于(ibd)备份目录。所花费的时间一个新节点加入PXC集群也显著降低对海温过程将完成得更快。
雷竞技下载官网Percona XtraBackup 100%开源所有版本的备份解决方案Percona MySQL服务器和MySQL执行网络阻塞,紧紧地压缩,在事务性系统高度安全的完整备份。




