2017-01-06 23 views
5

Tôi đã thực sự giảm thay vì xóa một bảng trong Oracle SQL.Với Oracle, làm thế nào tôi có thể khôi phục lại một bảng mà tôi đã vô tình bị rơi?

Drop table emp; 

Có cách nào để truy xuất lại không?

+4

Bạn có sao lưu không? –

+1

nếu bạn may mắn và nó vẫn còn trong thùng rác, bạn có thể thấy chúng trong SQL Developer trên cây kết nối của bạn và nhấn chuột phải để khôi phục chúng ... nếu không, bạn sẽ phải yêu cầu DBA của bạn khôi phục nó từ một bản sao lưu – thatjeffsmith

+0

Xong nó thông qua sqlplus. –

Trả lời

7

Thực tế tồn tại một cách để truy xuất lại bảng đã bị xóa. Vui lòng tìm các bước bên dưới. Khi bạn thả một bảng, cơ sở dữ liệu không ngay lập tức loại bỏ không gian được liên kết với bảng. Thay vào đó, bảng được đổi tên và, cùng với bất kỳ đối tượng liên quan nào, nó được đặt trong Thùng rác của cơ sở dữ liệu. Thao tác Flashback Drop phục hồi bảng từ thùng rác.

Ngoài ra, hãy kiểm tra xem bạn có đang sử dụng oracle 10g trở lên không.

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 

Tôi yêu cầu bạn vui lòng đọc tài liệu hướng dẫn để làm rõ thêm. Hãy đi qua chúng.

tham khảo có thể được lấy từ: 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 thêm. Cảm ơn bạn. –

+1

Cảm ơn nó đã hoạt động !!! –

1

Khôi phục bảng giảm rất dễ dàng trong Oracle, với điều kiện là bàn không giảm với tùy chọn Purge. Trong trường hợp bảng được giảm xuống và không gian bị chiếm bởi bảng được giải phóng và bảng không được chuyển vào thùng rác. Nhưng nếu bảng bị giảm mà không có tùy chọn PURGE, Oracle có tính năng rất gọn gàng này - Thùng rác, tương tự như thùng rác trong Windows. Có hai chế độ xem thùng rác trong Oracle: USER_RECYCLEBIN và DBA_RECYCLEBIN, Từ đồng nghĩa RECYCLEBIN trỏ tới USER_RECYCLEBIN của bạn.

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

Có phiên bản nào cho Oracle (theo câu hỏi của op) không? –

+0

Chỉ sử dụng ApexSQL cho MS SQL nhưng tôi đã cập nhật ans của tôi cho Oracle .. – Darshak

+0

Một upvote vì bạn đã đưa ra tham chiếu chính xác và thay đổi câu trả lời. –

0

Sử dụng này:

select object_name, original_name, type from recyclebin; 

Mặc dù bảng giảm được đổi tên, nó vẫn giữ được dữ liệu của nó, bạn có thể dễ dàng "undrop" bảng bằng cách sử dụng flashback.

flashback table yourTableName to before drop; 
Các vấn đề liên quan