meta données pour cette page
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 convient donc de prévenir les utilisateurs de la maintenance (téléphone, newsletters…)
Etape 2 : sauvegarde
On ne travaille jamais sur les bases directement.
- Si la base est en cours d'utilisation, il faut la “démonter depuis l'assistance”, ou peut aussi en profiter pour faire une version non cryptée (ne marche pas toujours)
- Dupliquez le fichier de la base
- Créer un dossier temporaire et y glisser les bases originales
- Rapatrier la base sur votre poste. Le travail directement sur le serveur est déconseillé, surtout sur les grosses bases (en plus cela fait un niveau de sauvegarde supplémentaire)
Etape 3 : décryptage
Si vous n'aviez pas décrypté 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 travaille sur la base décryptée
Etape 4 : Commande test
Dans un premier temps on travaille de préférence avec SynDBExplorer
| Lancer la commande | PRAGMA integrity_check; | Le traitement peut être long sur de grosses bases La réponse “correcte” est OK Dans le cas contraire on peut tenter une commande de réindexation et réessayer |
| Lancer la commande | REINDEX; | Le traitement peut aussi être long sur de grosses bases S'il n'y a pas d'erreur, la commande ne répond 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 peut | 1. L'enregistrer à côté 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<?????
|
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 fichiers afin de ne pas amplifier les sauvegardes.
On garde sur son poste les versions de travail quelques jours en attente de vérification du client
Etape 7 : Information client
On indique au client :
- les opérations faites
- que la base est de nouveau en accès
- on lui demande de tester que tout est OK