Oracleデータのロールバックの全過程
前言
最近は比較的古いプロジェクトレポートのバグを修正する時、このプロジェクトにあまり詳しくないので、生産環境データの修正が間違っています。
ある時点のテーブルのデータを表示します。
上のobjectnameはここで削除されたテーブルです。データベースごみ箱の中の臨時テーブル名BIN$djh 3 J 69 WQfGWAda 1 D 76/9 NA=0
回復テーブルを2019-04-16 21:43:38時点に、DELETEおよびUPDATE操作により修正されたデータを回復します。
注意:一意条件idでデータを位置決めする必要があります。
この中で回復テーブルを2019-04-16 21:45:38時点に戻し、INSERT操作により修正されたデータとします。
注意:唯一の条件でunique_を通過する必要があります。id位置決めデータ。
ブログを参照してください
https://www.cnblogs.com/autopenguin/p/5952671.html
https://www.jb51.net/article/147509.htm
ここでは、Oracleデータのロールバックに関する記事を紹介します。Oracleデータのロールバックの内容については、以前の記事を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。
最近は比較的古いプロジェクトレポートのバグを修正する時、このプロジェクトにあまり詳しくないので、生産環境データの修正が間違っています。
ある時点のテーブルのデータを表示します。
select * from as of timestamp to_timestamp('2019-04-15 22:00:38', 'yyyy-mm-dd hh24:mi:ss');
フラッシュバックを開けて、開けないとリターンできません。
alter table enable row movement;
フラッシュバックをオフにして、ロールバックデータの後はシャットダウンが必要です。
alter table disable row movement;
フラッシュバックテーブルのデータはある時点になります。
flashback table to timestamp TO_TIMESTAMP('2019-04-15 22:00:38', 'yyyy-mm-dd hh24:mi:ss');
drop表
drop table ;
データベースのごみ箱のレコードを調べます。
select object_name,original_name, type from user_recyclebin;
削除されたテーブルオブジェクトのクエリー上のobjectnameはここで削除されたテーブルです。データベースごみ箱の中の臨時テーブル名BIN$djh 3 J 69 WQfGWAda 1 D 76/9 NA=0
select * from "BIN$djh3J69WQfGWda1D76/9NA==$0";
削除されたテーブルオブジェクトを元に戻します。
FLASHBACK TABLE TO BEFORE DROP;
DELETEおよびUPDATE操作の修正データを表示します。
SELECT *
FROM AS OF TIMESTAMP to_timestamp('2019-04-16 21:43:38', 'yyyy-mm-dd hh24:mi:ss')
MINUS
SELECT *
FROM ;
DELETEおよびUPDATE操作修正データを復元します。回復テーブルを2019-04-16 21:43:38時点に、DELETEおよびUPDATE操作により修正されたデータを回復します。
注意:一意条件idでデータを位置決めする必要があります。
MERGE INTO a
USING (SELECT *
FROM AS OF TIMESTAMP to_timestamp('2019-04-16 21:43:38', 'yyyy-mm-dd hh24:mi:ss')
MINUS
SELECT *
FROM ) b
ON (a.id = b.id)
WHEN MATCHED THEN
UPDATE
SET a.col = b.col,
WHEN NOT MATCHED THEN
INSERT
VALUES
(b.id,
b.col);
INSERT操作の修正データを表示します。
SELECT *
FROM
MINUS
SELECT *
FROM AS OF TIMESTAMP to_timestamp('2019-04-16 21:45:38', 'yyyy-mm-dd hh24:mi:ss');
INSERT操作で修正したデータを復元します。この中で回復テーブルを2019-04-16 21:45:38時点に戻し、INSERT操作により修正されたデータとします。
注意:唯一の条件でunique_を通過する必要があります。id位置決めデータ。
DELETE FROM a
WHERE EXISTS (SELECT 1
FROM (SELECT *
FROM
MINUS
SELECT *
FROM AS OF TIMESTAMP to_timestamp('2019-04-16 21:45:38', 'yyyy-mm-dd hh24:mi:ss')) b
WHERE a.id = b.id);
時間が長すぎると、データがスクロールできなくなります。データに問題があると、すぐに処理します。ブログを参照してください
https://www.cnblogs.com/autopenguin/p/5952671.html
https://www.jb51.net/article/147509.htm
ここでは、Oracleデータのロールバックに関する記事を紹介します。Oracleデータのロールバックの内容については、以前の記事を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。