Mục lục

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

				
			
show 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
				
			
				
					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;
				
			

Thử drop bảng xem sao

				
					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.

show recyclebin 2

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

Đọc thêm  Các lỗi thường gặp trên Oracle Database (phần 1)
				
					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 2: ADMIN 1 + DATA GUARD

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Ý:

https://forms.gle/MtCAoRQFenP886y79

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é.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x