Резервне копіювання та відновлення

Резервні копії мають власну програму. Вона постачається із системою, і встановлення її налаштовує, тож купувати нічого не треба й налаштовувати теж. Цей блок показує, що вона зберігає, коли виконується і як повернути все, коли це справді потрібно. Увесь цей блок входить у Basic.

1

Програма для резервного копіювання та відновлення

Програма зветься «Ticket System Backup & Restore». Вона стоїть поруч із системою заявок і має власний ярлик на стільниці.

Є версія для Windows і версія для Linux. Це та сама програма, лише зібрана для кожної операційної системи.

Вона має шість вкладок. «Restore» перелічує наявні копії, «Create Backup» робить нову, «Schedule» відповідає за час, «Encryption» показує ключ відновлення, «Settings» показує шляхи, а «Log» — протокол.

Налаштування вже заповнені. При першому запуску програма сама визначає, де живе система заявок.

Тека для копій стоїть під «Backup directory». Її можна змінити, наприклад на інший диск.

У Windows програма під час запуску запитує права адміністратора. Її налаштування діють для кожного адміністратора комп'ютера й живуть у «%ProgramData%\SMITEY\backup-app».

Вкладка «Restore» із п'ятьма копіями, кожна з часом, розміром, типом і шифруванням.
Червона рамка стоїть на стовпці «Encryption». Нові копії закінчуються на «.smbk» і мають позначку «Encrypted». Старіші копії у форматі ZIP показують «Not encrypted». Стовпець «Type» каже, копія походить із розкладу, її зробили вручну чи створили перед оновленням.Відкрити зображення на повний розмір
Вкладка «Settings» із текою для копій і відомостями про базу даних.
Червона рамка стоїть на назві контейнера PostgreSQL. Нижче томи, які теж зберігають.Відкрити зображення на повний розмір
2

Розклад працює від самого встановлення

Перш ніж почати: У Windows програма завжди запускається з правами адміністратора й реєструє розклад із цими правами. Якщо Windows не дозволяє завданню виконуватися без користувача, що увійшов у систему, воно лишається прив'язаним до входу, і програма про це каже.

Встановлення саме налаштовує щоденне резервне копіювання. Воно виконується о 23:00 у часовому поясі системи заявок.

Розклад живе в операційній системі. У Windows це планувальник завдань, у Linux — служба cron. Тож окремої служби лише заради копій не працює.

Резервному копіюванню не потрібно, щоб хтось увійшов у систему. На сервері, куди ніхто ніколи не входить, воно все одно виконується.

Рядок під кнопками каже, чи справді завдання існує в операційній системі. Поставлена позначка каже лише про те, що збережено.

Копії зберігають у п'яти ступенях: 14 днів, 4 тижні, 12 місяців, 4 квартали та 5 років. Копія лишається, поки вона найновіша у своєму періоді в одному з цих ступенів.

Рахують календарні дні, а не файли. Дві копії за один день — це один день.

Копії, створені вручну, автоматично не видаляють ніколи. Саме це означає 0 у «Keep manual».

Якщо ви зміните розклад, ваша зміна переживе оновлення. Встановлення задає його лише тоді, коли ви ще ніколи не задавали розкладу. Якщо ви вимкнули резервне копіювання, воно лишається вимкненим. «Remove all scheduled tasks» теж діє надовго: оновлення згодом не налаштовує розклад знову.

Вкладка «Schedule» із позначеним «Daily» і часом 23:00.
Червоні рамки стоять на «Daily» і на часі. Речення над ними називає обидва шляхи: планувальник завдань і cron.Відкрити зображення на повний розмір
Рядок «Registered with the operating system: yes (Daily)» під кнопками.
Цей рядок перевіряють знову при кожному запуску. Якщо там стоїть «NO», саме собою нічого не виконується — тоді скористайтеся «Apply schedule» від імені адміністратора.Відкрити зображення на повний розмір
Шість полів зберігання: 14, 4, 12, 4, 5 і 0.
Червона рамка стоїть на ступенях. «Keep manual (0 = keep all)» означає, що копії, зроблені вручну, зберігаються.Відкрити зображення на повний розмір
Вкладка «Schedule» після «Apply schedule», нижче стоять «02:00 (America/New_York)» і «Registered with the operating system: yes (Daily)».
Червоні рамки стоять на «Apply schedule» і на рядках під ним. У дужках вказано часовий пояс системи заявок. Час діє в цьому поясі, а не в часовому поясі комп'ютера.Відкрити зображення на повний розмір
3

