InnoDB引擎在使用页面压缩时,严重依赖于文件系统稀疏文件支持。InnoDB页面压缩。
它提出了这样一个问题:如何处理InooDB中的稀疏文件
--backup--prepare--copy-back行动?
假设我们总共有100 G InnoDB表(ls报告100 G,du报告0.5G)。提出以下问题:
--backup时,备份本身会在目标dir中稀疏吗?--prepare时,结果会是稀疏的吗?--copy-back时,结果是稀疏的cp --sparse=always而不是mariabackup --copy-back ...来纠正这种行为吗?或者这不是那么简单.发布于 2023-01-26 14:17:07
mariabackup识别页面压缩文件,每当它复制页面时,它
lseek)向前推进到目标文件中页面的末尾,也就是说,它“跳过”将是二进制零的内容。这个逻辑封装在这一功能中,它适用于--backup和--copy-back (每当mbstream“解包”流时)。
人们可以认识到,这是一种相同的技术--在文件末尾写东西,这是Unixes多年来为获得稀疏文件而使用的技术。
令人惊讶的是,对于旧的Unix有效的东西,现在并不需要对所有的文件系统起作用,显然,这个逻辑似乎破坏了XFS。
当然,您可以自己“稀疏”文件,使用任何在文件中穿孔的工具。
PS。mariabackup的--prepare相当于启动服务器进行崩溃恢复,因此每当-准备写入数据文件时,它使用通常的服务器逻辑,穿孔。
PPS。mariabackup --backup --stream确实会将二进制零写入stdout,因此建议使用任何通用压缩工具(gzip,7zip)来将这些零从流中删除。
https://dba.stackexchange.com/questions/322605
复制相似问题