Heim > Datenbank > Oracle > Hauptteil

So stellen Sie die Wiederherstellung nach versehentlichem Löschen von Tabellendaten beim Parsen von Oracle-Instanzen sicher

WBOY
Freigeben: 2022-07-25 20:18:22
nach vorne
3055 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen relevantes Wissen über „Oracle“: Bei der Verwendung von Oracle-Daten wurden die Daten in der Tabelle versehentlich gelöscht und übermittelt. Hier finden Sie eine Einführung, wie Sie die Tabellendaten wiederherstellen können, nachdem Oracle sie versehentlich gelöscht hat Ich hoffe, es wird für alle hilfreich sein.

So stellen Sie die Wiederherstellung nach versehentlichem Löschen von Tabellendaten beim Parsen von Oracle-Instanzen sicherEmpfohlenes Tutorial: „

Oracle Video Tutorial

Wiederherstellung basierend auf der Zeit

Diese Methode erfordert, dass wir die Zeit zum Ausführen der Löschanweisung ungefähr kennen.

Fragen Sie die aktuelle Systemzeit ab: select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

Angenommen, es ist 2022-04-02 16:27: Nach 11 Minuten wird die Löschanweisung ausgeführt
delete from demo;select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;

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

Zu diesem Zeitpunkt können die Daten nicht in der Tabelle abgefragt werden. Wir kennen die Löschausführungszeit, schieben 1 Minute nach vorne (die Löschausführungszeit kann vorher liegen, je kleiner, desto besser, in diesem Beispiel wird 1 Minute verwendet) und führen die folgende Anweisung aus

select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');
Nach dem Login kopieren

Sie können das sehen, obwohl die aktuelle Demo-Tabelle Es sind keine Daten darin, aber Sie können die Daten aus der Demo-Tabelle für die erste Minute abfragen.

Wiederherstellung 1: Zu diesem Zeitpunkt können Sie die SQL-Datei über die Funktion zum Exportieren von Abfrageergebnissen des Plsql-Tools exportieren und dann die Einfügeanweisung in der SQL-Datei zur Datenwiederherstellung erneut ausführen.

Wiederherstellung 2: Führen Sie die folgende SQL zur Datenwiederherstellung aus:

flashback table DEMO to timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');
Nach dem Login kopieren

Wenn ein Fehler gemeldet wird ORA-08189: Die Zeilenverschiebungsfunktion ist nicht aktiviert und die Tabelle kann nicht zurückgeflasht werden

Führen Sie dann Folgendes aus:

alter table DEMO enable row movement;
Nach dem Login kopieren

Nach dem Hinzufügen der Führen Sie die Funktion zum Verschieben von Tabellenzeilen aus. Führen Sie die Flashback-Anweisung „Wiederherstellen“ aus. Wenn ein Fehler gemeldet wird: ORA-08194: Der Flashback-Tabellenvorgang ist für materialisierte Ansichten nicht zulässig. Stellen Sie ihn wie folgt wieder her, indem Sie eine neue temporäre Tabelle erstellen.

Wiederherstellung 3 (eine neue temporäre Tabelle erstellen):

Erstellen Sie eine neue Demo1-Tabelle und fügen Sie die Daten ein, die wiederhergestellt werden müssen.

create table DEMO1 as select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:30:11',‘yyyy-mm-dd hh24:mi:ss');
Nach dem Login kopieren

Stellen Sie die Daten der Demo1-Tabelle in der Demotabelle wieder her on scn):

Fragen Sie die aktuelle SCN-Nummer ab

insert into DEMO select * from DEMO1 where not exists (select * from DEMO where DEMO.id=DEMO1.id);
Nach dem Login kopieren

Reduzieren Sie die SCN-Nummer um einen bestimmten Betrag und führen Sie die Anweisung aus, bis wir die von uns gelöschten Daten anzeigen können

select current_scn from v$database;
Nach dem Login kopieren

Verwenden Sie die entsprechende SCN-Nummer und führen Sie die SQL-Anweisung aus zur Datenwiederherstellung

select * from DEMO as of scn 166937913;
Nach dem Login kopieren

Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonSo stellen Sie die Wiederherstellung nach versehentlichem Löschen von Tabellendaten beim Parsen von Oracle-Instanzen sicher. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!