Bài giảng Công nghệ Oracle - Bài 7: Quản lý Tablespaces - Nguyễn Việt Hưng

1. Tablespaces và Data Files

Oracle lưu trữ dữ liệu logic trong tablespace và dữ liệu vật lý trong data file.

Tablespace:

Thuộc về chỉ một cơ sở dữ trong một thời điểm nhất định.

Bao gồm một hoặc nhiều data file.

Tách ra thành nhiều đơn vị lưu trữ logic.

Data file:

Thuộc về một tablespace

 và một database.

Là một nơi kho chứa cho

 lược đồ đối tượng dữ liệu.

pptx 33 trang yennguyen 1440
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ Oracle - Bài 7: Quản lý Tablespaces - Nguyễn Việt Hưng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Công nghệ Oracle - Bài 7: Quản lý Tablespaces - Nguyễn Việt Hưng

Bài giảng Công nghệ Oracle - Bài 7: Quản lý Tablespaces - Nguyễn Việt Hưng
QUẢN LÝ TABLESPACES 
Biên soạn: Nguyễn Việt Hưng 
Bộ môn: Khoa Học Máy Tính - Khoa Công Nghệ Thông Tin 
Trường Đại Học Giao Thông Vân Tải 
Website: https://viethung92gtvt.wordpress.com 
Email : viethung92gtvt@gmail.com 
1. Mục đích 
Mục đích 
Sau khi hoàn thành bài học này bạn có thể làm được những việc sau : 
Xác định mục đích của tablespaces 
Tạo tablespaces. 
Quản lý tablespaces. 
Lấy thông tin tablespaces. 
2. Nội dung bài học 
I. CẤU TRÚC CỦA DATABASE 
II. PHÂN LOẠI TABLESPACES 
III. QUẢN LÝ KHÔNG GIAN TRONG TABLESPACES 
V. THÊM, SỬA, XÓA TABLESPACES 
IV. CÁC TRẠNG THÁI CỦA TABLESPACES 
VI. TRUY VẤN THÔNG TIN VỀ TABLESPACE 
I. CẤU TRÚC CỦA DATABASE 
1. Tablespaces và Data Files 
Oracle lưu trữ dữ liệu logic trong tablespace và dữ liệu vật lý trong data file. 
Tablespace: 
Thuộc về chỉ một cơ sở dữ trong một thời điểm nhất định. 
Bao gồm một hoặc nhiều data file. 
Tách ra thành nhiều đơn vị lưu trữ logic. 
Data file:	 
Thuộc về một tablespace 
	và một database. 
Là một nơi kho chứa cho 
 lược đồ đối tượng dữ liệu. 