Що містить резервна копія

Резервна копія містить усе, з чого складається стан вашої системи. Це база даних, вкладені файли, архів і ключі. Бракує в ній лише бази даних поза SMITEY.

Ключі — та частина, яку легко проґавити. Вони розшифровують збережені облікові дані, наприклад дані вашого поштового запису. Без них відновлення повернуло б мертві облікові дані.

Кожна нова копія — це один зашифрований файл із закінченням «.smbk». Він містить по файлу на том, перелік вмісту і, якщо вона входить, базу даних як текстовий файл.

Система при цьому працює далі. Ваші оператори резервного копіювання взагалі не помічають.

«Estimate size» наперед каже, наскільки велика база даних. Томи з вкладеннями додаються до неї. Копія не стискається.

Нічого ніколи не перезаписують. Кожна копія — окремий файл, і лише очищення прибирає старі.

Резервні копії можуть читати лише адміністратори. Те саме стосується файлу конфігурації та файлу з даними для першого входу в теці інсталяції. Інсталятор і кожне оновлення самі встановлюють ці дозволи.

Якщо ваша база даних працює на окремому сервері, а не в контейнері SMITEY, програма не може створити її копію. Тоді створюйте її власними засобами. У такому разі копія містить лише вкладення, архіви й ключі, зашифровані як зазвичай. Оновлення саме виявляє таку базу даних і перемикає програму. До того часу щоденне резервне копіювання на такій інсталяції не вдається, якщо ви не перемкнули її вручну заздалегідь. У командному рядку це можна зробити й вручну командою «config --database external». Командою «config --database bundled» ви повертаєте все назад.

Докладніше про це в картці: Шифрування та ключ відновлення

Вкладка «Create Backup» із кнопками «Estimate size» і «Create backup now».
Червона рамка стоїть на обох кнопках. Речення над ними перелічує, що входить у копію.Відкрити зображення на повний розмір
Повідомлення внизу з повним шляхом створеного файлу.
Після створення назва файлу з'являється внизу вікна. Час є частиною назви.Відкрити зображення на повний розмір
4

Шифрування та ключ відновлення

Перш ніж почати: Зберігайте ключ відновлення поза сервером. Без нього жодну копію не можна відкрити, коли сервер втрачено. Ніхто не може відновити його за вас.

Кожна нова копія зашифрована. Це стосується копій за розкладом, зроблених вручну та створених перед оновленням. Нічого вмикати не потрібно.

Копії шифруються за допомогою AES-256. Інсталяція сама створює ключ. В наявній інсталяції його створює перше оновлення до версії із шифруванням. Він зберігається на сервері під захистом. Лише адміністратори можуть його прочитати.

Це захищає копії поза сервером. Хто знайде копію на мережевому диску, USB-накопичувачі чи в онлайн-сховищі, не зможе прочитати її без ключа. Хто контролює сам сервер, той має й ключ.

Ключ відновлення — це той самий ключ у вигляді, який можна записати. Він починається з «SMBK-». Ви знайдете його на вкладці «Encryption» і у файлі «SMITEY-credentials.txt» у теці інсталяції. Якщо ви видалили цей файл, ключ усе одно є на вкладці «Encryption».

«Copy» кладе ключ у буфер обміну. «Save to file...» зберігає його з ідентифікатором ключа й датою в текстовий файл. Тримайте його, наприклад, у менеджері паролів або на папері в сейфі.

Доки ви не підтвердите, що ключ збережено, програма показує угорі жовту смугу. Щоб підтвердити, натисніть «I stored the key outside this server» і дайте на запитання відповідь «Yes». Смуга після цього зникає. Вкладка потім показує, коли ви підтвердили.

ID ключа каже, до якого сервера належить копія. Якщо копія не належить цьому серверу, програма називає її ID ключа. Потім вона просить відповідний ключ відновлення.

Якщо програма не може прочитати ключ, вона не створює копію. Незашифровану копію вона теж не створює. У такому разі вкладка «Encryption» повідомляє, що ключ не вдається прочитати. Якщо файлу ключа немає зовсім, наступна копія створює новий ключ. Жовта смуга тоді з'являється знову, бо новий ключ теж треба зберегти. Старіші копії й далі можна відкрити лише зі старим ключем відновлення.

