Cấu trúc lưu trữ

12 709 0
Cấu trúc lưu trữ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

www.updatesofts.com Chương 10 CẤU TRÚC LƯU TRỮ 10.1.CÁC LO*I SEGMENTS Segments vùng không gian objects (đối tượng) database Dưới đây, ta xem xét số loại segments cụ thể 10.1.1 Table Table (bảng), nơi lưu giữ liệu database Dữ liệu table lưu giữ không theo thứ tự bắt buộc Các liệu table thuộc loại nonpartitioned (không phân khu) phải lưu giữ tablespace Hình vẽ 37 Các loại segments 10.1.2 Table partition Có thể có số table database có số lượng truy cập lớn đồng thời Khi đó, liệu table lưu thành nhiều partition (phân khu), partition nằm tablespace khác Oracle server hỗ trợ việc phân chia giá trị khoá Khi table phân khu, partition xem segment 10.1.3 Cluster Các dòng liệu cluster lưu trữ theo giá trị trường khoá (key column) Một cluster chứa hay nhiều tables xem kiểu đoạn liệu (type of data segment) Các tables cluster thuộc đoạn có chung tính chất lưu trữ 10.1.4 Index Tất đầu mục (entries) ứng với index cụ thể lưu trữ index segment Một table có tới indexes, có nhiêu index segments sử dụng Mục đích segment tìm kiếm định vị dòng liệu table dựa khoá ORACLE 9i – Kiến trúc Quản trị Trang 111 www.updatesofts.com 10.1.5 Index-Organized Table Trong index-organized table, liệu index lưu trữ dựa vào giá trị khoá Một index-organized table khơng cần thiết đến table dùng để tìm kiếm (lookup), liệu trả trực tiếp từ index (index tree) Hình vẽ 38 Các loại segments (tiếp theo) 10.1.6 Index Partition Một index partitioned (phân khu) trải rộng nhiều tablespaces khác Khi đó, partition index tương ứng với segment (đoạn) không phép nằm dài nhiều tablespaces Mục đích việc sử dụng index partition để giảm thiểu tranh chấp vào I/O 10.1.7 Rollback Segment Rollback segment sử dụng transaction (giao dịch) để tạo thay đổi database Trước thay đổi liệu hay index blocks, giá trị cũ lưu giữ vào rollback segment Việc làm cho phép user phục hồi lại thay đổi 10.1.8 Temporary Segment Khi user thực lênh CREATE INDEX, SELECT DISTINCT, SELECT GROUP BY, Oracle cố gắng thực công việc xếp nhớ Khi công việc xếp cần đến nhiều không gian hơn, kết ghi trực tiếp lên đĩa Temporary segments dùng đến trường hợp 10.1.9 LOB Segment Khi hay nhiều cột table lưu giữ đối tượng lớn (large objects - LOBs) văn tài liệu, hình ảnh, hay videos Các cột chứa liệu lớn Oracle server lưu giữ segments riêng biết đến LOB segments Table lưu giữ giá trị dùng để định vị, xác định nơi lưu giữ liệu LOB tương ứng ORACLE 9i – Kiến trúc Quản trị Trang 112 www.updatesofts.com 10.1.10 LOB Index Một LOB index segment tạo ngầm định LOB segment tạo lập Các tính chất lưu giữ LOB index quy định quản trị viên database Mục đích việc sử dụng LOB index segment cho phép tìm kiếm giá trị cụ thể cột liệu loại LOB Hình vẽ 39 Các loại segments (tiếp theo) 10.1.11 Nested Table Cột liệu table tạo lập từ user-defined table (bảng người dùng định nghĩa) Trong trường hợp này, bảng liệu tương ứng với phần tử thuộc cột liệu (inner table), biết đến nested table lưu giữ segment riêng biệt 10.1.12 Bootstrap Segment Bootstrap segment, biết đến cache segment, tạo file script sql.bsq sau database tạo Segment giúp cho việc khởi tạo data dictionary cache database mở instance Dữ liệu bootstrap segment xem hay sửa chữa, cập nhật Quản trị database không cần thiết phải quan tâm tới segment 10.2.QUN LÝ EXTENTS 10.2.1 Cấp phát thu hồi extents Việc cấp phát extent xảy segment tạo mới, mở rộng hay bị thay đổi (altered) Và bị thu hồi segment bị huỷ, bị thay đổi, bị cắt bớt (truncated) Riêng rollback segments, extent bị tự động thu hồi ORACLE 9i – Kiến trúc Quản trị Trang 113 www.updatesofts.com 10.2.2 Sử dụng giải phóng extent Khi tablespace tạo, data files thuộc tablespace chứa phần thông tin sau:   Header block, tương ứng với block file Phần lại data file phần trống Hình vẽ 40 Sử dụng giải phóng extents Mỗi segments tạo lập, cấp phát vùng khơng thích hợp từ extents cịn trống tablespace Segment cố gắng sử dụng nhiều vùng không gian liên tiếp Sau cấp phát, extent xem used extent (extent sử dụng) Khi segments giải phóng vùng khơng gian, extents tương ứng với giải phóng đưa vào vùng free extents (extents rỗi) tablespace Với việc cấp phát giải phóng extents gây nên tượng phân đoạn vùng liệu data files tablespace 10.2.3 Kết hợp vùng khơng gian trống Ta thực việc kết hợp vùng không gian trống liên tiếp extents tablespace giải phóng Điều dễ xảy ra, ví dụ: có hai table bị huỷ (dropped) Các extents trống kết hợp lại thành extent điều kiện:    Khi tiến trình SMON khởi tạo space transaction để kết hợp extents trống Khi Oracle server cần phải cấp phát vùng trống mà cần tới lượng khơng gian trống lớn không gian extent Kết hợp theo yêu cầu quản trị viên database ORACLE 9i – Kiến trúc Quản trị Trang 114 www.updatesofts.com Hình vẽ 41 Kết hợp vùng không gian trống Lưu ý Tiến trình SMON kết hợp extent tablespaces mà PCTINCREASE lớn Trong storage clause mặc định tablespaces, đặt PCTINCREASE=1 user objects tự động kết hợp vùng trống giải phóng Yêu cầu kết hợp vùng trống View DBA_FREE_SPACE_COALESCED dùng để xem tablespace có extents rỗng kết hợp với Sử dụng câu lênh truy vấn sau để lấy thông tin: SVRMGR> SELECT tablespace_name, total_extents, 2> percent_extents_coalesced 3> FROM dba_free_space_coalesced 4> WHERE percent_extents_coalesced 100; TABLESPACE_NAME TOTAL_EXTE PERCENT_EX - -RBS 33 DATA01 22 rows selected Thực kết hợp vùng không gian trống tablespace lệnh đây: ALTER TABLESPACE tablespace COALESCE; Trong OEM, ta thực theo bước sau Sử dụng công cụ Oracle Tablespace Manager Chuyển tới nút Expand Tablespaces Chọn tablespace tương ứng Chọn mục Tools—>Coalesce Free Extents ORACLE 9i – Kiến trúc Quản trị Trang 115 www.updatesofts.com 10.3.BLOCK D" LI#U 10.3.1 Cấu trúc block liệu Hình vẽ 42 Cấu trúc Block liệu Các Blocks liệu Oracle cấu thành từ phần sau:    Block header (vùng đầu): Header chứa địa block liệu, thông tin table directory, row directory, transaction slots Thông tin Block headers tăng dần theo hướng từ xuống Data space (vùng liệu): Các dòng liệu nạp vào block theo hướng từ lên Free space (vùng trống): Vùng trống block vùng nằm vùng header vùng khơng gian lưu trữ dịng liệu Ban đầu, vùng không gian trống liên tiếp với nhau.Tuy nhiên sau thời gian sử dụng, vùng không gian trống block bị phân đoạn việc xố cập nhật, thay đổi dịng liệu Để giải vấn đề này, Oracle server cho phép thực kết hợp phân đoạn liệu ORACLE 9i – Kiến trúc Quản trị Trang 116 www.updatesofts.com 10.3.2 Các tham số sử dụng không gian block Các tham số sử dụng không gian block dùng để điều khiển việc sử dụng vùng không gian liệu index segments Các tham số điều khiển song song Hình vẽ 43 Các tham số sử dụng không gian block Các tham số INITRANS MAXTRANS số lượng khởi tạo, số lượng lớn transaction slots, tạo index block hay data block Các transaction slots sử dụng để lưu giữ thông tin transactions làm thay đổi block thời điểm Mỗi transaction sử dụng transaction slot INITRANS gán giá trị mặc định cho data segment, cho index segment MAXTRANS gán giá trị mặc định 255, dùng để tạo ngưỡng transactions đồng thời có làm thay đổi block liệu hay index block Khi thiết lập giá trị này, vùng không gian cho transaction slots đảm bảo để thực transaction cách hiệu Tham số điều khiển vùng lưu trữ liệu PCTFREE data segment lượng phần trăm vùng trống data block để dành cho việc tăng lên liệu việc cập nhật dòng liệu block Theo mặc đinh, PCTFREE 10 phần trăm PCTUSED data segment lượng phần trăm tối thiểu vùng không gian sử dụng, theo Oracle Server lưu giữ block liệu table Một block nạp lại vào free list (danh sách trống) PCTUSED giảm xuống Free list segment danh sách blocks sẵn dùng cho việc cấp phát có dịng liệu insert Theo mặc định free list tạo tương ứng với segment Tham số FREELISTS xác định số lượng free list Mặc định, PCTUSED 40 phần trăm PCTFREE PCTUSED tính tốn theo phần trăm vùng không gian liệu, tức vùng khơng gian Block cịn lại trừ vùng không gian header ORACLE 9i – Kiến trúc Quản trị Trang 117 www.updatesofts.com 10.3.3 Sử dụng không gian block Để cụ thể, ta theo dõi bước việc sử dụng vùng không gian block table có PCTFREE=20 PCTUSED=40:  Phase 1: Các dòng liệu nạp vào block đủ 80% (100-PCTFREE) Lúc này, ta insert thêm liệu vào Block Hình vẽ 44 Sử dụng vùng không gian block    Phase 2: 20% khơng gian cịn lại sử dụng cho việc tăng kích thước dòng liệu việc cập nhật lại dịng liệu Phase 3: Khi xố dịng liệu block, vùng khơng gian trống block tăng lên Tuy nhiên, lúc ta chưa thể insert liệu vào block Phase 4: Khi vùng trống block đạt tới mức PCTUSED, ta lại insert liệu vào Block Ta lại bước 01 10.3.4 Phân loại mức độ phân đoạn loại segment Tablespace Phân loại sử dụng Mức độ phân đoạn SYSTEM Data dictionary Không xảy TOOLS Applications Rất DATAn Data segments Ít INDEXn Index segments Ít RBSn Rollback segments Nhiều TEMPn Temporary segments Rất nhiều* Ký hiệu * có nghĩa với tablespaces thuộc loại PERMANENT Hiện tượng phân đoạn liệu xảy với mức độ khác loại segments khác Oracle khuyến cáo nên lưu trữ liệu nhiều tablespaces khác để giảm thiểu việc sử dụng lãng phí vùng không gian ORACLE 9i – Kiến trúc Quản trị Trang 118 www.updatesofts.com Phân loại Objects phân đoạn Các loại objects khác liệt kê theo mức độ tăng dần phân đoạn:      Các data dictionary objects, ngoại trừ audit table (bảng kiểm tra), không bị dropped hay truncated Vì chúng khơng bị phân đoạn tablespace Vùng không gian sử dụng cho việc lưu trữ ứng dụng cấp phát thu hồi trình tái cấu trúc lại nhớ Vì thế, tables lưu trữ có mức độ phân đoạn thấp Data segment index segements sử dụng cho việc lưu trữ liệu người dùng thuộc ứng dụng Các đối tượng thường có mức độ phân đoạn cao Do rollback segments phân bổ lại extents cách tự động, chúng dễ gây tượng phân đoạn liệu hệ thống Temporary segments permanent tablespaces thường xuyên bị xảy tượng phân đoạn 10.4.THÔNG TIN V7 C;U TRÚC L)U TR" 10.4.1 Các view lưu trữ thông tin Thông tin tablespaces, data files, segments, extents (thông tin phần sử dụng lần phần cịn trống) lấy từ từ điển liệu Thơng tin tablespace lưu DBA_TABLESPACES Thông tin file liệu database lưu DBA_DATA_FILES Thông tin vùng trống data file, vùng trống extent lưu DBA_FREE_SPACE View DBA_SEGMENTS lưu giữ thông tin segment Tương tự vậy, DBA_EXTENTS lưu giữ thông tin extent Hình vẽ 45 Các views chứa thông tin cấu trúc lưu trữ ORACLE 9i – Kiến trúc Quản trị Trang 119 www.updatesofts.com 10.4.2 Xem thông tin segments Thông tin lưu DBA_SEGMENTS Hình vẽ 46 Phân loại thơng tin có DBA_SEGMENTS Ta lấy thơng tin segments theo loại sau:    Thông tin tổng hợp: User sở hữu, tên segment, loại segment, tên tablespace Thơng tin kích cỡ: extents, blocks Thơng tin lưu trữ: INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENT, MAX_EXTENT, PCT_INCREASE Ví dụ: Xem số lượng extents blocks cấp phát cho segment user SCOTT sở hữu SVRMGR> SELECT segment_name,tablespace_name,extents,blocks 2> FROM dba_segments 3> WHERE owner='SCOTT'; SEGMENT_NAME -EMP DEPT BONUS SALGRADE DUMMY rows selected ORACLE 9i – Kiến trúc Quản trị TABLESPACE_NAME DATA01 DATA01 DATA01 DATA01 DATA01 EXTENTS 1 1 BLOCKS -55 5 5 Trang 120 www.updatesofts.com 10.4.3 Thông tin extents Thơng tin lưu DBA_EXTENTS Hình vẽ 47 Phân loại thơng tin có DBA_EXTENTS Ta lấy thông tin extents theo loại sau:   Thông tin nhận dạng: User sở hữu, tên segment, mã hiệu extent Thơng tin kích cỡ nơi đặt: TABLESPACE_NAME, RELATIVE_FNO, FILE_ID, BLOCK_ID, BLOCKS Ví dụ: Xem thơng tin chi tiết extents có segment cho trước SVRMGR> SELECT extent_id,file_id,block_id,blocks 2> FROM dba_extents 3> WHERE owner='SCOTT' 4> AND segment_name='EMP'; EXTENT_ID FILE_ID 4 4 4 rows selected ORACLE 9i – Kiến trúc Quản trị BLOCK_ID -2 27 32 42 57 BLOCKS -5 10 15 20 Trang 121 www.updatesofts.com 10.4.4 Thông tin vùng trống Thông tin vùng trống lưu DBA_FREE_SPACE Hình vẽ 48 Phân loại thơng tin có DBA_FREE_SPACE View chứa thơng tin Ví dụ: SVRMGR> SELECT tablespace_name, count(*), 2> max(blocks), sum(blocks) 3> FROM dba_free_space 4> GROUP BY tablespace_name; TABLESPACE_NAME COUNT(*) MAX(BLOCKS SUM(BLOCKS - -DATA01 1284 1533 RBS 2329 2419 SORT 1023 1023 SYSTEM 5626 5626 TEMP 2431 2431 rows selected ORACLE 9i – Kiến trúc Quản trị Trang 122 ... sử dụng cho việc lưu trữ ứng dụng cấp phát thu hồi trình tái cấu trúc lại nhớ Vì thế, tables lưu trữ có mức độ phân đoạn thấp Data segment index segements sử dụng cho việc lưu trữ liệu người dùng... Extents ORACLE 9i – Kiến trúc Quản trị Trang 115 www.updatesofts.com 10.3.BLOCK D" LI#U 10.3.1 Cấu trúc block liệu Hình vẽ 42 Cấu trúc Block liệu Các Blocks liệu Oracle cấu thành từ phần sau: ... Hình vẽ 45 Các views chứa thông tin cấu trúc lưu trữ ORACLE 9i – Kiến trúc Quản trị Trang 119 www.updatesofts.com 10.4.2 Xem thông tin segments Thơng tin lưu DBA_SEGMENTS Hình vẽ 46 Phân loại

Ngày đăng: 09/10/2013, 13:20

Hình ảnh liên quan

Table (bảng), là nơi lưu giữ dữ liệu trong database. Dữ liệu trong một table được lưu giữ không  theo  một  thứ  tự  bắt  buộc - Cấu trúc lưu trữ

able.

(bảng), là nơi lưu giữ dữ liệu trong database. Dữ liệu trong một table được lưu giữ không theo một thứ tự bắt buộc Xem tại trang 1 của tài liệu.
Hình vẽ 38. Các loại segments (tiếp theo) - Cấu trúc lưu trữ

Hình v.

ẽ 38. Các loại segments (tiếp theo) Xem tại trang 2 của tài liệu.
Hình vẽ 39. Các loại segments (tiếp theo) - Cấu trúc lưu trữ

Hình v.

ẽ 39. Các loại segments (tiếp theo) Xem tại trang 3 của tài liệu.
Hình vẽ 40. Sử dụng và giải phóng các extents - Cấu trúc lưu trữ

Hình v.

ẽ 40. Sử dụng và giải phóng các extents Xem tại trang 4 của tài liệu.
Hình vẽ 41. Kết hợp các vùng không gian trống - Cấu trúc lưu trữ

Hình v.

ẽ 41. Kết hợp các vùng không gian trống Xem tại trang 5 của tài liệu.
Hình vẽ 42. Cấu trúc của Block dữ liệu - Cấu trúc lưu trữ

Hình v.

ẽ 42. Cấu trúc của Block dữ liệu Xem tại trang 6 của tài liệu.
Hình vẽ 43. Các tham số sử dụng không gian trong block - Cấu trúc lưu trữ

Hình v.

ẽ 43. Các tham số sử dụng không gian trong block Xem tại trang 7 của tài liệu.
Hình vẽ 44. Sử dụng vùng không gian trong block - Cấu trúc lưu trữ

Hình v.

ẽ 44. Sử dụng vùng không gian trong block Xem tại trang 8 của tài liệu.
Các data dictionary objects, ngoại trừ các audit table (bảng kiểm tra), đều không bao giờ bị dropped hay truncated - Cấu trúc lưu trữ

c.

data dictionary objects, ngoại trừ các audit table (bảng kiểm tra), đều không bao giờ bị dropped hay truncated Xem tại trang 9 của tài liệu.
Hình vẽ 46. Phân loại các thông tin chính có trong DBA_SEGMENTS - Cấu trúc lưu trữ

Hình v.

ẽ 46. Phân loại các thông tin chính có trong DBA_SEGMENTS Xem tại trang 10 của tài liệu.
Hình vẽ 47. Phân loại các thông tin chính có trong DBA_EXTENTS - Cấu trúc lưu trữ

Hình v.

ẽ 47. Phân loại các thông tin chính có trong DBA_EXTENTS Xem tại trang 11 của tài liệu.
Hình vẽ 48. Phân loại các thông tin chính có trong DBA_FREE_SPACE View này chứa các thông tin về   - Cấu trúc lưu trữ

Hình v.

ẽ 48. Phân loại các thông tin chính có trong DBA_FREE_SPACE View này chứa các thông tin về Xem tại trang 12 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan