Commande TRUNCATE sur les tables de base de données

73 0 3 0

Scénario: le répertoire racine du serveur Oracle sur lequel l'UIDB est déployée atteint 98%. Si vous n'avez rien à supprimer, vous pouvez libérer de la mémoire en supprimant définitivement certaines lignes de tableaux inutiles de la base de données. Par erreur, vous entrez la mauvaise commande en spécifiant une table complète et vous ne savez pas quoi faire car vous craignez que cette commande affecte votre service et provoque la perte de données.



Suggestions: Eh bien, il y a encore de l’espoir. Par exemple, dans une situation chanceuse, vous avez tronqué une table temporaire contenant certaines informations sur les rapports pendant un jour, comme t_daylog_agentsla. Donc, dans ce cas, vous pouvez attendre 24 heures et la table sera mise à jour et créée demain, aucune perte de données importante ne se produit. Vous pouvez également trouver les informations de cette table dans le t_daylog_agentsla_P. En bout de ligne, si vous tronquez éventuellement la mauvaise table, vérifiez auprès de la R & D si les informations stockées dans cette table affectent le service et voyez s’il ya une perte de données importante. Si vous avez besoin de ces données, vous pouvez vérifier si les informations de la table se trouvent dans une autre table plus grande.



Si vous n'avez pas encore validé la commande TRUNCATE et que vous n'avez exécuté aucune autre commande dans le développeur PSQL, vous pouvez essayer de terminer le programme de manière anormale, par exemple en coupant l'alimentation de votre PC / ordinateur portable. Cela peut entraîner le basculement de votre dernière commande sur la base de données. Cela ne fonctionne pas toujours, mais c’est un essai. NE quittez PAS le logiciel normalement car il y a de fortes chances que le système valide automatiquement la dernière commande entrée.



Conclusion:

Vous ne pouvez pas annuler une instruction TRUNCATE TABLE, vous ne pouvez pas non plus utiliser une instruction FLASHBACK TABLE pour extraire le contenu d'une table qui a été tronquée. C’est pourquoi il est préférable, mais plus lent, d’utiliser la commande DELETE. Vous pouvez facilement exécuter la commande ROLLBACK pour récupérer les données.



La raison pour laquelle vous ne pouvez pas récupérer les données après avoir utilisé l'instruction TRUNCATE est qu'Oracle Database effectue les tâches suivantes:
Alloue tout l'espace utilisé par les lignes supprimées, à l'exception de celui spécifié par le paramètre de stockage MINEXTENTS
Définit le paramètre de stockage NEXT sur la taille de la dernière étendue supprimée du segment par le processus de troncature
Lorsque vous tapez DELETE.all, les données sont d'abord copiées dans le tablespace de restauration. Ensuite, l'opération de suppression commence. C'est pourquoi, lorsque vous tapez ROLLBACK après la suppression d'une table, vous pouvez récupérer les données (le système les récupère pour vous à partir de la table de restauration ). Tout ce processus prend du temps, mais lorsque vous tapez TRUNCATE, il supprime les données directement sans les copier dans le tablespace de restauration. C’est pourquoi TRUNCATE est plus rapide.

 

Exécutez la commande TRUNCATE avec la plus grande prudence!

  • x
  • Standard:

Responder

envoyer
Connectez-vous pour répondre. Se connecter | Enregistrer

Remarque Remarque : Afin de protéger vos droits et intérêts légitimes, ceux de la communauté et des tiers, ne divulguez aucun contenu qui pourrait présenter des risques juridiques pour toutes les parties. Le contenu interdit comprend, sans toutefois s'y limiter, le contenu politiquement sensible, le contenu lié à la pornographie, aux jeux d'argent, à l'abus et au trafic de drogues, le contenu qui peut divulguer ou enfreindre la propriété intellectuelle d'autrui, y compris les secrets professionnels, les marques commerciales, les droits d'auteur et les brevets, ainsi que la vie privée personnelle. Ne partagez pas votre nom d'utilisateur ou votre mot de passe avec d'autres personnes. Toutes les opérations effectuées à partir de votre compte seront considérées comme vos propres actions, et toutes les conséquences en découlant vous seront imputées. Pour plus de détails, voir « Politique de confidentialité ».
Si le bouton de la pièce-jointe n'est pas disponible, mettez à jour Adobe Flash Player à la dernière version.
Connectez-vous pour participer à la communication et au partage

Connectez-vous pour participer à la communication et au partage

S'identifier