65 lines
4.8 KiB
XML
65 lines
4.8 KiB
XML
<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>
|