Bài giảng Quản lý Tablespaces trình bày cấu trúc của Database; phân loại Tablespaces; quản lý không gian trong Tablespaces; các trạng thái của Tablespaces; thêm, sửa, xóa Tablespaces; truy vấn thông tin về Tablespace.
QUẢN LÝ TABLESPACES Mục đích Mục đích • Sau hồn thành học bạn làm việc sau : • Xác định mục đích tablespaces • Tạo tablespaces • Quản lý tablespaces • Lấy thông tin tablespaces I CẤU TRÚC CỦA DATABASE Tablespaces Data Files Oracle lưu trữ liệu logic tablespace liệu vật lý data file • Tablespace: – Thuộc sở thời điểm định – Bao gồm nhiều data file – Tách thành nhiều đơn vị lưu trữ logic • Data file: – Thuộc tablespace database – Là nơi kho chứa cho lược đồ đối tượng liệu Database Tablespace Data files I CẤU TRÚC CỦA DATABASE Tablespaces Data Files I CẤU TRÚC CỦA DATABASE Quan hệ segment, extent blocks tablespace I CẤU TRÚC CỦA DATABASE Quan hệ segment, extent blocks tablespace ❖ Data Blocks: Đây đơn vị lưu trữ liệu nhỏ database Oracle Một block liệu tương ứng với số byte lưu trữ ổ đĩa Kích thước block liệu xác định tham số khởi tạo DB_BLOCK_SIZE database tạo ❖ Extents Một extent tập hợp data block Một extent nằm datafile ❖ Segments Một segment vùng không gian cấp phát tương ứng với đối tượng có tablespace Ta phân làm số loại segment sau: • Data segments • Index segments • Temporary segments • Undo (Rollback) segments Một segment trải rộng nhiều datafiles thuộc tablespace II PHÂN LOẠI TABLESPACES II PHÂN LOẠI TABLESPACES Permanent Tablespaces • Permanent Tablespaces nhóm tablespaces lưu trữ đối tượng liệu lâu dài Các segment liệu permanent tablespaces lưu trữ ổ đĩa datafiles • Mỗi user gán permanent tablespaces user tạo Mệnh đề DEFAULT TABLESPACE câu lệnh CREATE DATABASE quy định tablespace mặc định gán cho user • Một Oracle database bắt buộc phải có SYSTEM SYSAUX tablespaces 1.Permanent Tablespaces ❑ SYSTEM Tablespace • Bắt buộc phải có database • Được sở hữu user SYS lưu trữ thông tin sau: − Data dictionary − Table view chứa thông tin quản trị database − Các định nghĩa store procedure, trigger, package, 1.Permanent Tablespaces ❑ SYSAUX Tablespace • Là tablespace bổ trợ cho SYSTEM tablespace • Sử dụng cho thành phần Oracle Enterprise Manager, Oracle Streams, Oracle Ultra Search, Oracle Data Mining, IV CÁC TRẠNG THÁI CỦA TABLESPACES ONLINE READ ONLY READ WRITE OFFLINE READ WRITE WRITE READ IV CÁC TRẠNG THÁI CỦA TABLESPACES • Khơng thể truy cập liệu 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 trạng thái tablespaces: ALTER TABLESPACE tablespace_name online|offline|read only|read write; V THÊM, SỬA, XÓA TABLESPACES Tạo tablespaces Mở rộng kích thước tablespaces Đổi tên thay đổi vị trí datafiles Xóa tablespaces Tạo 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 dấu phẩy Tạo tablespaces Ví dụ: • Tạo permanent tablespace tên userdata gồm 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; Mở rộng kích thước tablespaces Một tablespace mở rộng kích thước cách: ❖ Thay đổi kích thước data file: • Sử dụng tự động mở rộng AUTOEXTEND • Sử dụng tay ALTER DATABASE (RESIZE) ❖ Thêm data file sử dụng ALTER TABLESPACE ❑ 2.1 Cho phép tự động mở rộng 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 khơng có mệnh đề câu lệnh tạo tablespaces - Maxsize chế độ unlimited không thêm mệnh đề MAXSIZE - Tự động mở rộng MB khơng có mệnh đề NEXT • Mệnh đề sau câu lệnh: CREATE DATABASE CREATE TABLESAPCE DATAFILE ALTER TABLESAPCE ADD DATAFILE ALTER DATABASE DATAFILE • Ví dụ: CREATE TABLESPACE user_data DATAFILE ‘C:/userdata01.dbf' SIZE 20M AUTOEXTEND ON NEXT 1M MAXSIZE 50M; • Truy vấn view DBA_DATA_FILES để xác định vị trí AUTOEXTEND cho phép ❑ 2.2 Thay đổi kích thước datafile tay • Sử dụng mệnh đề: ALTER DATABASE [database] integer[K|M] • DATAFILE ‘filename’[, ‘filename’] RESIZE Ví dụ: ALTER DATABASE DATAFILE '/u03/oradata/userdata02.dbf‘ RESIZE 200M; ❑ 2.3 Thêm data file vào 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; Đổi tên thay đổi vị trí datafiles ➢ ALTER TABLESPACE • Tablespace phải offline, database phải open • Đổi tên 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, Tablespace phải offline CSDL open – Đổi tên di chuyển datafiles ALTER DATABASE RENAME FILE '/u01/oradata/system01.dbf' TO '/u03/oradata/system01.dbf'; Xóa tablespaces • Khơng thể xóa tablespace là: –SYSTEM, SYSAUX tablespace –Defaut temporary|undo tablespace • Lệnh INCLUDING CONTENTS để xóa tablespace có tablespace có liệu • INCLUDING CONTENTS AND DATAFILES xóa data file • CASCADE CONSTRAINTS hủy tất ràng buộc có liên quan tới bảng bên ngồi tablespace • Ví dụ: DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES; Khôi phục datafile bị B1 Tạo lại datafile: Alter database create datafile full_path_file_name; B2 Khôi phục liệu: Recover datafile full_path_file_name; VI TRUY VẤN THÔNG TIN VỀ TABLESPACE Thơng tin tablespaces • DBA_TABLESPACES • V$TABLESPACE Thơng tin datafiles • DBA_DATA_FILES • V$DATAFILE Thơng tin tempfiles • DBA_TEMP_FILES • V$TEMPFILE Thơng tin tên vị trí lưu trữ datafile tablespace Hiển thị tên, số datafile, trạng thái tablespace Kiểm tra đặc tính AutoExtend datafile Kiểm tra dung lượng, ngày tạo datafile Hiển thị tổng dung lượng datafile có tablespace Ngồi sv cần chủ động nghĩ thêm thông tin cần truy vấn! Bài tập Tạo permanent tablespaces với thông tin sau: a Tablespace name: DATA01 d Hiển thị thông tin tên Data file name: data01.dbf tablespace, datafile, kích size: 5M thước datafile, trạng thái location: %oracle_home%\oradata tablespace, 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 50 M Bài tập Cấp phát thêm 5MB dung lượng trống cho tablespace DATA02 Hiển thị kết thu Di chuyển datafile tablespace INDEX01sang thư mục %oracle_home\oradata Đăng nhập vào user SYSTEM, tạo bảng TEST tablespace DATA01 sau: Create table TEST(id number(5)) tablespace DATA01; Chuyển trạng thái tablespace DATA01 sang READ ONLY Insert liệu vào bảng TEST What happen? Chuyển trạng thái DATA01 sang READ WRITE Liệt kê datafile chứa thư mục C:\ORACLE Gợi ý: truy vấn view dba_data_files Xóa tablespace DATA01 ... mục đích tablespaces • Tạo tablespaces • Quản lý tablespaces • Lấy thơng tin tablespaces I CẤU TRÚC CỦA DATABASE Tablespaces Data Files Oracle lưu trữ liệu logic tablespace liệu vật lý data file...