YOMEDIA
ADSENSE
Oracle9i Kiến thức và quản trị- P12
81
lượt xem 13
download
lượt xem 13
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Dung lượng bộ nhớ cần thiết cho tiến trình sắp xếp được xác định dựa trên tham số khởi tạo SORT_AREA_SIZE. Trong một số trường hợp, nhiều thao tác sắp xếp cùng được sử dụng và cần nhiều bộ nhớ hơn. Khi này bộ nhớ trong của máy là không thể đáp ứng được và kết quả của việc sắp xếp đó cần phải được tạm thời lưu lên đĩa. Vùng đĩa lưu trữ các dữ liệu trung gian này chính là temporary segments....
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Oracle9i Kiến thức và quản trị- P12
- www.updatesofts.com Phân lo i các Objects và phân o n Các lo i objects khác nhau ư c li t kê dư i ây theo m c tăng d n v phân o n: 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. Vì th chúng không b phân o n trong tablespace. Vùng không gian s d ng cho vi c lưu tr các ng d ng luôn ư c c p phát và thu h i trong quá trình tái c u trúc l i b nh . Vì th , các tables lưu tr này có m c phân o n là th p. Data segment và index segements ư c s d ng cho vi c lưu tr d li u ngư i dùng thu c các ng d ng. Các i tư ng này thư ng có m c phân o n cao. Do các rollback segments ư c phân b l i extents m t cách t ng, chúng d gây ra hi n tư ng phân o n d li u trong h th ng. Temporary segments trong các permanent tablespaces thư ng xuyên ư c b x y ra hi n tư ng phân o n. 10.4.THÔNG TIN V C U TRÚC LU TR 10.4.1. Các view lưu tr thông tin Thông tin v các tablespaces, data files, segments, và extents (thông tin v c ph n s d ng l n ph n còn tr ng) u có th l y t các t i n d li u. Thông tin v tablespace có th ư c lưu trong DBA_TABLESPACES. Thông tin v các file d li u c a database ư c lưu trong DBA_DATA_FILES. Thông tin v các vùng tr ng trong các data file, vùng tr ng c a extent ư c lưu trong DBA_FREE_SPACE. View DBA_SEGMENTS lưu gi thông tin v các segment. Tương t như v y, DBA_EXTENTS lưu gi thông tin v các extent. Hình v 45. Các views ch a thông tin v c u trúc lưu tr ORACLE 9i – Ki n trúc và Qu n tr Trang 119
- www.updatesofts.com 10.4.2. Xem thông tin v các segments Thông tin ư c lưu trong DBA_SEGMENTS. Hình v 46. Phân lo i các thông tin chính có trong DBA_SEGMENTS Ta có th l y thông tin v các segments theo các 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 v 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 các extents và blocks ư c c p phát cho t ng segment do user SCOTT s h u. SVRMGR> SELECT segment_name,tablespace_name,extents,blocks 2> FROM dba_segments 3> WHERE owner='SCOTT'; SEGMENT_NAME TABLESPACE_NAME EXTENTS BLOCKS ------------ --------------- --------- -------- EMP DATA01 5 55 DEPT DATA01 1 5 BONUS DATA01 1 5 SALGRADE DATA01 1 5 DUMMY DATA01 1 5 5 rows selected. ORACLE 9i – Ki n trúc và Qu n tr Trang 120
- www.updatesofts.com 10.4.3. Thông tin v các extents Thông tin ư c lưu trong DBA_EXTENTS. Hình v 47. Phân lo i các thông tin chính có trong DBA_EXTENTS Ta có th l y thông tin v các extents theo các lo i sau: Thông tin nh n d ng: User s h u, tên segment, mã hi u extent Thông tin v kích c và nơi t: TABLESPACE_NAME, RELATIVE_FNO, FILE_ID, BLOCK_ID, BLOCKS Ví d : Xem thông tin chi ti t v các extents có trong m t 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 BLOCK_ID BLOCKS --------- ------- -------- ------ 0 4 2 5 1 4 27 5 2 4 32 10 3 4 42 15 4 4 57 20 5 rows selected. ORACLE 9i – Ki n trúc và Qu n tr Trang 121
- www.updatesofts.com 10.4.4. Thông tin v các vùng tr ng Thông tin v các vùng tr ng ư c lưu trong DBA_FREE_SPACE. 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 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 2 1284 1533 RBS 3 2329 2419 SORT 1 1023 1023 SYSTEM 1 5626 5626 TEMP 1 2431 2431 5 rows selected. ORACLE 9i – Ki n trúc và Qu n tr Trang 122
- www.updatesofts.com Chương 11. QU N LÝ ROLLBACK SEGMENTS 11.1.GI I THI U ROLLBACK SEGMENTS 11.1.1. Khái ni m M i khi có s thay i d li u trong database, các d li u cũ u ư c lưu l i có th khôi ph c l i tr ng thái c a d li u trư c khi thay i. Rollback segment ư c dùng lưu tr các giá tr cũ ó. Rollback segment lưu gi các thông tin v block như block ID, và các d li u ã s a i c a block. Hình v 49. Rollback segment Ph n u (header) c a m t rollback segment ch a m t transaction table là nơi lưu gi thông tin v các giao d ch hi n th i có s d ng t i rollback segment ang xem xét. M i transaction ch có th s d ng duy nh t m t rollback segment lưu gi các d li u dùng khôi ph c. Nhi u transactions có th ng th i ghi d li u lên rollback segment. 11.1.2. M c ích s d ng segment Transaction rollback Khi m t transaction th c hi n các thay i i v i các dòng d li u trong table, các giá tr ban u (old image) s ư c lưu gi vào rollback segment. Khi transaction ó ư c rolled back (l y l i), các d li u cũ lưu trong rollback segment s ư c l y ra và è lên d li u hi n t i trong block, ph c h i l i các giá tr nguyên thu . ORACLE 9i – Ki n trúc và Qu n tr Trang 123
- www.updatesofts.com Hình v 50. M c ích c a rollback segment Ph c h i các Transaction Trong trư ng h p m t instance g p l i khi các transactions ang th c hi n, Oracle server c n ph i khôi ph c l i các d li u chưa commit. Rollback trong trư ng h p này ư c g i là ph c h i d li u. Vi c này ch th c hi n ư c khi các thay i i v i các rollback segments ã ư c k t h p b o v b i các redo log files. Nh t quán trong vi c cd li u Khi m t th c hi n các transactions, các users trong database s không th th y ư c các d li u ã b thay i mà chưa ư c commit b i transactions. Các d li u cũ lưu trong rollback segments s v n ư c s d ng cung c p cho các users khác nh m m b o nh t quán d li u cho các user ó. 11.1.3. Phân lo i rollback segment SYSTEM Rollback Segment SYSTEM rollback segment ư c t o ngay trong SYSTEM tablespace m i khi m t database ư c t o l p. Rollback segment này ch ư c s d ng i v i các thay i d li u c a các i tư ng n m trong SYSTEM tablespace. Non-SYSTEM Rollback Segments M t database có th có nhi u tablespaces và nên có ít nh t m t non-SYSTEM rollback segment. Các non-SYSTEM rollback segment do qu n tr viên database t o l p có th ư c s d ng lưu gi các thay i trên các i tư ng có trong các non-SYSTEM tablespace khác. Có hai lo i non-SYSTEM rollback segments. Private: Private rollback segments là các segments ư c s d ng riêng cho m i instance. Public: Public rollback segments là m t ph n c a rollback segments có trong database. Public rollback segments có th ư c s d ng b i Oracle Parallel Server. ORACLE 9i – Ki n trúc và Qu n tr Trang 124
- www.updatesofts.com 11.2.S D NG ROLLBACK SEGMENT 11.2.1. S d ng rollback segment trong các transaction C p phát các Rollback Segment i v i các transaction ph i x lý m t kh i lư ng l n các d li u, ta c n gán transaction này v i m t rollback segment riêng chuyên làm nhi m v lưu gi các tr ng thái ban u c a d li u. Chú ý gán rollback segments cho m t transaction: Lư ng trư c kh i lư ng thông tin trong transaction c n rollback phù h p (fit) v i kích thư c c a vùng tr ng (extents) hi n th i c a rollback segment. C p phát v a các vùng tr ng và không c n c p phát b các vùng tr ng (extents) cho rollback segments ã ư c gán cho transaction vì i u này có th d n n vi c gi m hi u su t th c hi n c a h th ng. gán m t transaction cho m t rollback segment m t cách tư ng minh thì rollback segment ó c n ph i ang tr ng thái online. C n th c l nh l nh SET TRANSACTION USE ROLLBACK SEGMENT trư c khi th c hi n các l nh trong transaction ó. N u tr ng thái c a rollback segment là offline ho c câu l nh SET TRANSACTION USE ROLLBACK SEGMENT không ư c t v trí u tiên c a transaction thì h th ng s phát sinh m t l i. Ví d : s d ng l nh gán rollback segment cho transaction t i th i i m b t u transaction: SET TRANSACTION USE ROLLBACK SEGMENT large_rs1; Sau khi transaction ư c commit, rollback segment này l i ư c Oracle ưa v tr ng thái s n sàng s d ng. Oracle s t ng gán transaction ti p theo cho m t rollback segment b t kỳ nào ang còn r i (available) tr phi transaction này l i ư c ti p t c gán cho rollback segment b ng tay b i user. S d ng các extents Các transactions s d ng extents trong rollback segment theo m t trình t xoay vòng. Theo ó, transaction s ghi d li u thay i vào extent hi n th i, r i ti p t c chuy n t i các extent k ti p. Khi extent cu i cùng ư c s d ng y, nó l i quay tr v extent 1. rõ hơn, ta xem xét m t ví d sau: Có hai transaction cùng s d ng m t rollback segments có 04 extents. Hình v 51. S d ng d li u trong rollback segment ORACLE 9i – Ki n trúc và Qu n tr Trang 125
- www.updatesofts.com 1. T i th i i m b t u, giao d ch b t u ghi d li u vào Extent 3 2. Trong khi th c hi n, các transaction s ghi d li u vào Extent 3 cho t i khi yr i ti p t c chuy n sang ghi d li u lên Extent 4. 3. Khi Extent 4 cũng y, nó ti p t c l i quay tr l i ghi d li u vào extent 1 n u extent này tr ng thái r i ho c inactive. M t extent là r i ho c inactive n u hi n th i nó không b s d ng b i b t kỳ m t transaction nào. 11.2.2. Tăng trư ng i v i các rollback segments Rollback segment có con tr xác nh extent ang làm vi c. Khi extent làm vi c y, con tr s chuy n sang extent k ti p th c hi n vi c ghi d li u. C như v y cho n extent cu i cùng r i l i quay tr v extent u tiên n u extent này ang r i. Tuy nhiên, có nhi u kh năng extent u tiên này cũng ang không r i. Khi ó, con tr không th nh y cách mà b qua extent 1 chuy n sang extent 2 ư c. ti p t c duy trì ho t ng cho transaction, c n ph i b sung thêm m t extent n a vào sau extent cu i cùng. Vi c này t o nên s tăng trư ng i v i các rolback segments. Vi c tăng trư ng i v i các rolback segments s ti p t c x y ra cho t i khi s lư ng các extents tăng k ch khung quy nh trong tham s MAXEXTENTS. Hình v 52. Tăng kích thư c Rollback Segment Sau khi rollback segments ã ư c t o l p, qu n tr viên database v n có th thay i tham s lưu tr c a rollback segments. thay i, qu n tr viên ch c n i u ch nh các tham s OPTIMAL hay MAXEXTENTS cho phù h p. Ví d : Câu l nh sau thay i s lư ng t i a các extents c p phát cho rollback segments RBS_01. ALTER ROLLBACK SEGMENT rbs_01 STORAGE (MAXEXTENTS 120); V i câu l nh thay i này, ta cũng có th i u ch nh v i rollback segment SYSTEM , bao g m c tham s OPTIMAL. ORACLE 9i – Ki n trúc và Qu n tr Trang 126
- www.updatesofts.com 11.2.3. T i ưu các rollback segments Khi k t thúc ho c commit các transaction, nó s gi i phóng vùng không gian ã s d ng lưu các d li u dùng ph c h i. Các extent trong rollback ư c ưa tr l i tr ng thái inactive. ti t ki m không gian lưu tr trong rollback segment, ta có th t i ưu l i rollback segment ó thông qua tham s OPTIMAL. Hình v 53. Gi m kích thư c c a Rollback segment Oracle server s thu h i l i các extent ã c p phát khi: Kích thư c c a rollback segment hi n t i ư c i u ch nh t i giá tr c a tham s OPTIMAL. Khi có nhi u hơn 02 extent r i liên ti p c nh nhau. M t i u lưu ý là khi thu h i l i các extent, Oracle server s thu h i extent ch a d li u lâu nh t trư c ó. Ta có th th c hi n gi m b t kích thư c c a rollback segments thông qua vi c s d ng câu l nh ALTER ROLLBACK SEGMENT. Lưu ý, khi này rollback segment ư c thu nh nh t thi t ph i ang tr ng thái online. Ví d : Thu nh kích thư c rollback segment RBS1 b ng 100K: ALTER ROLLBACK SEGMENT rbs1 SHRINK TO 100K; Câu l nh phía trên th c hi n rút b t kích thư c c a rollback segment t i kích thư c như ã ư c ch ra. Tuy nhiên, vi c rút g n s d ng l i khi có m t extent không th b thu h i do b t kỳ nguyên nhân nào. 11.3.QU N LÝ ROLLBACK SEGMENTS 11.3.1. S d ng rollback segment Kích thư c c a rollback segment Kích thư c c a rollback ư c xác nh tuỳ thu c vào hai y u t sau: Lo i transaction ư c th c hi n (insert, update, delete, ...) Lư ng d li u ư c x lý ORACLE 9i – Ki n trúc và Qu n tr Trang 127
- www.updatesofts.com Thông thư ng, vi c thêm m i b n ghi vào b ng c n ít không gian lưu gi thông tin ph c h i hơn là vi c xoá d li u kh i b ng. V i thao tác thêm m i, ch c n lưu gi ROWID vào rollback, trong khi thao tác delete l i c n ph i lưu gi toàn b dòng d li u. ánh giá kích thư c c a rollback segment căn c theo transaction dài nh t có s d ng rollback segment. S lư ng các Extents V i các rollback segment có quá nhi u các extents s gây ra lãng phí không gian lưu tr d li u, gi m b t lãng phí, ta có th i u ch nh tham s MINEXTENTS cho phù h p. Oracle khuy n ngh , thông thư ng, MINEXTENTS nên t giá tr là 20. 11.3.2. T o rollback segment Ta có th t o rollback segment thông qua câu l nh SQL: Cú pháp: CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment [TABLESPACE tablespace] [STORAGE ([INITIAL integer[K|M]] [NEXT integer[K|M]] [MINEXTENTS integer] [MAXEXTENTS {integer|UNLIMITED}] [OPTIMAL {integer[K|M]|NULL}] ) ] Lưu ý: M t rollback segment có th là PUBLIC ho c PRIVATE (m c nh) vi c gán này ư c th c hi n ngay lúc t o và không th thay i sau này. MINEXTENTS>=2 i v i các rollback segment. PCTINCREASE ư c b qua i v i các rollback segment và ư c gán b ng 0. OPTIMAL, n u có ch ra thì không ư c nh hơn giá tr kích thư c kh i t o c a rollback segment ư c xác nh trong tham s MINEXTENTS. m b o các extent trong rollback segment có cùng m t kích INITIAL=NEXT thư c. Không nên gán giá tr cho MAXEXTENTS là UNLIMITIED vì như v y s d n n vi c m r ng các extent m t cách không c n thi t. Nên t rollback segment trong m t tablespace riêng bi t gi m b t hi n tư ng phân o n d li u trong database. Ví d : CREATE ROLLBACK SEGMENT rbs01 TABLESPACE rbs STORAGE ( INITIAL 100K NEXT 100K OPTIMAL 4M MINEXTENTS 20 MAXEXTENTS 100); ORACLE 9i – Ki n trúc và Qu n tr Trang 128
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn