备份是给定时间的数据库快照。备份包括三个主要部分:
元数据。 所有数据库表的名称和定义
表记录。 备份时实际存储在数据库表中的数据
交易记录。 一个顺序记录,说明数据如何以及何时存储在数据库中
这些部分中的每一个都保存在参与备份的所有节点上。备份时,每个节点将这三部分保存在磁盘上的三个文件中:
BACKUP-
backup_id
.node_id
.ctl包含控制信息和元数据的控制文件。每个节点将相同的表定义(对于集群中的所有表)保存到该文件的自己的版本中。
BACKUP-
backup_id
-0.node_id
.data包含表记录的数据文件,这些记录是按片段保存的。即不同的节点在备份时保存不同的分片。每个节点保存的文件以标头开头,标头说明记录所属的表。在记录列表之后有一个页脚,其中包含所有记录的校验和。
BACKUP-
backup_id
.node_id
.log包含已提交事务记录的日志文件。只有存储在备份中的表上的事务才会存储在日志中。参与备份的节点保存不同的记录,因为不同的节点承载不同的数据库碎片。
在刚刚显示的清单中,backup_id
代表备份标识符,
node_id
是创建文件的节点的唯一标识符。
备份文件的位置由
BackupDataDir
参数确定。