Старіші копії у форматі ZIP не зашифровані. Ви й далі можете їх відновлювати. Вкладка показує, скільки їх є. Очищення видаляє їх за тими самими правилами, що й будь-яку іншу копію.

На сервері без графічного середовища «key --show» показує те саме в командному рядку.

Докладніше про це в картці: Як повернути все, На сервері без графічного середовища

Вкладка «Encryption» із ключем відновлення, ID ключа та трьома кнопками. Угорі видно жовту смугу повідомлення.
Червоні рамки стоять на смузі повідомлення, на ключі та ID ключа і на «I stored the key outside this server». Ключ на знімку взято з тестового середовища.Відкрити зображення на повний розмір
Та сама вкладка після підтвердження, без смуги повідомлення.
Верхня рамка стоїть на часі підтвердження. Нижня показує, скільки копій досі не зашифровано.Відкрити зображення на повний розмір
5

Як повернути все назад

Перш ніж почати: Відновлення перезаписує сьогоднішній стан. Усе, що постало після обраної копії, після цього зникає.

На вкладці «Restore» ви обираєте копію, яку хочете повернути. Потім натискаєте «Restore».

Програма спершу питає. Вона каже, що станеться: сьогоднішній стан буде перезаписано, і програма перезапустить контейнери. Якщо в сьогоднішньому стані є анонімізовані люди, далі йде друге питання. Воно називає їхню кількість і питає, чи анонімізувати їх знову після відновлення. «Yes» вибрано заздалегідь. З «No» копію буде відновлено без цього кроку. Якщо натомість закрити вікно, нічого не буде відновлено.

Позначка «Wipe target volumes before restore» спершу спорожнює томи. Так не лишається файлу, якого не було на час створення копії.

Кроки з'являються на вкладці «Log». Там ви бачите одне за одним, що зробила програма. Якщо ви відповіли «Yes» на друге питання, рядок наприкінці повідомляє, скільки анонімізацій система заявок застосує знову наступної ночі. Якщо їх не вдається перенести, журнал натомість показує попередження. Якщо були попередження, рядок стану внизу вікна називає їхню кількість.

Якщо копія містить базу даних, повертається повний стан. Заявки, коментарі, історія, вкладені файли, записаний час і база знань — усе знову таке, як було на час копії.

Після цього системою можна знову користуватися. На невеликій системі це триває менш ніж хвилину.

Якщо копія містить базу даних, вона повертається повністю або ніяк. Томи йдуть після неї. Якщо з томом стається збій, база даних уже повернута, але файлів може бракувати; вкладка «Log» показує, який крок не вдався. У будь-якому разі програма потім знову запускає контейнери, навіть якщо відновлення не вдалося.

Копію зі старішої версії можна відновити в новішу. При наступному запуску система доводить базу даних до власної версії.

Згоди та відписки для опитування про задоволеність переносяться без запитання. Це діє й тоді, коли ви відповідаєте «No» на друге запитання. Застосунок читає їх із працюючої інсталяції до відновлення. Після цього рядок на вкладці «Log» називає кількість, наприклад «12 consent and unsubscribe record(s) were carried over.» Система заявок приймає їх під час першого запуску. Згода або відписка, зроблені після резервної копії, тому лишаються чинними. Якщо перенесення не вдалося, журнал показує попередження. Відновлення все одно вважається успішним.

Програма спершу повністю перевіряє зашифровану копію. Тим часом у рядку стану стоїть «Checking the encrypted backup before anything is changed...». Лише після цього вона зупиняє контейнери. Якщо файл пошкоджений або змінений, вона зупиняється й повідомляє «The backup file is damaged. Nothing was changed.»

Якщо копія походить з іншого сервера, програма просить ключ відновлення того сервера. Це відбувається після запитань. Вікно «Recovery key needed» називає ID ключа копії. Те саме вікно з'являється, якщо ключа цього сервера немає.

Помилку друку помічають ще до будь-яких змін. Рядок стану тоді повідомляє «The recovery key has a typing error. Check each character.» Після цього вікно питає знову. Якщо ключ належить іншій копії, рядок стану повідомляє «This recovery key does not belong to this backup.» Після «Cancel» програма зупиняється й повідомляє «Restore cancelled. Nothing was changed.»

Програма не переймає введений вами ключ. Вона залишає свій. Нові копії й далі створюються ключем цього сервера. Якщо ви відновлюєте на новому сервері, збережіть і ключ відновлення того сервера.

