Come pulire le tabelle di Log

Quando installiamo Magento, vengono create diverse tabelle, tra le quali le tabelle del registro di navigazione.

Questo registro è diverso dal registro di sistema, che abbiamo discusso qui nel blog sotto controllo log di sistema. La differenza è che il registro di navigazione registra il passaggio dei tuoi clienti e dei visitatori attraverso il sito.

Sì. Dal momento in cui hai messo il negozio in aria, tutte le pagine visitate vengono registrate nel registro con le informazioni del tipo di visitatore, id utente registrato, URL visitato, data/ora di accesso, tipo di browser e sistema operativo, ip, ecc.

E qual è il problema?

Poiché questo registro di navigazione è continuo, i problemi possono verificarsi quando si effettua l’importazione di un prodotto, aggiorna i dati nelle tabelle, talvolta anche un pulsante indietro (back) dal browser client. Generazione di un errore di integrità:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…

Cioè il sistema tenta di registrare un record in cui i dati esistono già.

Un altro problema sarebbe proprio la dimensione del database che non smette mai di crescere. Ogni giorno (dal lancio) vengono memorizzate tutte le informazioni di navigazione degli utenti.

Ovviamente queste informazioni sono importanti per indagare su un problema o per tentare di intromettere, ecc. Ma una volta che si fa una backup di queste informazioni questa cronologia può essere eliminata riducendo così il volume dei dati nelle tabelle e la dimensione del prossimo backup.

Impostazioni avanzate di log

Per evitare questo tipo di problema e addirittura il sovraccarico dei dati, è interessante attivare il programma di pulizia del registro di sistema. Per accedere a questo:

Sistema > Configurazione > ADVANCED > Sistema [Pulizia log]

Guardiamo le nostre opzioni di configurazione:

Save Log, Days – Indica la quantità minima di giorni in cui le informazioni devono essere memorizzate nelle tabelle. Tutte le informazioni sopra questo periodo non devono più essere memorizzate – probabilmente perché hai già eseguito un backup.

Enable Log Clean – Per impostazione predefinita è contrassegnato “No“, passare a “” se si desidera cancellare le tabelle automaticamente.

Start time – È possibile immettere ore, minuti e secondi. La cosa importante qui è informare un tempo di visitatore a basso flusso perché il processo consuma risorse di server.

Suggerimento! Prova a seguire i primi processi per trovare la durata media della durata – in modo da poter misurare il tempo di programmazione.

Frequency – Quanto spesso eseguirete la pulizia. Può corrispondere alla frequenza del backup. Inizialmente puoi iniziare con i backup mensili e con l’aumento del volume dei dati e l’importanza finanziaria di essi aumenta la frequenza per settimane o giorni.

Configurare la pulizia del registro

Gli ultimi 3 (tre) campi si riferiscono all’email di errore. Ogni volta che si verifica un errore nella pulizia dei dati pianificati, verrà attivato un avviso per l’email informato, utilizzando i riferimenti ei modelli informati sul sistema.

Soluzione di emergenza

A volte l’errore può impedire l’accesso al sistema. E la nostra sola alternativa è “attaccare” il database. Quindi, quando il sistema ha un problema con le tabelle di registro che non possono essere risolte da backend, dobbiamo utilizzare un DBMS per eseguire la pulitura script:

SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `log_customer`;
TRUNCATE `log_quote`;
TRUNCATE `log_summary`;
TRUNCATE `log_url`;
TRUNCATE `log_url_info`;
TRUNCATE `log_visitor`;
TRUNCATE `log_visitor_info`;
TRUNCATE `log_visitor_online`;
ALTER TABLE `log_customer` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `log_summary` AUTO_INCREMENT=1;
ALTER TABLE `log_url` AUTO_INCREMENT=1;
ALTER TABLE `log_url_info` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor_info` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor_online` AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;

In sostanza, tutte le tabelle di registro sono meno log_summary_type. Abbiamo usato il comando truncate per annullare i record del registro di registrazione, eliminando così il problema della chiave duplicata.

Lo script funziona in tutte le versioni di Magento 1.x.

Successo!