Oc_activity und oc_notifications in der DB sehr groß

Hallo,

ich habe eine 5 Jahre alte Nextcloud mit ca. 50 User , welche Hauptsächlich Groupfolders nutzt. Dort habe ich nun festgestellt, dass die Datenbank inzwischen sehr groß ist. (knapp 6GB)

Die Tabelle oc_activity hat über 8 Millionen Einträge mit einer Größe von 3,8GB und die Tabelle oc_notifications über 6 Millionen Einträge mit einer Größe von 1,8 GB.

Ich habe gestern in der Config folgenden Wert von 365 auf 180 eingestellt, jetzt hat die Tabelle oc_activity “nur” noch über 4 Millionen Einträge, an der Größe hat sich aber nicht viel getan:
‘activity_expire_days’ => 180,

Was genau steht in der activity Tabelle bzw. für was genau wird diese verwendet ? Ist es sinnvoll diesen Wert auf z.B. 14 Tage zu stellen?

Außerdem würde ich gerne wissen für was genau die Tabelle oc_notifications ist und ob man diese auch “bereinigen” kann bzw. ob es Sinn macht diese zu “bereinigen”?

oc_filecache hat knapp 700.000 Einträge mit einer Größe von 220MB.

Folgende Befehle habe ich schon durchgeführt:

occ files:scan --all
occ files:scan-app-data
occ files:cleanup

  • Root Server
  • Nextcloud Version: 27.1.8
  • PHP Version: 8.2
  • Welche Datenbank? MariaDB 10.6.17
  • Apache

Die Config Datei sieht so aus:


‘installed’ => true,
‘mail_smtpmode’ => ‘smtp’,
‘mail_smtpsecure’ => ‘tls’,
‘mail_sendmailmode’ => ‘smtp’,
‘mail_from_address’ => ‘cloud’,
‘mail_domain’ => ‘xxx’,
‘mail_smtpauthtype’ => ‘LOGIN’,
‘mail_smtpauth’ => 1,
‘mail_smtphost’ => ‘xxx’,
‘mail_smtpport’ => ‘587’,
‘mail_smtpname’ => ‘xxx’,
‘mail_smtppassword’ => ‘xxx’,
‘default_language’ => ‘de’,
‘force_language’ => ‘de’,
‘default_locale’ => ‘de’,
‘force_locale’ => ‘de’,
‘skeletondirectory’ => ‘’,
‘maintenance’ => false,
‘remember_login_cookie_lifetime’ => 172800,
‘session_lifetime’ => 86400,
‘session_keepalive’ => true,
‘auto_logout’ => false,
‘default_phone_region’ => ‘DE’,
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.distributed’ => ‘\OC\Memcache\Redis’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘trashbin_retention_obligation’ => ‘90, 180’,
‘activity_expire_days’ => 180,
‘activity_use_cached_mountpoints’ => true,
‘config_is_read_only’ => false,
‘onlyoffice’ =>
array (
‘jwt_leeway’ => 10,
),
‘redis’ =>
array (
‘host’ => ‘localhost’,
‘port’ => xxx,
‘password’ => ‘xxx’,
),
‘theme’ => ‘’,
‘loglevel’ => 2,
‘app_install_overwrite’ =>
array (
0 => ‘shifts’,
),
);

Passt die soweit oder gibt´s da auch eine Verbesserung?

@SilverNavigator,
database

Ich denke, dass in der oc_activity Datei grundsätzlich alle Dateiändernungen gekennzeichnet werden (erstellt; geändert; gelöscht; wiederhergestellt).
In oc_notifications stehen meiner Meinung nach alle Benachrichtigungen, die du normalerweise über das Benachrichtigungs-Symbol bekommst.

Wie lange du diese Informationen behalten magst bzw. wie sinnvoll das überhaupt für dich ist, bleibt deine Entscheidung.

Ich denke, dass die oc_notifications Tabelle dann nicht so wichtig ist?
Wo kann ich dafür denn die „Haltedauer“ einstellen?

Ja, da liegst du wahrscheinlich richtig - sicher bin ich mir aber auch nicht.

Leider weiß ich nur nicht, was passiert, wenn du ein paar Einträge löschst, oder wie du das umstellen kannst.

Ich vermute, dass aus der oc_notifications noch nie was gelöscht wurde ?

Davon gehe ich grundsätzlich auch aus.