/Cách tăng tablespace trong oracle

Cách tăng tablespace trong oracle

Trong hệ quản trị cơ sở dữ liệu Oracle, một tablespace là một không gian lưu trữ được dành riêng cho bảng, chỉ mục và đối tượng khác. Tablespace cung cấp một cách để quản lý và kiểm soát cách dữ liệu được lưu trữ và phân bố trên ổ đĩa. Mỗi bảng và chỉ mục trong Oracle phải thuộc về một tablespace.

1. Tại sao cần tăng tablespace

Khi bạn làm việc với Oracle Database, có một số lý do mà bạn có thể cần tăng kích thước của một tablespace:

Dữ liệu tăng lên: Khi dữ liệu trong các bảng hoặc chỉ mục tăng lên, bạn có thể cần tăng kích thước của tablespace để chứa dữ liệu mới.

Chấp nhận tải lưu trữ lớn hơn: Nếu bạn dự định lưu trữ một lượng dữ liệu lớn hơn trong hệ thống của mình, bạn có thể cần mở rộng tablespace để đảm bảo rằng có đủ không gian.

Quản lý không gian lưu trữ: Khi tablespace của bạn gần đầy, có thể gặp vấn đề về hiệu suất và không gian lưu trữ. Bằng cách tăng kích thước của tablespace, bạn có thể giảm được khả năng xảy ra vấn đề này.

Thực hiện các hoạt động ghi nhiều: Khi có nhiều hoạt động ghi vào hệ thống, tablespace có thể nhanh chóng trở nên đầy, và việc tăng kích thước có thể giúp giảm tình trạng đầy đủ và giữ cho các hoạt động ghi diễn ra mượt mà hơn.

Cách tăng tablespace trong oracle

2. Câu lệnh xử lý trong Oracle

Để tăng kích thước của một tablespace trong Oracle, bạn có thể sử dụng các câu lệnh SQL như ALTER TABLESPACE để thay đổi kích thước hoặc thêm các data file mới vào tablespace.

-- Tăng kích thước của một tablespace 

ALTER TABLESPACE tablespace_name ADD DATAFILE 'file_path' SIZE size; 

-- Thêm datafile mới vào tablespace 

ALTER TABLESPACE tablespace_name ADD DATAFILE 'file_path' SIZE size;

Lưu ý rằng việc tăng kích thước của tablespace không chỉ cần thiết khi cần thiết, mà còn cần được thực hiện một cách cẩn thận để tránh tình trạng đầy đủ không mong muốn và đảm bảo hiệu suất hệ thống.

Khi sử dụng các câu lệnh này, bạn cần xác định tablespace cụ thể mà bạn muốn thay đổi (tablespace_name), đường dẫn của datafile mới (file_path), và kích thước của datafile đó (size). Việc sử dụng câu lệnh nào phụ thuộc vào ngữ cảnh cụ thể của hệ thống và yêu cầu của bạn.

3. Các bước thường dùng khi thay đổi tablespace

3.1. Kiểm tra tablespace

Kiểm tra Dung Lượng Tổng Của Tablespace

SELECT tablespace_name, SUM(bytes) / (1024 * 1024) AS total_space_mb FROM dba_data_files WHERE tablespace_name = 'YOUR_TABLESPACE_NAME' GROUP BY tablespace_name;

Câu lệnh này sẽ hiển thị tổng dung lượng của tất cả các file dữ liệu thuộc tablespace “YOUR_TABLESPACE_NAME”.

Kiểm tra Dung Lượng Đã Sử Dụng

SELECT tablespace_name, SUM(bytes) / (1024 * 1024) AS used_space_mb FROM dba_segments WHERE tablespace_name = 'YOUR_TABLESPACE_NAME' GROUP BY tablespace_name;

Câu lệnh này sẽ hiển thị dung lượng đã được sử dụng trong tablespace “YOUR_TABLESPACE_NAME”.

Kiểm tra Dung Lượng Còn Trống

SELECT tablespace_name, SUM(bytes) / (1024 * 1024) AS free_space_mb FROM dba_free_space WHERE tablespace_name = 'YOUR_TABLESPACE_NAME' GROUP BY tablespace_name;

Câu lệnh này sẽ hiển thị dung lượng còn trống trong tablespace “YOUR_TABLESPACE_NAME”.

Kiểm tra Tỉ Lệ Sử Dụng

SELECT tablespace_name, (SUM(bytes) - SUM(blocks * (SELECT value FROM v$parameter WHERE name = 'db_block_size'))) / SUM(bytes) * 100 AS used_percent FROM dba_segments WHERE tablespace_name = 'YOUR_TABLESPACE_NAME' GROUP BY tablespace_name;

Câu lệnh này sẽ hiển thị tỷ lệ sử dụng của tablespace “YOUR_TABLESPACE_NAME” dưới dạng phần trăm.

Nếu bạn muốn biết xem tablespace đã vượt quá dung lượng không, bạn cần so sánh tổng dung lượng với dung lượng đã sử dụng và kiểm tra xem tỷ lệ sử dụng có vượt quá một giới hạn nào đó không. Thông thường, giới hạn được quy định dựa trên dung lượng tổng hoặc tỷ lệ sử dụng.

3.2. Thay đổi kích thước

Để mở rộng tablespace có tên “TPSINDEX” và kích thước của các data file trong đó để chúng có thể autoextensible, bạn có thể sử dụng câu lệnh ALTER TABLESPACE.

Cú pháp thường sử dụng:

ALTER TABLESPACE YOUR_TABLESPACE_NAME ADD DATAFILE path_file SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

Ví dụ:

ALTER TABLESPACE TPSINDEX ADD DATAFILE 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\TPSINDEX03.DBF' SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

Trong ví dụ này:

  • path_file ví dụ như “E:\APP\ADMINISTRATOR\ORADATA\ORCL\TPSINDEX03.DBF” là đường dẫn và tên của data file mới bạn muốn thêm vào tablespace “TPSINDEX“.
  • SIZE 1G là kích thước khởi tạo của data file mới (1GB). Bạn có thể điều chỉnh giá trị này theo nhu cầu của bạn.
  • AUTOEXTEND ON cho biết rằng data file này sẽ tự động mở rộng khi cần thiết.
  • NEXT 100M là kích thước mở rộng tiếp theo khi data file đạt đến giới hạn kích thước hiện tại.
  • MAXSIZE UNLIMITED cho biết data file có thể mở rộng đến kích thước không giới hạn.

Bạn có thể điều chỉnh các giá trị như kích thước khởi tạo, kích thước mở rộng, và giới hạn kích thước tối đa dựa trên yêu cầu cụ thể của hệ thống và dung lượng dự trữ có sẵn. Sau khi thực hiện câu lệnh ALTER TABLESPACE, tablespace “TPSINDEX” sẽ được mở rộng và các data file sẽ có khả năng autoextensible.