Якщо ви ніколи не запускали Server Pro версії 5.0.1 або Community Edition версії 5.0.1 чи розгорнули зовсім новий екземпляр на 5.0.1, виконувати цей процес відновлення не потрібно.
- (2024-04-22 13:40 BST): додано крок «Зупиніть надходження нових оновлень у систему та скиньте всі зміни в MongoDB».
- (2024-04-23 11:45 BST): враховано невдалі скидання у 5.0.1 і пропуск скидань, якщо запускалася 5.0.2.
OVERLEAF_HISTORY_CHUNKS_BUCKET).
Процес відновлення затримує запуск застосунку всередині контейнера Server Pro. Протягом цього часу сайт буде недоступним. Ми підтримуємо запуск відновлення лише з одного екземпляра контейнера Server Pro; усі інші воркери горизонтального масштабування мають бути вимкнені.
За потреби процес відновлення можна зупинити та відновити.
За нашими тестами продуктивності, процес відновлення може обробляти приблизно 10 тис. невеликих проєктів за хвилину на сучасному обладнанні (CPU з тактовою частотою 3 ГГц і локальне сховище NVMe). Наприклад, для екземпляра зі 100 тис. проєктів заплануйте вікно обслуговування, яке передбачає щонайменше 10+2 хв простою. Скористайтеся таким запитом, щоб оцінити кількість проєктів у вашому екземплярі:
Процес відновлення
1
Завантажте образи випуску
Завантажте образи випуску
5.0.3.2
Визначте кілька проєктів
Визначте за id кілька проєктів, у яких відсутня історія; бажано, щоб у вас були права вносити зміни в один із них.
3
Заплануйте обслуговування
Заплануйте вікно обслуговування для простою.
4
Зупиніть усі воркери, крім одного
Якщо використовується горизонтальне масштабування, зупиніть усі воркери, крім одного.
5
Зупиніть нові оновлення та скиньте всі зміни в MongoDB
Зупиніть надходження нових оновлень у систему та скиньте всі зміни в MongoDB:
-
Закрийте редактор і вручну від’єднайте всіх користувачів через панель адміністратора за адресою
https://my-server-pro.example.com/admin#open-close-editorна вкладці “Open/Close Editor”. -
Зупиніть службу Websocket/real-time.
-
Дочекайтеся завершення служби real-time, на що вказує
down:. -
Зупиніть контейнер git-bridge, якщо його ввімкнено.
-
Якщо ви ніколи не запускали 5.0.2: виконайте ручне скидання оновлень документів і дочекайтеся його успішного завершення.
У разі помилки команду можна повторити. Якщо під час повторних запусків ви бачите ненульовий
failureCount, зупиніть міграцію (відновіть служби черезdocker restart git-bridge sharelatex) і зверніться до підтримки. -
Якщо ви ніколи не запускали 5.0.2: переконайтеся, що всі зміни скинуто з redis.
Якщо
redis-cliвиводить будь-що, зупиніть міграцію (відновіть служби черезdocker restart git-bridge sharelatex) і зверніться до підтримки. -
Спробуйте скинути всі відкладені зміни історії.
Це скидання виконується за принципом «наскільки можливо», оскільки в деяких проєктах історію пошкоджено через невдалу міграцію бази даних. Усі збої буде усунуто повторною синхронізацією історії наприкінці процесу відновлення.
6
Створіть резервну копію
Варто створити узгоджену резервну копію екземпляра.
7
Оновіться
Оновіться до версії
5.0.3.8
Автоматичне відновлення
Процес відновлення запускається автоматично під час старту контейнера.
9
Стежте за перебігом
Стежити за перебігом роботи скрипту можна, переглядаючи кінець файлу журналу
/var/lib/overleaf/data/history/doc-version-recovery.log. На початку він виводить загальну кількість проєктів, а після кожної 1000 оброблених проєктів — підсумок.10
Дочекайтеся завершення процесу відновлення
Дочекайтеся завершення процесу відновлення: або стежте за наведеним вище файлом журналу, доки не з’явиться рядок
Done., або чекайте, доки у стандартний вивід контейнера Server Pro не буде виведено Finished recovery of doc versions..11
Перевірте процес відновлення
Перевірте результат відновлення, відкривши панель історії для кількох проєктів, у яких раніше була відсутня історія.
-
Пришвидшіть повторну синхронізацію проєктів для перевірки (зрештою їх буде оброблено, але ми не хочемо чекати їхньої черги).
(Повторіть для кожного project-id, який потрібно перевірити, замінюючи
000000000000000000000000на один project-id за раз.) -
Відкрийте редактор проєкту для проєктів
https://my-server-pro.example.com/project/000000000000000000000000 - Відкрийте панель “History” для проєкту й перегляньте найновіший вміст.
- Необов’язково: знову закрийте панель “History”. Внесіть зміну в код, наприклад додайте коментар у заголовок.
- Необов’язково: запустіть повторну компіляцію, щоб ініціювати скидання локальної зміни. Знову відкрийте панель “History” і перегляньте зміну. Після завершення скасуйте зміну.
12
Для горизонтального масштабування...
Знову запустіть інші воркери.
13
Залиште екземпляр запущеним
Будь ласка, залиште запущеним екземпляр, який виконував процес відновлення. Він у фоновому режимі повторно синхронізуватиме історію всіх проєктів із паралельністю 1. Це призведе до дещо підвищеного базового навантаження. (Екземпляр можна перезапустити, але тоді повторні синхронізації почнуться спочатку.)
14
Повідомте нас, коли завершите
Клієнти Server Pro: будь ласка, повідомте команду підтримки, коли завершите процес відновлення.

