この記事では、Oracle に関する関連知識を提供します。主に、データベース全体のバックアップやアーカイブ ログの使用率を考慮せずに、Oracle データベース内のデータを迅速に削除する方法を紹介します。データを復旧中です。皆さんのお役に立てれば幸いです。
推奨チュートリアル: 「Oracle ビデオ チュートリアル 」
Oracle データベース内のデータを、すべての方法を考慮せずに誤って削除してしまうデータベースのバックアップとアーカイブ ログを使用するときにデータを迅速に復元するには?
次の 3 つの方法があります。
まず、削除されたデータの時点を取得します。
select * from v$sql where sql_text like '%table_name%' ; 1
sql_text の内容に従って、
delete 実行ステートメントに対応する
delete time point を見つけ、次のステートメントを実行してクエリを実行します削除されたデータ。
select * from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’) where (删除时的条件) 12
主キーは繰り返されないことに注意してください
insert into table_name select * from from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’) where (删除时的条件) 123
ごみ箱 に保存されます。この状態では、データベースはテーブルを コピー可能としてマークするため、ブロックは は再利用されていません。 より前のデータは引き続き復元できます。この方法は主に drop 削除に使用されます。
最初にuser_table ビューにクエリを実行して、削除されたテーブルを見つけます:
select table_name,dropped from user_tables; select object_name,original_name,type,droptime from user_recyclebin; 12
object_name と
original_name に注意してください。 これは、ごみ箱に保存されているテーブルの名前と、最初に削除されたテーブルの名前です。テーブル名が変更されていない場合は、次のステートメントを使用して復元できます:
flashback table original_name to before drop; 1
object_name を使用して復元できます。コマンドは次のとおりです。
flashback table object_name to before drop new_table_name; 1
であることに注意してください。データベース全体のリカバリ、具体的な構文は次のとおりです:
SQL>alter database flashback on SQL>flashback database to scn SCNNO; SQL>flashback database to timestamp to_timestamp(‘frombyte 2021-09-02 23:59:59’,‘yyyy-mm-dd hh24:mi:ss’); 123
領域を削除して永続化します。テーブルを削除します,
drop table table_name カスケード制約 purge table table_name;
現在のユーザーのごみ箱を削除します
purge recyclebin;
ごみ箱内のすべてのユーザーのデータを削除します
purge dba_recyclebin;
Oracle ビデオ チュートリアル 」
以上が誤って削除した Oracle データベースを迅速に復元する 3 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。