Резервні копії та резервний майданчик
Резервні копії Windows Server: wbadmin, розклад і restic із VSS
Зміст статті
Для адміністратора, який тримає на виділеному сервері з Windows Server облікову систему, віддалені робочі столи або файли. У підсумку матимете образ системи для відновлення «на голе залізо», версії файлів і вивантажень баз за розкладом, а ще перевірите відновлення на практиці.
Що вміє Windows Server Backup і де його межі#
Windows Server Backup — вбудований компонент Windows Server 2016–2025 із графічною консоллю та утилітою командного рядка wbadmin. Він спирається на службу тіньового копіювання томів (VSS): на час копіювання Windows робить миттєвий знімок тому, тож відкриті файли потрапляють у копію в узгодженому стані, а користувачам не треба виходити із системи.
| Що копіюємо | Параметр wbadmin | Що всередині |
|---|---|---|
| Копія «на голе залізо» (bare metal) | -allCritical | Усі критичні томи, тобто ті, де містяться операційна система та її стан. З такої копії сервер відновлюють на порожні диски із середовища відновлення Windows (WinRE). |
| Стан системи | -systemState | Реєстр, завантажувальні файли, а на контролері домену ще й Active Directory і SYSVOL. Даних користувачів тут немає. |
| Томи, папки, файли | -include:D:\Shares,D:\Dumps | Робочі дані: спільні папки, вивантаження баз. |
Обмеження, про які варто знати до налаштування:
- У мережевій папці зберігається лише остання версія. Нова копія того самого сервера в ту саму папку перезаписує попередню. Microsoft попереджає: якщо копіювання обірветься, можна лишитися взагалі без копії, — і радить класти копії в окремі підпапки. Кілька версій зберігається лише на локальному диску чи томі, але він розташований у тому самому сервері.
- Розклад
wbadmin enable backup— лише щоденний, у задані години. Диск, який ви вкажете як ціль розкладу, буде відформатовано. - Копії не шифруються, тож доступ до папки з ними треба обмежити.
- Бази даних. MS SQL Server має власний VSS-компонент, тож його бази потрапляють у знімок узгодженими. PostgreSQL такого компонента не має: для нього знімок — те саме, що раптове вимкнення живлення. В обох випадках основою лишаються вивантаження засобами самої СУБД — див. «Резервні копії баз даних».
Звідси практична схема: образ системи робить wbadmin, версії файлів і вивантажень баз зберігає restic, а третю копію ви тримаєте поза сервером.
Що знадобиться#
- Windows Server 2016 або новішої версії та обліковий запис із групи Administrators. Ліцензування в статті не розглядаємо.
- Місце для копій поза дисками сервера. До серверів United Cloud входить місце для резервних копій на окремому сховищі, яке не залежить від сервера: 500 ГБ на лінійках Стандарт, Бізнес, Потужність і Ультра, 100 ГБ на Класик; на Лайт його немає, для Турбо дивіться картку сервера. Розширити сховище до 10 ТБ можна як платну опцію через підтримку. Самостійно копій воно не робить: копіювання налаштовуєте ви.
- Значення в прикладах умовні: сервер
SRV01,C:— система,D:\Shares— файли,D:\Dumps— вивантаження баз;HOST,NAMEіPASSWORD— ім’я хоста, назва сховища (вона ж логін) і пароль із листа підтримки. - Команди
wbadmin,schtasksтаicaclsвиконуйте в командному рядку (cmd), запущеному від імені адміністратора: PowerShell розбиває списки через кому на окремі аргументи.
Як підключити сховище#
Сховище працює з NFS (лише версії 3), SMB (лише версії 2.0), FTP і FTPS. wbadmin пише тільки на локальний том або в спільну папку за UNC-шляхом, тож у Windows сховище підключають по SMB, а шлях до нього має вигляд \\HOST\NAME. Версію протоколу Windows узгоджує автоматично. FTP для wbadmin і restic не підходить, FTPS знадобиться хіба що для ручного перенесення файлів.
- Попросіть підтримку додати IP-адресу сервера до списку доступу сховища й надіслати параметри підключення. З інших адрес, зокрема з офісу, сховище недоступне. Пароль теж змінює підтримка.
- Перевірте доступ у командному рядку від імені адміністратора (зірочка — запит пароля):
Щоб сховище з’явилося в Провіднику як диск, виконайте в PowerShell
net use \\HOST\NAME /user:NAME * dir \\HOST\NAMENew-PSDrive -Name B -PSProvider FileSystem -Root \\HOST\NAME -Credential NAME -Persist. Але в командахwbadminі restic вказуйте повний шлях: мережеву цільwbadminприймає лише як UNC-шлях, а літера диска й підключенняnet useіснують тільки у вашому сеансі.
З однієї IP-адреси до сховища може бути не більше трьох одночасних з’єднань, тож не запускайте кілька копіювань водночас.
Крок 1 Установіть компонент#
У PowerShell від імені адміністратора:
Install-WindowsFeature Windows-Server-Backup
Get-WindowsFeature Windows-Server-BackupДруга команда має показати стан Installed.
Крок 2 Зробіть першу копію вручну#
wbadmin start backup -backupTarget:\\HOST\NAME -allCritical -systemState -vssCopy -user:NAME -password:PASSWORD -quiet- Копія з’явиться в папці
WindowsImageBackup\SRV01на сховищі. Параметри-user:і-password:передають логін і пароль сховища. - Параметр
-vssCopy(типовий режим) не чіпає журналів застосунків.-vssFullвмикайте лише тоді, коли бази на цих томах не копіює жодна інша програма: інакше, попереджає Microsoft, можна зламати її ланцюжок інкрементних чи різницевих копій.
Крок 3 Налаштуйте розклад#
Щодня — wbadmin enable backup#
Увага. Якщо в
-addtargetвказати не мережеву папку, а диск, Windows відформатує його, і всі дані на ньому зникнуть. Перед запуском перевірте ціль; диски та їхні ідентифікатори показуєwbadmin get disks. Розклад скасовуєwbadmin disable backup, але даних на відформатованому диску це не поверне.
Параметри -user і -password передають логін і пароль сховища. За документацією Microsoft, цей користувач має входити до групи Administrators або Backup Operators на самому сервері; якщо wbadmin відмовляється приймати логін сховища, перевірте доступ командою net use з розділу вище і зверніться до підтримки. Увімкніть розклад у cmd:
wbadmin enable backup -addtarget:\\HOST\NAME -schedule:02:30 -allCritical -systemState -vssCopy -user:NAME -password:PASSWORD -quietЧас у -schedule — за годинником сервера; кілька запусків на добу записують через кому: 02:30,14:30. Поточні налаштування показує wbadmin enable backup без параметрів. Якщо підтримка змінить пароль сховища, вимкніть розклад і ввімкніть його знову з новим паролем.
Інша періодичність — Планувальник завдань#
Система змінюється рідше, ніж дані, тож образ часто досить робити раз на тиждень. Такого розкладу wbadmin не підтримує, тому створіть завдання замість щоденного розкладу (якщо його вже ввімкнено, спершу виконайте wbadmin disable backup):
schtasks /create /tn "WSB weekly image" /sc weekly /d SUN /st 03:00 /ru SYSTEM /rl HIGHEST /tr "wbadmin start backup -backupTarget:\\HOST\NAME -allCritical -systemState -vssCopy -user:NAME -password:PASSWORD -quiet"Завдання працює від імені SYSTEM і підключень вашого сеансу не бачить, тож логін і пароль сховища доводиться вписати в команду, і в завданні вони зберігаються відкритим текстом. Якщо це неприйнятно, лишіть щоденний розклад.
Крок 4 Версії файлів і вивантажень баз: restic із VSS#
restic шифрує копії, зберігає лише змінені блоки й тримає стільки версій, скільки ви задасте; на жовтень 2026 року остання версія — 0.19.1. У Windows параметр --use-fs-snapshot змушує його читати файли з VSS-знімка, тож у копію потрапляють і ті, що заблоковані іншими програмами. Для цього потрібні права адміністратора. Для Linux є окрема стаття.
- Завантажте
restic_0.19.1_windows_amd64.zipзі сторінки випусків, на яку веде документація restic, звірте контрольну суму (Get-FileHash) з файломSHA256SUMS, розпакуйте архів і збережіть програму якC:\Program Files\restic\restic.exe. - Створіть папку
C:\Scripts, а в ній два файли по одному рядку:restic-password.txtіз довгим випадковим паролем репозиторію (латинські літери й цифри) іstorage-password.txtз паролем сховища. Залиште доступ до папки тільки для SYSTEM та адміністраторів:Пароль репозиторію збережіть ще й поза сервером: без нього репозиторій не відкриєте.icacls C:\Scripts /inheritance:r /grant:r "*S-1-5-18:(OI)(CI)F" "*S-1-5-32-544:(OI)(CI)F" - Збережіть скрипт
C:\Scripts\restic-backup.ps1. Він підключає сховище (завданню від імені SYSTEM підключення вашого сеансу недоступні), робить знімок і лишає 14 щоденних, 8 щотижневих і 12 щомісячних версій;--pruneзвільняє місце, яке займала решта:$restic = 'C:\Program Files\restic\restic.exe' $env:RESTIC_REPOSITORY = '\\HOST\NAME\restic' $env:RESTIC_PASSWORD_FILE = 'C:\Scripts\restic-password.txt' $smb = Get-Content 'C:\Scripts\storage-password.txt' net use \\HOST\NAME /user:NAME $smb | Out-Null & $restic backup D:\Shares D:\Dumps --use-fs-snapshot --tag daily if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } & $restic forget --keep-daily 14 --keep-weekly 8 --keep-monthly 12 --prune exit $LASTEXITCODE - У PowerShell від імені адміністратора створіть репозиторій, зробіть перший знімок і зареєструйте щоденне завдання. Сховище має бути підключене в цьому сеансі (
net useз розділу про підключення), а час завдання оберіть так, щоб вивантаження баз до того моменту вже завершилися:Set-Alias restic 'C:\Program Files\restic\restic.exe' $env:RESTIC_REPOSITORY = '\\HOST\NAME\restic' $env:RESTIC_PASSWORD_FILE = 'C:\Scripts\restic-password.txt' restic init restic backup D:\Shares D:\Dumps --use-fs-snapshot --tag daily $action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-NoProfile -File C:\Scripts\restic-backup.ps1' $trigger = New-ScheduledTaskTrigger -Daily -At '01:30' Register-ScheduledTask -TaskName 'restic-backup' -Action $action -Trigger $trigger -User 'NT AUTHORITY\SYSTEM' -RunLevel Highest
Репозиторій, як і образ системи, доступний лише з серверів, адреси яких підтримка внесла до списку доступу сховища. Щоб відновити дані на іншому сервері, попросіть підтримку відкрити доступ і з його IP-адреси.
Чому robocopy — не резервна копія#
robocopy з параметром /MIR робить дзеркало: усе, що на сервері видалили, зіпсували чи зашифрувала шкідлива програма, після наступного запуску стане таким самим і в копії. Версій немає, а файли, які застосунки тримають відкритими, скопіювати не вдасться. Для перенесення даних на новий сервер він годиться (див. чек-лист переїзду), для резервних копій — ні.
Як перевірити результат#
- Перегляньте список копій:
Ідентифікатор версії записано в UTC, тому він не збігається з часом у рядку Backup time; у команди підставляйте саме ідентифікатор.
wbadmin get versions - Перегляньте вміст копії та відновіть із неї папку в окреме місце (ідентифікатор у прикладі — копія від 4 жовтня о 02:30 за київським часом):
Без
wbadmin get items -version:10/03/2026-23:30 mkdir D:\RestoreTest wbadmin start recovery -version:10/03/2026-23:30 -itemType:File -items:C:\Windows\System32\drivers\etc -recursive -recoveryTarget:D:\RestoreTest -quiet-recoveryTargetфайли повертаються на початкове місце. Порівняйте відновлені файли з оригіналами. - Перевірте restic у вікні PowerShell, де задано псевдонім і змінні з кроку 4:
Шлях усередині знімка показує
restic snapshots restic check restic restore latest --target D:\RestoreTest --include /D/Dumpsrestic ls latest; відновлені файли з’являться вD:\RestoreTest\D\Dumps. - Відновіть останнє вивантаження з цієї папки в окрему тестову базу й відкрийте її в обліковій системі. Порядок для PostgreSQL, MS SQL Server і BAS — у статті «Резервні копії баз даних».
- Наступного дня переконайтеся, що в обох списках з’явилися нові записи, а завдання в Планувальнику завершилися з кодом 0. Код 3 від restic означає, що знімок створено, але частину файлів прочитати не вдалося. Пробне відновлення повторюйте щокварталу.
Відновлення «на голе залізо» запускають із WinRE, завантаженого з інсталяційного носія, тож знадобиться віддалена консоль: у United Cloud її надають за запитом через підтримку, а у варіанті з Java до неї можна підключити ISO-образ. На лінійці Лайт консолі може не бути. Порядок дій узгодьте з підтримкою заздалегідь, а не в день аварії.
Типові помилки#
- Перевіряти доступ до сховища лише зі свого сеансу. Мережеві диски й паролі, введені в сеансі RDP, для завдання від імені SYSTEM не існують. Вказуйте повний шлях
\\HOST\NAMEі передавайте логін і пароль сховища в самому завданні, як у прикладах вище; запустіть завдання вручну й перевірте код завершення. - Тримати пароль restic тільки на сервері. Втратите сервер — не відкриєте й репозиторій.
- Не стежити за вільним місцем. Образ системи й репозиторій restic мають разом уміщатися в обсяг сховища. Коли місце закінчиться, сховище перейде в режим «лише читання», і нові копії не запишуться, доки ви його не звільните.
- Вважати копією RAID або другий диск у сервері. Дзеркало рятує від відмови диска, а не від видалення чи шифрування — див. «Як перевірити програмний RAID і здоров’я дисків».
Що далі#
- Режиму «лише додавання» сховище не має: процес на сервері, який може записувати копії, може їх і видалити, тож шифрувальник із правами адміністратора дістанеться й до них. Тому додайте третю копію поза сервером і сховищем — в офісі або на іншому майданчику, наприклад у другому репозиторії restic. Як розкласти копії, пояснює правило 3-2-1.
- Якщо простій коштує дорого, розгляньте резервний майданчик.
- Повний синтаксис — у довідці wbadmin на Microsoft Learn і в документації restic.
- Сервери з місцем для резервних копій — у каталозі. Питання щодо підключення сховища — до підтримки: +38 044 206 08 08, info@united.net.ua.