当前位置:正文

有哪些备份规则,如何恢复备份

发布日期:2025-01-03 17:25    点击次数:93
备份模式全量+增量:代码备份默认支持全量+增量模式,以提升备份速度,节约备份空间;归档和清理:备份数据每隔七天会自动归档,用户可根据自身情况决定是否清理历史归档,释放存储空间,节约OSS存储成本;全量备份全量备份即对当前的仓库进行全量的备份,备份内容包含仓库的全部引用和全部对象,所以全量备份通常耗时较长。备份成功后, 用户可以从 OSS 下载对应的全量备份文件,并轻松的恢复成一个 Git 仓库, 更多关于恢复的介绍请看后文。默认地, 当仓库第一次备份时, 因为OSS上没有任何历史的备份存在,Codeup 将进行一次全量备份。例如, 一个企业仓库路径叫做 alibaba/codeup.git, 当对其进行全量备份成功后, OSS 上存储的备份文件和路径如下:根据OSS控制台的截图, 我们来对存储的存放问题进行详细介绍:存储路径:企业下的所有备份(归档除外)都将存储在OSS Bucket下的名为repositories目录下(截图中蓝框开头), 仓库备份文件的存储路径格式为 /repositories/<企业仓库路径>/<仓库UUID>,其中:第一级路径/repositories: 所有企业的仓库备份的根路径第二级路径<企业仓库路径>:企业仓库的路径,例如本例中为alibaba/codeup第三级路径<仓库UUID>: 企业仓库的唯一标识值备份相关文件备份文件名格式: 一次仓库备份将生成并上传多个文件, 这些文件有统一的文件前缀名称,但不同的文件后缀, 例如上图示例中备份共生成了4个文件, 其中文件前缀名称为"alibaba_codeup-full-20210223094414", 而文件后缀名各不相同.bundle文件:bundle文件是备份文件中最核心的文件,用户可以根据bundle文件将仓库备份还原为一个Git仓库,bundle文件后缀为".bundle".list文件: list文件为备份时刻仓库ref信息的汇总记录,对比不同的list文件,可以轻松的查看两次备份间隔仓库ref发生的变化(更新、新增或删除).checksum文件:checksum文件为备份时刻仓库数据的checksum值, 用户无需关注.lsremote文件: lsremote文件为备份后针对bundle文件的ls-remote信息记录,用户无需关注增量备份增量备份对比全量备份稍复杂,具备在备份的空间占用上通常更小,执行速度更快的特点。每当 Codeup 检测到在当前 /repositories/<企业仓库路径>/<仓库UUID> 下存在历史备份时,备份策略都会选择使用增量备份而非全量备份。仓库有更新的增量备份场景假设,当前仓库备份存在一次历史的全量备份文件,在第二次触发仓库备份之前,我们向仓库的某一分支做了新的代码推送。 随后触发一次新的仓库备份,因为仓库存在update,将对仓库进行增量备份, 如下图:根据OSS控制台的截图, 我们来对应介绍:存储路径: 增量备份的存储路径与全量备份的存储位置并无差别,仓库备份文件的存储路径格式仍为 /repositories/<企业仓库路径>/<仓库UUID>, 新的备份文件:# 产生4个增量备份文件,序号为1(在文件名中有所体现),分别为: alibaba_codeup-inc-1-20210224074738.bundle alibaba_codeup-inc-1-20210224074738.checksum alibaba_codeup-inc-1-20210224074738.list alibaba_codeup-inc-1-20210224074738.lsremote备份相关文件介绍:备份文件名格式: 增量备份与全量备份类似,文件类型与全量备份的文件类型相同,差异在备份文件的命名上,全量备份文件的标识为full, 而增量备份文件标识为inc-<order>, 其中<order> 代表增量的次数序号。文件名称的差别,可以让我们清楚的区分备份的类型是全量的还是增量。仓库无更新的增量备份场景如果在仓库没有产生新的更新的情况下, 即没有更新的版本提交推送或者只有删除ref的操作(例如删除分支),当触发仓库增量备份后, 不会产生.bundle和.lsremote文件。根据OSS控制台的截图, 我们来对应介绍:# 产生3个增量备份文件,序号为2(因为本次为第二次增量备份),分别为: alibaba_codeup-inc-2-20210224082031.bundle.log alibaba_codeup-inc-2-20210224082031.checksum alibaba_codeup-inc-2-20210224082031.list备份相关文件介绍:*.bundle.log文件: 因为仓库没有更新,所以本次增量备份不会产生.bundle和.lsremote 文件。但会代替产生一个.bundle.log 文件,文件中记录了此次备份没有产生.bundle文件的原因:# alibaba_codeup-inc-2-20210224082031.bundle.log 文件 内容如下: fatal:Refusing to create empty bundle.文件内容的含义为,因为仓库没有更新,不会创建bundle文件。虽然不会创建bundle文件,但是本次增量备份仍然是成功的, 因为可能存在ref被删除的情况,这种情况下可以通过对比与上一次备份的.list的差异便可以追溯。



Powered by Realio Network 中文站 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024