Oracle stellt zu einem bestimmten Zeitpunkt Daten aus einer bestimmten Tabelle in der Datenbank wieder her

Wenn Sie während des Tests versehentlich Daten löschen oder die Daten wiederherstellen und die SQL wiederholt testen müssen, können Sie die Flashback-Funktion von Oracle verwenden, um die Datenbank auf einen bestimmten Zeitpunkt wiederherzustellen.

Daten bis zu einem bestimmten Zeitpunkt wiederherstellen

-- 假设表名为 HOLIDAY

-- 开启行移动
ALTER TABLE HOLIDAY ENABLE ROW MOVEMENT;
-- 恢复数据到某一时刻
FLASHBACK TABLE HOLIDAY TO TIMESTAMP TO_TIMESTAMP('2024-01-15 08:00:00', 'yyyy-mm-dd hh24:mi:ss');
-- 关闭行移动
ALTER TABLE HOLIDAY DISABLE ROW MOVEMENT;
REIHENBEWEGUNG

Wenn die Zeilenverschiebung nicht aktiviert ist, wird ein Fehler gemeldet ORA-08189: cannot flashback the table because row movement is not enabled.

Bezüglich der Zeilenbewegung lautet die Antwort von ChatGPT wie folgt:

In Oracle-Datenbanken ist die Aktivierung der Zeilenverschiebung (ROW MOVEMENT) eine Option zum Ändern der Tabellendefinition. Sie ermöglicht die Ausführung bestimmter Vorgänge für die Tabelle, wie z. B. das Aktualisieren, Löschen und Einfügen von Zeilen, und sorgt gleichzeitig für ein hohes Maß an Verfügbarkeit Der Tisch. Wenn Sie die Zeilenverschiebung aktivieren, haben Sie mehr Flexibilität beim Ändern der Tabellenstruktur, einschließlich der Änderung des physischen Speicherorts der Tabellenzeilen.

Daten zu einem bestimmten Zeitpunkt abfragen

-- 查询某一时刻的数据
SELECT * FROM HOLIDAY AS OF TIMESTAMP TO_TIMESTAMP('2024-01-15 08:00:00', 'yyyy-mm-dd hh24:mi:ss');

Ich denke du magst

Origin blog.csdn.net/weixin_45883310/article/details/136097618
Empfohlen
Rangfolge