Копія без бази даних відновлює лише вкладення, архіви й ключі. Наявні ключі зберігаються. База даних лишається як є. Програма каже про це перед відновленням і питає. Після «No» нічого не змінюється.

Якщо інсталяцію налаштовано на власну базу даних, програма пропускає частину з базою даних, навіть коли копія містить базу даних. Це стосується, наприклад, старішої копії. Програма спершу питає. Після «No» нічого не змінюється.

Обрана копія у списку, з позначкою та кнопкою «Restore» нижче.
Червоні рамки стоять на позначці та на «Restore». Без обраного рядка кнопка лишається вимкненою.Відкрити зображення на повний розмір
Підтвердження перед відновленням із кнопками «Yes» і «No».
Запитання називає обидва наслідки: сьогоднішній стан перезапишуть, а контейнери перезапустять.Відкрити зображення на повний розмір
Протокол після відновлення, з повідомленням «Restore complete.» унизу.
Кожен крок стоїть там зі своїм часом. Наприкінці програма повідомляє «Restore complete.»Відкрити зображення на повний розмір
Друге запитання «6 person(s) were anonymized in the current system.» з кнопками «Yes» і «No».
Червоні рамки стоять на запитанні та на «Yes». «Yes» вибрано заздалегідь. Число показує, скільки людей анонімізовано в сьогоднішньому стані.Відкрити зображення на повний розмір
Рядок стану після відновлення: «1 warning(s) while carrying over anonymizations and survey consents. See the Log tab.»
Червона рамка стоїть на рядку стану. Він називає лише кількість попереджень. Що саме сталося, видно на вкладці «Log».Відкрити зображення на повний розмір
Запит ключа відновлення з ID ключа копії, полем введення та кнопками «OK» і «Cancel».
Червоні рамки стоять на запитанні з ID ключа та на полі введення. Дефіси, пробіли та регістр літер не мають значення, коли ви вводите ключ. Ключ на знімку взято з тестового середовища.Відкрити зображення на повний розмір
6

На сервері без стільниці

На сервері часто немає стільниці. Тому та сама програма працює й як команда.

У щоденній роботі потрібні п'ять команд: «backup» зберігає, «list» показує наявні копії, «restore» повертає одну, «schedule» задає час, а «config» показує налаштування. Для ключа до них додаються «key» і «decrypt».

За ними стоїть та сама програма, що й у вікні. Другого шляху, який робив би щось інше, немає.

Програма стоїть у «/opt/smitey/Backup». Ви викликаєте її через «sudo» й додаєте команду. Контейнери працюють від «root», тож ці права потрібні й резервному копіюванню.

Шість полів нижче можна скопіювати. Вони охоплюють те, що справді потрібно в щоденній роботі.

Відновлення й тут питає. Воно виконується лише тоді, коли ви додасте «--yes». Тоді воно переносить і анонімізації із сьогоднішнього стану, як «Yes» у вікні. З «--no-reapply» воно виконується без цього кроку.

На сервері є файл, щоб про все це почитати. Він зветься «BACKUP-RESTORE.txt» і лежить у «/opt/smitey». Він ще раз проходить розклад, кожну команду й шлях назад, у вашому власному темпі. Він є німецькою та англійською: якщо під час встановлення ви обрали німецьку, ви отримуєте німецький, інакше англійський. Обидві версії лежать також під «/opt/smitey/docs».

«key --show» показує ключ відновлення, ID ключа та кількість незашифрованих копій. Коли ключ збережено поза сервером, ви підтверджуєте це командою «key --confirm-stored».

Копію з іншого сервера ви відновлюєте за допомогою «--key-file». Названий вами файл містить ключ відновлення. Файл із «Save to file...» теж підходить. Замість файлу можна використати змінну середовища «SMITEY_BACKUP_KEY». З «sudo» її ставлять безпосередньо перед програмою, тобто «sudo SMITEY_BACKUP_KEY=<ключ> /opt/smitey/Backup/TicketSystemBackup restore …». Ключ тоді потрапляє в історію оболонки. Якщо ключ не збігається, нічого не змінюється.

«decrypt» записує вміст копії як незашифровані файли в порожню теку. Ці файли не зашифровані. У них є паролі та персональні дані. Видаліть їх, щойно закінчите.

Показати наявні копії

sudo /opt/smitey/Backup/TicketSystemBackup list