Database 
Tablespace 
Data files 
I. CẤU TRÚC CỦA DATABASE 
1. Tablespaces và Data Files 
I. CẤU TRÚC CỦA DATABASE 
2. Quan hệ giữa segment, extent và các blocks trong tablespace 
I. CẤU TRÚC CỦA DATABASE 
2. Quan hệ giữa segment, extent và các blocks trong tablespace 
Data Blocks : 
Đây là đơn vị lưu trữ dữ liệu nhỏ nhất trong database Oracle. Một block dữ liệu sẽ tương ứng với 1 số byte lưu trữ trong ổ đĩa. Kích thước của block dữ liệu được xác định bởi tham số khởi tạo DB_BLOCK_SIZE ngay khi database được tạo. 
Extents 
Một extent là 1 tập hợp các data block. Một extent chỉ nằm trên 1 datafile. 
Segments 
Một segment là vùng không gian cấp phát tương ứng với một đối tượng có trong một tablespace. Ta có thể phân ra làm một số loại segment chính sau: 
Data segments 
Index segments 
Temporary segments 
Undo (Rollback) segments 
Một segment có thể được trải rộng trên nhiều datafiles thuộc một tablespace. 
II. PHÂN LOẠI TABLESPACES 
II. PHÂN LOẠI TABLESPACES 
Permanent Tablespaces 
Permanent Tablespaces là nhóm tablespaces lưu trữ các đối tượng dữ liệu lâu dài. Các segment dữ liệu của permanent tablespaces được lưu trữ trên ổ đĩa trong các datafiles. 
Mỗi user được gán một permanent tablespaces khi user được tạo ra. Mệnh đề DEFAULT TABLESPACE trong câu lệnh CREATE DATABASE sẽ quy định tablespace mặc định được gán cho user. 
Một Oracle database bắt buộc phải có SYSTEM và SYSAUX tablespaces. 
Permanent Tablespaces 
SYSTEM Tablespace 
Bắt buộc phải có trong mỗi database. 
Được sở hữu bởi user SYS và lưu trữ các thông tin sau: 
Data dictionary 
Table và view chứa thông tin quản trị database. 
Các định nghĩa của store procedure, trigger, package,... 
Permanent Tablespaces 
SYSAUX Tablespace 
Là tablespace bổ trợ cho SYSTEM tablespace. 
Sử dụng cho các thành phần như Oracle Enterprise Manager, Oracle Streams, Oracle Ultra Search, Oracle Data Mining,... 
Permanent Tablespaces 
UNDO Tablespace 
Là tablespace đặc biệt được sử dụng để lưu trữ các undo segment phục vụ cho việc khôi phục lại (Rollback) các transaction chưa commit. 
Không thể tạo bất kỳ một đối tượng nào trong tablespace này. 
Các extent được quản lý ở chế độ locally managed. 
Cú pháp tạo: 
CREATE UNDO TABLESPACE undo1 
DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M; 
Permanent Tablespaces 
Optional User Tablespace 
Là tablespace dùng cho việc lưu trữ các đối tượng trong lược đồ dữ liệu của người sử dụng như table, view, sequence,index,.v.v.. 
Temporary Tablespaces 
Dữ liệu lưu trữ trong temporary tablespaces chỉ tồn tại trong một session. 
Dữ liệu trong temporary tablespaces được lưu trữ vật lý trong các temp files. 
Không chứa các đối tượng cố định (permanent objects) 
Được sử dụng để dành riêng cho các thao tác sắp xếp dữ liệu 
Nâng cao hiệu suất thực hiện mỗi khi có nhiều thao tác sắp xếp được thực hiện trên một vùng nhớ lớn và không phù hợp với kích thước của bộ nhớ trong của máy tính 
2.1 Default Temporary Tablespaces 
Chỉ định rõ temporary tablespace mặc định cho database 
Hủy bỏ việc sử dụng SYSTEM tablespace để lưu trữ dữ liệu tạm thời 
Được tạo ra bằng cách sử dụng lệnh: 
CREATE DATABASE 
ALTER DATABASE 
VD: 
ALTER DATABASE 
DEFAULT TEMPORARY TABLESPACE default_temp2; 
Để tìm default temporary tablespace trong CSDL, truy vấn DATABASE_PROPERTIES : 
SELECT PROPERTY_NAME,PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME LIKE ‘%TEMP%’; 
2.1 Default Temporary Tablespaces 
Default temporary tablespaces không thể: 
Bị hủy cho đến khi thiết lập một mặc định mới. 
Offline. 
Thay đổi thành permanent tablespace. 
III. QUẢN LÝ KHÔNG GIAN TRONG TABLESPACES 
Locally managed tablespace : (Mặc định từ phiên bản 9i) 
Các free extent được quản lý trong tablespace. 
Bitmap được sử dụng để ghi free extents. 
Mỗi bit tương ứng với một block hoặc nhóm các block. 
Giá trị bit chỉ rõ free hoặc đã sử dụng. 
Dictionary managed tablespace: (phiên bản <=8i) 
Các free extent được quản lý bởi data dictionary. 
Các tables thích hợp được cập nhật khi extents cấp phát hoặc thu hồi. 
III. QUẢN LÝ KHÔNG GIAN TRONG TABLESPACES 
Cú pháp chỉ rõ phương thức quản lý không gian khi tạo một tablespace của câu lệnh CREATE TABLESPACE: 
[ EXTENT MANAGEMENT { DICTIONARY | LOCAL 	} 
	[ AUTOALLOCATE | UNIFORM [SIZE integer[K|M]] ] ] 
