meta données pour cette page
  •  

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
certif:do:procedurereparationbase [2026/07/17 08:14] – [Etape 4 : Comande test] nicolascertif:do:procedurereparationbase [2026/07/17 08:56] (Version actuelle) nicolas
Ligne 1: Ligne 1:
-====== Procédure de réparation/optinisation des bases sqlites ====== +====== Procédure de réparation/optimisation des bases sqlites ======
 ===== Etape 1 : mise de la base en maintenance ===== ===== 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+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...) +Il convient donc de prévenir les utilisateurs de la maintenance (téléphone, newsletters...)
 ===== Etape 2 : sauvegarde ===== ===== Etape 2 : sauvegarde =====
-On ne travail **jamais** sur les bases directement. +On ne travaille **jamais** sur les bases directement. 
-  - 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)+  - 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   - Dupliquez le fichier de la base
   - Créer un dossier temporaire et y glisser les bases originales   - 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 celà fait un niveau de sauvegarde supplémentaire) +  - 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 ===== ===== 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 +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 travail sur la base décryptée** +**A partir de là on travaille sur la base décryptée** 
- +===== Etape 4 : Commande test ===== 
-===== Etape 4 : Comande test ===== +Dans un premier temps on travaille de préférence avec **SynDBExplorer**\\ 
-Dans un premier temps on travail de préférence avec **SynDBExplorer**\\ +|Lancer la commande|<code>PRAGMA integrity_check;</code>|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|<code>PRAGMA integrity_check;</code>|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|<code>REINDEX;</code>|Le traitement peut aussi être long sur de grosses bases\\ S'il n'y a pas d'erreurla commande ne répond rien (fin de changement du curseur)| 
-|Lancer la commande|<code>REINDEX;</code>|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 : 
 +<code>sqlite3 base_corrompue.s3dbBrut ".dump" > reparation.sql </code> 
 +== 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|<code>Drop Table TableDeleted;</code>
 +|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 <code>Delete from PisteAudit Where ID<?????</code>\\ Il est conseillé d'utiliser SynDbExplorer même si on regarde l'ID dans DBBrowser\\ Finir par un REINDEX puis un VACUUM| 
 +===== 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