Quản trị tablespace trong Oracle là một phần quan trọng của quản trị cơ sở dữ liệu Oracle, bao gồm việc tạo, thay đổi, và quản lý tablespace để đảm bảo rằng các dữ liệu trong cơ sở dữ liệu được tổ chức và lưu trữ hiệu quả. Dưới đây là một số hoạt động quản trị chính liên quan đến tablespace:
Xem thêm Tablespace là gì: https://datalinks.vn/tablespace-la-gi/
1. Tạo Tablespace
Bạn có thể tạo một tablespace mới bằng cách sử dụng lệnh CREATE TABLESPACE. Dưới đây là ví dụ về cách tạo một tablespace mới:
CREATE TABLESPACE duong_tbs DATAFILE '/path/to/datafile/duong_tbs.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
Sử dụng OMF để quản lý tên file tự động:
CREATE TABLESPACE duong_tbs DATAFILE SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
Có 2 tablespace đặc biệt là temp và undo:
— add tempfile
alter tablespace temp add tempfile size 200M autoextend on next 20M maxsize unlimited;
— add UNDOTBS1
alter tablespace UNDOTBS1 add datafile size 200M autoextend on next 20M maxsize unlimited;
2. Thay đổi Tablespace
Để thay đổi các thuộc tính của một tablespace, bạn có thể sử dụng lệnh ALTER TABLESPACE. Ví dụ:
Thêm file dữ liệu mới vào tablespace:
ALTER TABLESPACE duong_tbs ADD DATAFILE '/path/to/datafile/duong_tbs2.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
OMF: hệ thống tự động sinh tên file và quản lý
ALTER TABLESPACE duong_tbs ADD DATAFILE SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
Thay đổi trạng thái của tablespace thành READ ONLY:
ALTER TABLESPACE duong_tbs READ ONLY;
Thay đổi trạng thái của tablespace trở lại READ WRITE:
ALTER TABLESPACE duong_tbs READ WRITE;
Thay đổi trạng thái của tablespace Online/Offline:
ALTER TABLESPACE duong_tbs ONLINE; ALTER TABLESPACE duong_tbs OFFLINE;
Xoá datafile:
alter tablespace DATA drop datafile '/u01/app/datafile/o1_mf_data_lnjr95qz_.dbf';
Thay đổi tham số datafile:
alter database datafile '/u01/datafile/o1_mf_indx_log_lnjpwbwf_.dbf' resize 50m; alter database datafile '/u01/datafile/o1_mf_data_lnjpwb5f_.dbf' autoextend on next 20m maxsize unlimited;
Đổi tên tablespace:
ALTER TABLESPACE duong_tbs RENAME TO duong1_tbs;
Mở rộng một datafile trong tablespace:
ALTER DATABASE DATAFILE '/path/to/datafile/duong_tbs.dbf' RESIZE 200M;
3. Xóa Tablespace
Để xóa một tablespace, bạn có thể sử dụng lệnh DROP TABLESPACE. Bạn có thể xóa cả dữ liệu file liên quan bằng cách thêm tùy chọn INCLUDING CONTENTS AND DATAFILES:
DROP TABLESPACE duong_tbs INCLUDING CONTENTS AND DATAFILES;
4. Kiểm tra Thông tin về Tablespace
Bạn có thể kiểm tra thông tin về tablespace bằng các câu lệnh truy vấn từ các view của Oracle, như DBA_TABLESPACES, DBA_DATA_FILES, và V$TABLESPACE.
Xem thông tin về tất cả các tablespace:
SELECT tablespace_name, status, contents FROM dba_tablespaces;
Xem thông tin chi tiết về các file dữ liệu của một tablespace:
SELECT file_name, bytes, autoextensible FROM dba_data_files WHERE tablespace_name = 'DUONG_TBS';
5. Quản lý dung lượng
Quản lý không gian là một phần quan trọng trong quản trị tablespace, bao gồm việc theo dõi và mở rộng không gian khi cần thiết:
Kiểm tra dung lượng trống trong tablespace:
SELECT tablespace_name, total_space - used_space AS free_space FROM (SELECT tablespace_name, SUM(bytes) AS total_space FROM dba_data_files GROUP BY tablespace_name) JOIN (SELECT tablespace_name, SUM(bytes) AS used_space FROM dba_segments GROUP BY tablespace_name) USING (tablespace_name);
Kiểm tra dung lượng DB: là tổng dung lượng hiện tại của tất cả các datafile và một số thành phần khác, trong đó Datafile là chính (ngoài ra còn có redolog, archivelog)
SELECT ROUND(SUM(BYTES)/1024/1024/1024,2) FROM DBA_DATA_FILES;
Dung lượng Schema:
select owner,round(sum(bytes/1024/1024/1024),3) from dba_segments group by owner order by owner;
Trạng thái datafile của tablespace:
select file_name,tablespace_name,online_status from dba_data_files;
Dung lượng datafile tăng theo tháng:
select to_char(creation_time,'yyyy/mm'), round(sum(bytes)/1024/1024/1024) "GB" from v$datafile group by to_char(creation_time,'yyyy/mm') order by 1;