Trong đó: 
DICTIONARY|LOCAL: Phương thức quản lý không gian là dictionary | locally managed. Phương thức dictionary chỉ có thể được khi SYSTEM tablespace cũng được quản lý theo phương thức dictionary. 
AUTOALLOCATE: hệ thống sẽ tự động quản lý kích thước của extent, không thể thay đổi kích thước của extent. 
UNIFORM: các extent có cùng kích thước. Mặc định nếu không chỉ rõ thì mỗi extent có kích thước 1 MB. 
READ 
IV. CÁC TRẠNG THÁI CỦA TABLESPACES 
WRITE 
READ 
WRITE 
ONLINE 
OFFLINE 
READ ONLY 
READ WRITE 
IV. CÁC TRẠNG THÁI CỦA TABLESPACES 
Không thể truy cập dữ liệu khi offline. 
Các Tablespaces không thể offline: 
SYSTEM tablespace. 
Default Undo Tablespace. 
Temporary tablespace. 
Các Tablespaces không thể read only: 
SYSTEM, SYSAUX tablespace. 
Undo Tablespace. 
Temporary tablespace. 
Cú pháp chuyển đổi các trạng thái của tablespaces: 
ALTER TABLESPACE tablespace_name online|offline|read only|read write; 
V. THÊM, SỬA, XÓA TABLESPACES 
1. Tạo mới tablespaces 
2. Mở rộng kích thước tablespaces 
3. Đổi tên hoặc thay đổi vị trí của datafiles 
4. Xóa tablespaces 
1. Tạo mới tablespaces 
permanent_tablespace_clause 
CREATE TABLESPACE tablespace_name DATAFILE clause ; 
temporary_tablespace_clause 
CREATE TEMPORARY TABLESPACE tablespace_name TEMPFILE clause ; 
uno_tablespace_clause 
CREATE UNDO TABLESPACE tablespace_name DATAFILE clause ; 
tablespace_name : Tên tablespace 
clause: ‘ đường_dẫn_file ’ SIZE kích_thước K|M . Có thể có nhiều datafile, phân cách nhau bởi dấu phẩy. 
1. Tạo mới tablespaces 
Ví dụ: 
Tạo permanent tablespace tên userdata gồm 2 datafile 
Create tablespace userdata datafile ‘%oracle_home%\oradata\usedata1.dbf’ size 10M, ‘%oracle_home%\oradata\usedata2.dbf’ size 20M; 
Tạo temporary tablespace tên temp2 
Create temporary tablespace temp2 tempfile ‘%oracle_home%\oradata\temp2.dbf’ size 100M; 
Tạo undo tablespace tên undo2 
Create undo tablespace undo2 datafile ‘%oracle_home%\oradata\undo2.dbf’ size 100M; 
2. Mở rộng kích thước tablespaces 
Một tablespace có thể mở rộng kích thước bằng cách: 
 Thay đổi kích thước của data file: 
Sử dụng tự động mở rộng AUTOEXTEND. 
Sử dụng bằng tay ALTER DATABASE (RESIZE). 
 Thêm một data file sử dụng ALTER TABLESPACE. 
2.1. Cho phép tự động mở rộng các data file 
 Sử dụng mệnh đề: 
AUTOEXTEND { OFF |ON[NEXT integer[K|M]] [MAXSIZE UNLIMITED|integer[K|M]]} 
Mặc định: 
Không tự động mở rộng data file khi không có mệnh đề này trong câu lệnh tạo tablespaces. 
Maxsize ở chế độ unlimited khi không thêm mệnh đề MAXSIZE 
Tự động mở rộng 1 MB khi không có mệnh đề NEXT 
 Mệnh đề đi sau các câu lệnh: 
CREATE DATABASE 
CREATE TABLESAPCE ... DATAFILE 
ALTER TABLESAPCE ... ADD DATAFILE 
ALTER DATABASE DATAFILE 
Truy vấn view DBA_DATA_FILES để xác định vị trí AUTOEXTEND được cho phép. 
CREATE TABLESPACE user_data 
DATAFILE 
 ‘C:/userdata01.dbf' SIZE 20M 
	 AUTOEXTEND ON NEXT 1M MAXSIZE 50M; 
Ví dụ: 
2.2. Thay đổi kích thước datafile bằng tay 
 Sử dụng mệnh đề: 
ALTER DATABASE [database]	DATAFILE ‘filename’[, ‘filename’] RESIZE integer[K|M] 
ALTER DATABASE 
	DATAFILE '/u03/oradata/userdata02.dbf‘ RESIZE 200M; 
 Ví dụ: 
2.3. Thêm data file vào một Tablespace 
 Sử dụng mệnh đề: 
