9 Quản lý Tablespaces vμ Datafiles
9.3 Quản lý tablespace
• Quản lý không gian trong tablespace
Có thể quản lý các extent trong tablespace theo hai chế độ:
• Quản lý bằng các từ điển: Oracle server sẽ cập nhật bảng t−ơng ứng trong từ điển dữ liệu mỗi khi extent đ−ợc cấp phát (allocated) hay thu hồi (deallocated).
• Quản lý cục bộ: Oracle server ánh xạ trạng thái của mỗi block với một nhóm các bits của một extent gọi là bitmap.
Đặt chế độ quản lý theo kiểu từ điển hay cục bộ theo mệnh đề:
extent_management_clause :== [ EXTENT MANAGEMENT
{ DICTIONARY | LOCAL
{ AUTOALLOCATE | UNIFORM [SIZE integer[K|M]] } } ]
DICTIONARY: tablespace đ−ợc quản lý theo chế độ từ điển
LOCAL: tablespace đ−ợc quản lý theo chế độ cục bộ
AUTOALLOCATE: hệ thống sẽ tự động có chế độ quản lý phù hợp.
UNIFORM: table space đ−ợc quản lý với các extents đồng nhất, có cùng kích th−ớc.
• Thay đổi, điều chỉnh khả năng l−u trữ của tablespace
• Sử dụng câu lệnh:
ALTER TABLESPACE tablespace { MINIMUM EXTENT integer[K|M] | DEFAULT storage_clause }
ALTER TABLESPACE app_data MINIMUM EXTENT 2M;
ALTER TABLESPACE app_data DEFAULT STORAGE (
INITIAL 2M NEXT 2M
MAXEXTENTS 999 );
• Sử dụng Oracle Enterprise Manager :
- Vào tablespace folder, chọn tablespace cần thay đổi.
- Trong page Extents sẽ hiện ra các thông số t−ơng ứng của table space.
- Điều chỉnh các thông số này cho phù hợp rồi chọn Apply.
• Đặt chế độ hoạt động cho tablespace, online hay offline
Khi tablespace là online, ng−ời sử dụng có thể truy cập dữ liệu vào tablespace. Trong tr−ờng hợp offline, ng−ời dùng sẽ không thể truy cập vào đó. Vì nhiều lý do khác nhau: để quản lý quyền truy nhập của ng−ời dung, tạo dữ liệu backup, phục hồi lại tablespace trong khi database đang mở, di chuyển các datafile trong khi database đang mở,… Quản trị viên có thể đặt lại chế độ hoạt động của tablespace là online hay offline.
• Sử dụng câu lệnh:
ALTER TABLESPACE tablespace {ONLINE
|OFFLINE [NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER]}
với các tuỳ chọn:
- NORMAL: đẩy toàn bộ data files trong tablespace ra khỏi vùng SGA
- TEMPORARY: thực hiện kiểm tra các online data files trong tablespace.
- IMMEDIATE: bỏ qua các thao tác kiểm tra cần thiết
- FOR RECOVER: sử dụng khi phục hồi tablespace. Ví du:
ALTER TABLESPACE app_data OFFLINE; TABLESPACE app_data ONLINE;
• Sử dụng Oracle Enterprise Manager:
- Vào tablespace folder, chọn tablespace cần thay đổi.
- Bấm chuột phải rồi chọn offline
• Đặt trạng thái Read-only cho tablespace
• Sử dụng câu lệnh:
ALTER TABLESPACE tablespace READ [ONLY | WRITE]
Ví du:
ALTER TABLESPACE app_data READ ONLY;
• Sử dụng Oracle Enterprise Manager:
- Vào tablespace folder, chọn tablespace cần thay đổi.
- Bấm chuột phải rồi chọn Make Read-Only
- Bấm Yes để hoàn tất công việc
• Thay đổi kích th−ớc của data files
• Sử dụng câu lệnh: Thêm mới data file
ALTER TABLESPACE tablespace
ADD DATAFILE filespec [autoextend_clause] [, filespec [autoextend_clause]]...
autoextend_clause :== [ AUTOEXTEND { OFF|ON[NEXT integer[K|M]] [MAXSIZE UNLIMITED | integer[K|M]] } ]
- AUTOEXTEND OFF|ON: tự động thay đổi kích th−ớc của data file
- NEXT: vùng đĩa cấp phát cho data file khi cần thêm các extents
- MAXSIZE: vùng đĩa tối đa đ−ợc cấp cho data file
- UNLIMITED: không hạn chế cấp phát không gian đĩa cho data file Ví dụ:
ALTER TABLESPACE app_data
ADD DATAFILE ’/DISK6/app_data_04.dbf’ SIZE 200M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
Thay đổi kích th−ớc data file hiện có
ALTER DATABASE [database]
DATAFILE ’filename’[, ’filename’]...autoextend_clause
• Sử dụng Oracle Enterprise Manager:
- Vào datafiles folder, chọn data file cần thay đổi.
- Đặt tuỳ chọn Enable Auto Extend trong page Auto Extend. Định kích th−ớc mới
Với cách làm trên, Oracle sẽ tự động thay đổi kích th−ớc của data files cho phù hợp. Ta cũng có thể thay đổi kích th−ớc của data files một cách trực tiếp:
ALTER DATABASE [database]
DATAFILE ’filename’[, ’filename’]... RESIZE integer[K|M]
• Bổ sung data files vào tablespace
• Sử dụng câu lệnh:
ALTER TABLESPACE tablespace
ADD DATAFILE filespec [autoextend_clause] [, filespec [autoextend_clause]]...
ví dụ:
ALTER TABLESPACE app_data
ADD DATAFILE ’/DISK5/app_data_03.dbf’ SIZE 200M;
• Sử dụng Oracle Enterprise Manager:
- Vào tablespace folder, chọn tablespace cần thay đổi.
- Bấm chuột phải rồi chọn Add Datafiles.
- Page General sẽ hiện lên một bảng cho phép nạp mới một data file.
- Chọn Create.
• Di chuyển các data file
• Sử dụng câu lệnh:
ALTER TABESPACE tablespace
RENAME DATAFILE ’filename’[, ’filename’]... TO ’filename’[, ’filename’]...
Ví dụ:
ALTER TABLESPACE app_data RENAME
DATAFILE ’/DISK4/app_data_01.dbf’ TO ’/DISK5/app_data_01.dbf’;
Các b−ớc:
- Đặt chế độ offline cho tablespace
- Di chuyển file dữ liệu t−ơng ứng bằng hệ điều hành
- Chạy câu lệnh trên
- Đặt lại chế độ offline cho tablespace Hoặc:
ALTER DATABASE [database]
RENAME FILE ’filename’[, ’filename’]... TO ’filename’[, ’filename’]...
ALTER DATABASE
RENAME FILE ’/DISK1/system_01.dbf’ TO ’/DISK2/system_01.dbf’;
Cách làm:
- Tắt database
- Di chuyển file dữ liệu t−ơng ứng bằng hệ điều hành
- Mount lại với hệ điều hành
- Thực hiện câu lệnh ở trên
- Mở lại database
• Các thông tin từ điển dữ liệu
Để có thể có các thông tin cần thiết ta có thể tham khảo một số view sau:
• Thông tin về tablespace: DBA_TABLESPACES, V$TABLESPACE
• Thông tin về data files: DBA_DATA_FILES, V$DATAFILE
• Thông tin về các file trung gian: DATA_TEMP_FILES, V$TEMPFILE