Кожен рядок несе час, причину, розмір і назву файлу. Це той самий список, що й у вікні.

Показати розклад

sudo /opt/smitey/Backup/TicketSystemBackup schedule --show

Перший рядок називає заданий час разом із часовим поясом. Останній каже, чи справді завдання існує в операційній системі. Якщо там стоїть «NO», саме собою нічого не виконується.

Змінити розклад

sudo /opt/smitey/Backup/TicketSystemBackup schedule --daily 23:00 --keep 14

Час діє в часовому поясі системи заявок. «--keep» каже, скільки щоденних копій зберігати. «schedule --off» вимикає щоденне резервне копіювання.

Створити копію просто зараз

sudo /opt/smitey/Backup/TicketSystemBackup backup

Ця копія вважається «Manual». Копії, зроблені вручну, автоматично не видаляють ніколи.

Показати ключ відновлення

sudo /opt/smitey/Backup/TicketSystemBackup key --show

Останній рядок каже, чи ви вже підтвердили, що ключ збережено. Команда не створює ключ.

Відновити копію з іншого сервера

sudo /opt/smitey/Backup/TicketSystemBackup restore <file>.smbk --yes --key-file /root/recovery-key.txt

Замініть <file> на назву або шлях копії. Файл «/root/recovery-key.txt» ви створюєте заздалегідь. Він містить ключ відновлення. Файл із «Save to file...» теж підходить.

Командний рядок на сервері Linux зі списком із «list» і виводом «key --show» нижче.
Угорі «list» показує копії. Старіші копії у форматі ZIP мають примітку «(Not encrypted)». Нижче «key --show» дає ключ відновлення, ID ключа та кількість незашифрованих копій. Ключ на знімку взято з тестового середовища.Відкрити зображення на повний розмір
7

Копії лежать на тій самій машині

Перш ніж почати: Копія поруч із системою не захистить вас від відмови диска. Регулярно копіюйте файли в інше місце.

Копії — це файли в теці, яку ви задали. Ця тека лежить на тій самій машині, що й система заявок.

Для звичайних випадків це працює добре. Помилково видалені дані, невдале оновлення чи помилка в даних — усе це покрито.

Проти відмови диска це не допомагає. Якщо диска немає, копій немає разом з ним.

Тож копіюйте файли деінде. Досить мережевого диска, другого сервера чи сховища в мережі.

Скопійований файл можна завантажити назад на будь-який сервер. На іншому сервері для цього потрібен ключ відновлення. Кнопкою «Import backup file…» ви повертаєте файл до списку.

Копії зашифровані. Ніхто не може прочитати їх без ключа відновлення. Тому не зберігайте ключ поруч із копіями. Старіші копії із закінченням «.zip» не зашифровані.

Вкладка «Settings» із полем «Backup directory».
Поле «Backup directory» каже, де лежать файли. Саме цю теку варто регулярно копіювати деінде.Відкрити зображення на повний розмір
8

Перед кожним оновленням система зберігає сама

Оновлення заздалегідь створює власну резервну копію. Це відбувається незалежно від вашого розкладу й без жодної позначки з вашого боку.

Воно зберігає те саме, що й завжди: базу даних, вкладення, архіви і ключі. Якщо база даних працює поза SMITEY, оновлення створює копію лише вкладень, архівів і ключів.

Цю копію робить програма «Ticket System Backup & Restore». Вона зашифрована, як і всі інші, і лежить у тій самій теці. У списку її тип — «Update». Три найновіші з цих копій зберігаються. Старіші програма видаляє сама.

Повідомлення перед оновленням про це каже. Вам не треба самим пам'ятати, що спершу слід зберегти.

Якщо ця копія не вдається, оновлення зупиняється ще до того, як щось замінюють. База даних поза SMITEY не затримує оновлення. Тоді оновлення перемикає програму так, що щоденна копія теж пропускає базу даних. Створюйте копію цієї бази даних власними засобами.

Докладніше про це в картці: Оновлення одним натисканням

Підтвердження перед оновленням із приміткою про резервну копію.
Речення «A full backup is taken automatically beforehand» є частиною запитання. Копія створюється до того, як щось замінюють.Відкрити зображення на повний розмір

Знімки екрана — з версії 1.3.1. На показаних екранах до версії 1.13.3 нічого не змінилося. Інакший вигляд має лише номер версії внизу бічної панелі.