2017-01-06 7 views
5

Oracle SQLで表を削除するのではなく、実際に削除しました。Oracleでは、誤って削除した表をどのように復元できますか?

Drop table emp; 

戻す方法はありますか?

+4

バックアップがありますか? –

+1

あなたが運が良ければごみ箱に残っていますが、接続ツリーのSQL Developerでそれらを確認して右クリックして復元することもできます。そうしないとDBAに復元を依頼する必要がありますバックアップ – thatjeffsmith

+0

sqlplusで完了しました。 –

答えて

7

実際には、削除されたテーブルを取り戻す方法があります。下記の手順をご覧ください。テーブルを削除すると、データベースはテーブルに関連付けられたスペースをすぐに削除しません。代わりに、テーブルの名前が変更され、関連付けられたオブジェクトとともにデータベースのごみ箱に配置されます。フラッシュバックドロップ操作は、ごみ箱からテーブルを回復します。

また、Oracle 10g以上を使用しているかどうかを確認してください。

SQL> drop table vimal; 

Table dropped. 

SQL> show recyclebin; 
ORIGINAL NAME RECYCLEBIN NAME    OBJECT TYPE DROP TIME 
---------------- ------------------------------ ------------ ------------------- 
VIMAL   BIN$c9/MeUSERvCmafRSweHlWQ==$0 TABLE  2017-01- 06:16:57:29 

SQL> flashback table "BIN$c9/MeUSERvCmafRSweHlWQ==$0" to before drop; 

Flashback complete. 

SQL> select * from vimal; 

NAME    ID 
---------- ---------- 
f     1 

詳細については、oracleのドキュメントをお読みください。それらを通過してください。

リファレンスから取ることができます:ドロップされた表のリカバリーhttps://docs.oracle.com/cd/B19306_01/backup.102/b14192/flashptr004.htm

+0

http://elena-sqldba.blogspot.in/2013/01/how-to-retrieve-dropped-table-in-oracle.html – Darshak

+0

@dudumarkovitz追加。ありがとうございました。 –

+1

ありがとうございました!!! –

1

は、Oracleが容易で、テーブルは、PURGEオプションでドロップされなかったことを条件とします。テーブルが削除され、テーブルが占有するスペースが解放され、テーブルがごみ箱に移動しない場合しかし、PURGEオプションを指定せずに表を削除した場合、OracleではWindowsのごみ箱に似た、この非常にきれいな機能 - ごみ箱があります。 Oracleでは、USER_RECYCLEBINとDBA_RECYCLEBINの2つのrecyle binビューがあります。同義語RECYCLEBINはUSER_RECYCLEBINを指します。

http://elena-sqldba.blogspot.in/2013/01/how-to-retrieve-dropped-table-in-oracle.html

http://www.dba-oracle.com/t_recover_dropped_table.htm

+0

オラクル用のバージョンを持っていますか? –

+0

ApexSQLはMS SQLのみを使用しますが、私はOracleのために私のansを更新しています。 – Darshak

+0

正しい参照を与えて答えを変更したので、upvote。 –

0

使用この:

select object_name, original_name, type from recyclebin; 

削除された表の名前が変更されているが、それはflashbackを使用してテーブル "UNDROP" 簡単にすることができます、そのデータを保持します。

flashback table yourTableName to before drop; 
関連する問題