Files
progcode/web/public/assets/editorial/2020/backup-recovery-contract-2020.svg
T
huncode 2ffa7a40eb
Build and deploy / deploy (push) Successful in 13s
revise October 2020 backup articles
2026-07-31 11:49:22 +03:00

65 lines
4.8 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" width="720" height="1240" viewBox="0 0 720 1240" role="img" aria-labelledby="title desc">
<title id="title">Контракт учебной резервной копии и восстановления</title>
<desc id="desc">Вертикальная схема из пяти шагов: scope, archive, manifest с checksum, изолированный restore и доказательство результата. Hash проверяет байты, а проверки после restore — смысл результата.</desc>
<defs>
<marker id="arrow" markerWidth="12" markerHeight="12" refX="6" refY="6" orient="auto">
<path d="M1 1 L11 6 L1 11 Z" fill="#3566c8"/>
</marker>
<style>
.title { fill: #14213d; font: 700 34px system-ui, -apple-system, sans-serif; }
.subtitle { fill: #43536f; font: 400 21px system-ui, -apple-system, sans-serif; }
.step { fill: #3566c8; font: 700 22px system-ui, -apple-system, sans-serif; }
.label { fill: #14213d; font: 700 26px system-ui, -apple-system, sans-serif; }
.body { fill: #34435c; font: 400 22px system-ui, -apple-system, sans-serif; }
.note { fill: #51627d; font: 400 20px system-ui, -apple-system, sans-serif; }
</style>
</defs>
<rect width="720" height="1240" fill="#f7f9fc"/>
<rect x="40" y="36" width="640" height="140" rx="24" fill="#e9f0ff"/>
<text x="72" y="88" class="title">Backup contract</text>
<text x="72" y="124" class="title">начинается со scope</text>
<text x="72" y="154" class="subtitle">Учебный путь: archive не равен проверенному restore</text>
<line x1="360" y1="344" x2="360" y2="386" stroke="#3566c8" stroke-width="6" marker-end="url(#arrow)"/>
<line x1="360" y1="524" x2="360" y2="566" stroke="#3566c8" stroke-width="6" marker-end="url(#arrow)"/>
<line x1="360" y1="724" x2="360" y2="766" stroke="#3566c8" stroke-width="6" marker-end="url(#arrow)"/>
<line x1="360" y1="934" x2="360" y2="976" stroke="#3566c8" stroke-width="6" marker-end="url(#arrow)"/>
<rect x="48" y="220" width="624" height="124" rx="20" fill="#ffffff" stroke="#8ba8e8" stroke-width="3"/>
<circle cx="94" cy="282" r="25" fill="#3566c8"/>
<text x="87" y="290" fill="#ffffff" font-family="system-ui, sans-serif" font-size="23" font-weight="700">1</text>
<text x="140" y="271" class="label">Scope</text>
<text x="140" y="304" class="body">catalog + reference</text>
<text x="140" y="330" class="note">Роли, tablespaces и внешние файлы названы отдельно</text>
<rect x="48" y="400" width="624" height="124" rx="20" fill="#ffffff" stroke="#8ba8e8" stroke-width="3"/>
<circle cx="94" cy="462" r="25" fill="#3566c8"/>
<text x="87" y="470" fill="#ffffff" font-family="system-ui, sans-serif" font-size="23" font-weight="700">2</text>
<text x="140" y="451" class="label">Archive</text>
<text x="140" y="484" class="body">Логический dump в известном формате</text>
<text x="140" y="510" class="note">Имя файла не заменяет описание содержимого</text>
<rect x="48" y="580" width="624" height="144" rx="20" fill="#ffffff" stroke="#8ba8e8" stroke-width="3"/>
<circle cx="94" cy="652" r="25" fill="#3566c8"/>
<text x="87" y="660" fill="#ffffff" font-family="system-ui, sans-serif" font-size="23" font-weight="700">3</text>
<text x="140" y="635" class="label">Manifest + checksum</text>
<text x="140" y="668" class="body">Hash сверяет bytes archive</text>
<text x="140" y="696" class="note">Checks заранее называют ожидаемый результат restore</text>
<rect x="48" y="780" width="624" height="154" rx="20" fill="#ffffff" stroke="#8ba8e8" stroke-width="3"/>
<circle cx="94" cy="857" r="25" fill="#3566c8"/>
<text x="87" y="865" fill="#ffffff" font-family="system-ui, sans-serif" font-size="23" font-weight="700">4</text>
<text x="140" y="840" class="label">Isolated restore</text>
<text x="140" y="873" class="body">Только учебный кандидат</text>
<text x="140" y="902" class="note">Источник не перезаписывается и не участвует в пробе</text>
<rect x="48" y="990" width="624" height="154" rx="20" fill="#ffffff" stroke="#5aa37b" stroke-width="3"/>
<circle cx="94" cy="1067" r="25" fill="#26734d"/>
<text x="87" y="1075" fill="#ffffff" font-family="system-ui, sans-serif" font-size="23" font-weight="700">5</text>
<text x="140" y="1050" class="label">Evidence</text>
<text x="140" y="1083" class="body">Relations, schema marker, safe counts</text>
<text x="140" y="1112" class="note">Verdict фиксирует также непокрытые области</text>
<text x="48" y="1194" class="note">Checksum подтверждает bytes. Restore checks подтверждают смысл.</text>
</svg>