ホームページ  >  記事  >  データベース  >  誤って削除した Oracle データベースを迅速に復元する 3 つの方法

誤って削除した Oracle データベースを迅速に復元する 3 つの方法

WBOY
WBOY転載
2022-06-01 12:02:287336ブラウズ

この記事では、Oracle に関する関連知識を提供します。主に、データベース全体のバックアップやアーカイブ ログの使用率を考慮せずに、Oracle データベース内のデータを迅速に削除する方法を紹介します。データを復旧中です。皆さんのお役に立てれば幸いです。

誤って削除した Oracle データベースを迅速に復元する 3 つの方法

推奨チュートリアル: 「Oracle ビデオ チュートリアル

Oracle データベース内のデータを、すべての方法を考慮せずに誤って削除してしまうデータベースのバックアップとアーカイブ ログを使用するときにデータを迅速に復元するには?

次の 3 つの方法があります。

1. Oracle が提供するデータ回復方法として、削除削除方法に適したフラッシュバック方法を使用します。

まず、削除されたデータの時点を取得します。

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

2. Oracle の仮想ごみ箱機能を使用します

原理は、Oracle データベースがテーブルを削除するときに情報を削除します テーブルは直接空にされるのではなく、仮想

ごみ箱 に保存されます。この状態では、データベースはテーブルを コピー可能としてマークするため、ブロックは は再利用されていません。 より前のデータは引き続き復元できます。この方法は主に drop 削除に使用されます。

最初に

user_table ビューにクエリを実行して、削除されたテーブルを見つけます:

select table_name,dropped from user_tables;
select object_name,original_name,type,droptime from user_recyclebin;
12
この時点では、

object_nameoriginal_name に注意してください。 これは、ごみ箱に保存されているテーブルの名前と、最初に削除されたテーブルの名前です。テーブル名が変更されていない場合は、次のステートメントを使用して復元できます:

flashback table original_name to before drop;
1
Ifソーステーブル名がわからない、または新しい名前を変更する必要がある データがごみ箱のテーブル名に保存されている場合は、ごみ箱内の

object_name を使用して復元できます。コマンドは次のとおりです。

flashback table object_name to before drop new_table_name;
1

3. Oracle データベースのフラッシュバック機能を使用して、データベースを過去の特定の状態に復元します

これは

であることに注意してください。データベース全体のリカバリ、具体的な構文は次のとおりです:

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

4. データの完全な削除

削除する必要があるデータを特定して実行すると、不必要にスペースを占有したくない場合は、次の 3 つの方法を使用できます。

    truncate メソッドを使用して切り詰めます。 (データ回復は不可能です)
  1. 削除時にパージ オプションを追加します:
  2. drop table table_name purge
  3. recyclebin 領域を削除して永続化します。テーブルを削除します,drop table table_name カスケード制約 purge table table_name;

#5. ごみ箱を空にするについて

  1. 現在のユーザーのごみ箱を削除します

    purge recyclebin;

  2. ごみ箱内のすべてのユーザーのデータを削除します

    purge dba_recyclebin;

## 推奨チュートリアル: 「

Oracle ビデオ チュートリアル

以上が誤って削除した Oracle データベースを迅速に復元する 3 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。