ALTER TABLESPACE tablespace_name ADD DATAFILE ‘filename’[, ‘filename’] SIZE integer[K|M] 
 Ví dụ: 
ALTER TABLESPACE user_data 
ADD DATAFILE '/u01/oradata/userdata03.dbf‘ SIZE 200M; 
3. Đổi tên hoặc thay đổi vị trí của datafiles 
 ALTER TABLESPACE 
Tablespace phải offline, database phải open. 
Đổi tên hoặc di chuyển datafiles 
Sử dụng câu lệnh: 
ALTER TABLESPACE userdata RENAME 
DATAFILE '/u01/oradata/userdata01.dbf' 
TO '/u02/oradata/userdata01.dbf'; 
ALTER DATABASE 
Hoặc CSDL phải mounted, hoặc Tablespace phải offline nếu CSDL đang open. 
Đổi tên hoặc di chuyển datafiles 
ALTER DATABASE RENAME 
FILE '/u01/oradata/system01.dbf' 
TO '/u03/oradata/system01.dbf'; 
4. Xóa tablespaces 
Không thể xóa tablespace nếu đó là: 
SYSTEM , SYSAUX tablespace. 
Defaut temporary|undo tablespace 
Lệnh INCLUDING CONTENTS để xóa tablespace khi có tablespace có dữ liệu. 
INCLUDING CONTENTS AND DATAFILES xóa cả các data file. 
CASCADE CONSTRAINTS hủy tất cả các ràng buộc có liên quan tới các bảng bên ngoài tablespace. 
Ví dụ: 
DROP TABLESPACE userdata 
INCLUDING CONTENTS AND DATAFILES; 
5. Khôi phục datafile bị mất 
Alter database create datafile full_path_file_name; 
B1. Tạo lại datafile: 
B2. Khôi phục dữ liệu: 
Recover datafile full_path_file_name; 
VI. TRUY VẤN THÔNG TIN VỀ TABLESPACE 
Thông tin về tablespaces 
DBA_TABLESPACES 
V$TABLESPACE 
Thông tin về datafiles 
DBA_DATA_FILES 
V$DATAFILE 
Thông tin về tempfiles 
DBA_TEMP_FILES 
V$TEMPFILE 
Thông tin về tên vị trí lưu trữ của các datafile trong mỗi tablespace. 
Hiển thị tên, số datafile, trạng thái của tablespace. 
Kiểm tra về đặc tính AutoExtend của mỗi datafile. 
Kiểm tra dung lượng, ngày tạo của mỗi datafile. 
Hiển thị tổng dung lượng của các datafile có trong mỗi tablespace. 
Ngoài ra sv cần chủ động nghĩ thêm các thông tin cần truy vấn! 
Bài tập 
Tạo các permanent tablespaces với các thông tin như sau: 
a. 	Tablespace name: DATA01 
	Data file name: data01.dbf 
	size: 5M 
	location: %oracle_home%\oradata 
b. 	Tablespace name: DATA02 
	Data file name: data02.dbf 
	size: 10M 
	location: %oracle_home%\oradata 
c. 	Tablespace name: INDEX01 
	Data file name: index01.dbf 
	Size: 10M 
	Location: c:\oracle\oradata 
	Tự động mở rộng 500K, dung lượng tối đa datafile là 50 M 
d. Hiển thị thông tin về tên tablespace, datafile, kích thước datafile, trạng thái tablespace, ... 
Bài tập 
2 . Cấp phát thêm 5MB dung lượng trống cho tablespace DATA02. Hiển thị kết quả thu được. 
3 . Di chuyển datafile trong tablespace INDEX01sang thư mục %oracle_home\oradata. 
4 . Đăng nhập vào user SYSTEM, tạo bảng TEST trong tablespace DATA01 như sau: 
Create table TEST(id number(5)) tablespace DATA01; 
Chuyển trạng thái tablespace DATA01 sang READ ONLY. Insert dữ liệu vào bảng TEST. What happen? 
5. Chuyển trạng thái DATA01 sang READ WRITE . 
6. Liệt kê các datafile chứa trong thư mục C:\ORACLE. Gợi ý: truy vấn trong view dba_data_files . 
7 . Xóa tablespace DATA01. 

File đính kèm:

  • pptxbai_giang_cong_nghe_oracle_bai_7_quan_ly_tablespaces_nguyen.pptx