Перейти к основному содержанию

Seafile — очистка базы данных

Seafile

Набор утилит и команд для очистки базы данных Seafile.

Сессии

Используйте следующую команду для очистки устаревших записей сессий в базе данных Seahub:

cd seafile-server-latest
./seahub.sh python-env python3 seahub/manage.py clearsessions

Подсказка: войдите в Docker-образ, затем перейдите в /opt/seafile/seafile-server-latest.

Использование команды clean_db_records для очистки seahub_db

Используйте следующую команду для одновременной очистки записей в таблицах Activity, sysadmin_extra_userloginlog, FileAudit, FileUpdate, FileHistory, PermAudit, FileTrash старше 90 дней:

./seahub.sh python-env python3 seahub/manage.py clean_db_records

При желании вы также можете очистить эти таблицы вручную, как показано ниже.

Activity

Используйте следующую команду для очистки записей активностей:

use seahub_db;
DELETE FROM Activity WHERE to_days(now()) - to_days(timestamp) > 90;
DELETE FROM UserActivity WHERE to_days(now()) - to_days(timestamp) > 90;

Логи входа

Используйте следующую команду для очистки записей о входах:

use seahub_db;
DELETE FROM sysadmin_extra_userloginlog WHERE to_days(now()) - to_days(login_date) > 90;

Доступ к файлам

Используйте следующую команду для очистки записей о доступе к файлам:

use seahub_db;
DELETE FROM FileAudit WHERE to_days(now()) - to_days(timestamp) > 90;

Обновление файлов

Используйте следующую команду для очистки записей об обновлениях файлов:

use seahub_db;
DELETE FROM FileUpdate WHERE to_days(now()) - to_days(timestamp) > 90;

Разрешения

use seahub_db;
DELETE FROM PermAudit WHERE to_days(now()) - to_days(timestamp) > 90;

История файлов

Используйте следующую команду для очистки записей истории файлов:

use seahub_db;
DELETE FROM FileHistory WHERE to_days(now()) - to_days(timestamp) > 90;

Очистка устаревших данных библиотек

Начиная с версии 6.2, предоставляется команда для очистки устаревших записей библиотек в базе данных Seafile, например, записей, которые не удаляются после удаления библиотеки. Это связано с тем, что пользователи могут восстановить удаленную библиотеку, поэтому мы не можем удалять эти записи в момент удаления библиотеки.

./seahub.sh python-env python3 seahub/manage.py clear_invalid_repo_data

Эта команда была улучшена в версии 10.0, включая:

  • Очистка недействительных данных небольшими пакетами, чтобы избежать чрезмерного потребления ресурсов базы данных за короткое время.
  • Режим пробного запуска: если вы хотите только посмотреть, сколько недействительных данных можно удалить, не удаляя их фактически, используйте опцию --dry-run=true, например:
./seahub.sh python-env python3 seahub/manage.py clear_invalid_repo_data --dry-run=true

Очистка токенов синхронизации библиотек

В базе данных Seafile есть две таблицы, связанные с токенами синхронизации библиотек:

  • RepoUserToken содержит токены аутентификации, используемые для синхронизации библиотек. Обратите внимание, что для каждого клиента (включая клиент синхронизации и SeaDrive) создается отдельный токен.
  • RepoTokenPeerInfo содержит дополнительную информацию о каждом токене клиента, такую как имя клиента, IP-адрес, время последней синхронизации и т.д.

Когда к серверу подключено множество клиентов синхронизации, эти две таблицы могут содержать большое количество строк. Многие из них больше не используются активно. Вы можете очистить токены, которые не использовались в течение определенного периода, с помощью следующего SQL-запроса:

DELETE t,i FROM RepoUserToken t, RepoTokenPeerInfo i WHERE t.token=i.token AND sync_time < xxxx;

xxxx — это UNIX-временная метка, до которой токены будут удалены.

Для безопасности сначала проверьте, сколько токенов будет удалено:

SELECT * FROM RepoUserToken t, RepoTokenPeerInfo i WHERE t.token=i.token AND sync_time < xxxx;

Ссылки

https://manual.seafile.com/latest/administration/clean_database/

Теги

 

Похожие материалы

Seafile сервер для Linux версия 7.0.2

13 июня 2019 года вышла новая версия сервера Seafile для Linux — 7.0.2. Релиз уже не помечен как beta. Прошлый раз я пробовал обновить Seafile Server 6.3 до версии 7.0.0, но были проблемы и прошлось откатиться. На этот раз релиз получше. Обновлённый до 7.0.2 сервер заработал без ошибок. Да, да, прежде чем написать новость, я проверил версию на себе. Интерфейс стал удобнее и приятнее.