Maison > base de données > Oracle > le corps du texte

Comment récupérer après avoir accidentellement supprimé des données de table dans l'analyse de l'instance Oracle

WBOY
Libérer: 2022-07-25 20:18:22
avant
3055 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur Oracle Lors de l'utilisation de données Oracle, les données de la table ont été accidentellement supprimées et soumises. Voici une introduction à la façon de récupérer après la suppression accidentelle des données de la table par Oracle. j'espère que cela sera utile à tout le monde.

Comment récupérer après avoir accidentellement supprimé des données de table dans l'analyse de l'instance Oracle

Tutoriel recommandé : "Tutoriel vidéo Oracle"

Restauration basée sur l'heure

Cette méthode nous oblige à connaître approximativement l'heure d'exécution de l'instruction de suppression.

Interrogez l'heure actuelle du système : select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual ;select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;

假设在2022-04-02 16:27:11分钟,执行了删除语句
delete from demo ;

Supposons qu'il soit le 02/04/2022 à 16h27 : 11 minutes, l'instruction de suppression est exécutée
supprimer de la démo ;

À ce stade, les données ne peuvent pas être interrogées dans la table. Nous connaissons le temps d'exécution de la suppression, avancez d'1 minute (le temps d'exécution de la suppression peut être avant, plus il est petit, mieux c'est, cet exemple prend 1 minute à titre d'exemple), exécutez l'instruction suivante

select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');
Copier après la connexion

Vous pouvez voir que même si le table de démonstration actuelle Il n'y a aucune donnée dans la table, mais vous pouvez interroger les données pour la première minute de la table de démonstration.

Récupération 1 : à ce stade, vous pouvez exporter le fichier SQL via la fonction de résultat de requête d'exportation de l'outil plsql, puis réexécuter l'instruction d'insertion dans le fichier SQL pour la récupération des données.

Récupération 2 : Exécutez le SQL suivant pour la récupération des données :

flashback table DEMO to timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');
Copier après la connexion

Si une erreur est signalée ORA-08189 : La fonction de déplacement de ligne n'est pas activée et la table ne peut pas être flashée

Ensuite, exécutez :

alter table DEMO enable row movement;
Copier après la connexion

Après avoir ajouté le fonction de déplacement des lignes de la table, exécutez l'instruction flashback Restore

Si une erreur est signalée : ORA-08194 : l'opération de table Flashback n'est pas autorisée sur les vues matérialisées, puis restaurez en créant une nouvelle table temporaire comme décrit ci-dessous.

Récupération 3 (créer une nouvelle table temporaire) :

Créez une nouvelle table demo1 et insérez les données à récupérer

create table DEMO1 as select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:30:11',‘yyyy-mm-dd hh24:mi:ss');
Copier après la connexion

Récupérez les données de la table demo1 dans la table demo

insert into DEMO select * from DEMO1 where not exists (select * from DEMO where DEMO.id=DEMO1.id);
Copier après la connexion

Recovery 4 (récupération basée sur sur scn):

Interrogez le numéro scn actuel

select current_scn from v$database;
Copier après la connexion

Réduisez le numéro scn d'un certain montant et exécutez l'instruction jusqu'à ce que nous puissions voir les données que nous avons supprimées

select * from DEMO as of scn 166937913;
Copier après la connexion

Utilisez le numéro scn approprié et exécutez l'instruction SQL pour la récupération de données

flashback table DEMO to scn 166937913;
Copier après la connexion
Tutoriel recommandé : " Tutoriel vidéo Oracle

》🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!