Giới thiệu
Có 1 tính năng trong Oracle Database, mà các bạn mới làm thường ít để ý, và nó gây lãng phí khá nhiều dung lượng lưu trữ.
Đó là Recycle Bin
Khi tính năng này được bật lên, nếu bạn xoá 1 bảng, bảng đó sẽ không thực sự bị xoá, nó (và các object liên quan như index, constraint, lob) sẽ được lưu giữ trong Recycle Bin.
Nếu sau này, bạn hối hận vì đã xoá nó, bạn hoàn toàn có thể khôi phục nó lại từ Recycle Bin. Kỹ thuật này còn có tên là Flashback Drop.
Tuy nhiên, việc nó vẫn còn ở lại Recycle Bin sau khi xoá, sẽ chiếm dụng dung lượng đáng kể. Nó sẽ vẫn cứ ở đó, cho đến khi tablespace đầy, cần cấp phát thêm dung lượng.
Do đó, nếu bạn thực sự muốn xoá 1 bảng, sau khi xoá bảng đó, bạn cần xoá nó cả trong Recycle Bin nữa.
Bạn có thể xem video demo tại đây
Thực hành với Recycle Bin
Kiểm tra xem Recycle Bin đã được bật hay chưa
Để kiểm tra xem Recycle Bin có đang được bật hay không, bạn dùng câu lệnh
show parameter recyclebin
Nếu giá trị của recyclebin là ON, tức là tính năng Recycle Bin đã được bật.
Nếu tính năng Recycle Bin chưa được bật, bạn có thể bật nó lên bằng câu lệnh sau:
alter system set recyclebin = ON scope=spfile;
Sau đó restart lại database
shutdown immediate startup
Tương tự, nếu bạn muốn tắt chức năng Recycle Bin đi.
Tạo bảng:
create table customer (id number, name varchar2(30)); insert into customer values (1, 'Nguyen Van A'); insert into customer values (2, 'Nguyen Van B'); insert into customer values (3, 'Nguyen Van C'); insert into customer values (4, 'Nguyen Van D'); commit;
Drop bảng
drop table CUSTOMER;
Chú ý: Nếu bạn muốn xoá hẳn bảng, mà không lưu trong Recycle Bin, bạn dùng thêm option Purge khi drop bảng như sau:
drop table CUSTOMER purge;
Kiểm tra Recycle Bin
Để kiểm tra xem trong Recycle Bin đang có những bảng nào, các bạn sử dụng câu lệnh sau:
set lines 300 col object_name for a30 col ORIGINAL_NAME for a30 select object_name, original_name, type, droptime, can_undrop, can_purge from recyclebin;
Câu lệnh trên sẽ liệt kê các bảng trong Recycle Bin mà bạn sở hữu.
Nếu bạn muốn xem tất cả các đối tượng đang có trong Recycle Bin, bạn cần truy vấn trong dba_recyclebin
set lines 300 col object_name for a30 col ORIGINAL_NAME for a30 select owner, object_name, original_name, type, droptime, can_undrop, can_purge from dba_recyclebin;
Trong đó:
- object_name: Tên của bảng sau khi bị drop. Tên của nó sẽ bắt đầu bằng BIN$…
- original_name: Tên của bảng trước khi bị drop
- droptime: Thời gian mà bảng bị drop
- can_undrop: Có thể khôi phục lại bảng được hay không
- can_purge: Có thể xoá bảng khỏi Recycle Bin được hay không
Khôi phục lại bảng từ Recycle Bin hay Flashback Drop
flashback table customer to before drop;
Xoá bảng khỏi Recycle Bin
Xoá 1 bảng cụ thể khỏi Recycle Bin
purge table customer;
hay xoá toàn bộ Recycle Bin
PURGE RECYCLEBIN;
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHOÁ DÀNH CHO NGƯỜI MỚI
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)
CÁC KHOÁ NÂNG CAO:
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD
CÁC KHOÁ COMBO:
COMBO 1: ADMIN 1 + MULTITENANT 12c
COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD
LỊCH HỌC:
Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE
ĐĂNG KÝ:
Form đăng ký
Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.