meta données pour cette page
  •  

Ceci est une ancienne révision du document !


Procédure de réparation/optimisation des bases sqlites

Etape 1 : mise de la base en maintenance

Si un problème est détecté sur une base, il va falloir couper son accés. Il conviens donc de prévenir les utilisateurs de la maintenance (téléphone, newsletters…)

Etape 2 : sauvegarde

On ne travail jamais sur les bases directement.

  1. Si la base et en cours d'utilisation, il faut la “démonter depuis l'assistance”, ou peut aussi en profiter pour faire une version non crypter (ne marche pas toujours)
  2. Dupliquez le fichier de la base
  3. Créer un dossier temporaire et y glisser les bases originales
  4. Rapatrier la base sur votre poste. le travail directement sur le serveur est déconseillé, surtout sur les grosses bases (en plus celà fait un niveau de sauvegarde supplémentaire)

Etape 3 : décryptage

Si vous n'avais pas décrypter la base lors de l'étape de sauvegarde, vous pouvez le faire via l'utilitaire en récupérant la clef dans la base de cryptage A partir de là on travail sur la base décryptée

Etape 4 : Comande test

Dans un premier temps on travail de préférence avec SynDBExplorer

Lancer la commande
PRAGMA integrity_check;
Le traitement peut être long sur de grosse base
La réponse “correcte” est OK
Dans la cas contraire on peut tenter une commande de reindexation et reessayer
Lancer la commande
REINDEX;
Le traitement peut aussi être long sur de grosse base
Si il n'y a paas d'erreur la commande ne réponds rien (fin de changement du curseur)

Piste de réparation d'une base cassée

Créer une sauvegarde sql puis restaurer

Sauvegarde

Utilisez l'utilitaire sqlite3 en ligne de commande. La commande .recover est disponible depuis la version 3.29.0 et est plus robuste que .dump. Si .recover n'est pas disponible, utilisez l'ancienne méthode :

sqlite3 base_corrompue.s3dbBrut “.dump” > reparation.sql 
Restauration

Reconstruction de la base Une fois le fichier SQL généré, injectez-le dans un nouveau fichier de base de données

Etape 5 : Optimisation de la base

Fichier à effacer

On peut lancer sans danger la commande
Drop Table TableDeleted;
On ne peut pas effacer la piste d'audit, mais on peut1. L'enregistrer à coté de la base
Pour ce faire enregistrer la piste en entier au format csv
Repérer l'ID d'une piste ayant disons 3 ans
Effacer
Delete from PisteAudit Where ID<?????


il est conseiller d'utiliser SynDbExplorer même si on regarde l'ID dans DBBroswser
Finir par un REINDEX puis un VACCUM

Etape 6: Nettoyage

Après avoir remis la base en ligne, on ne laisse que le fichier de la piste d'audit avec la date de sauvegarde.
On efface les autres fichier afin de ne pas amplifier les sauvegardes.
On garde sur son poste les version de travail quelques jours en attente de vérification du client

Etape 6: Information client

On indique au client :

  1. les opérations faites
  2. que la base et de nouveau en accès
  3. on lui demande de tester que tout est OK