1. Trang chủ
  2. » Công Nghệ Thông Tin

đề thi quản trị cơ sở dữ liệu phân tán 8

155 582 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 155
Dung lượng 1,61 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Khóa chết: hủy phiên???Retainnoun:retention:giữ lại, chặn LES9-Or After completing this lesson, you should be able to do the following: o Explain DML and undo data generation o Monito

Trang 1

Bai tap trong dia2\ddbs\oracle\test*

Lenh SQL

Update set

Insert into

Merger into (xem VD dưới)

Có thể gan bí danh trong lênh SQL (xem VD dưới)

Có thể nhúng câu lệnh SQL vào lệnh SQL (xem VD dưới)

VD: MERGER INTO jobs j USING (SELECT * FROM ac) a ON (j.NUM=a.NUM)

Có thể dùng SQL hay PL/SQL để thực hiện thao tác

Nếu dùng PL/SQL có thể đảm bảo an ninh, cho phức tap, portable, mở rộng được coi là một dtuong của Oracle và có thể dùng

CÁc đối tượng PL/SQL

DBA có thể :

• Ddanh các vấn đề đối tượng PL/SQL

• Khuyến cáo việc sử dụng PL/SQL tương ứng.

• Nạp các dtuong PL/SQL vào csdl

• Trợ giúp người phát triển PL/SQL

Các đối tượng có thể dùng trợ giúp SEARCH để khảo sát

Hàm: trả về 1 gtri định kiểu nào đó-thuộc lược đồ nào- Thân hàm nằm giữa AS END;

Thủ tục : thực hiện các thao tác – thuộc lược đồ nào- Thân thủ tục nằm giữa AS END;

Gói- Tập hợp nhiều thủ tục và hàm(bản thân Oracle có 350 gói pvu DBA và các ứng dụng )- Thân gói nằm giữa AS END;- Có thể xem nội dung gói nhờ lệnh DISCRIBE <tên gói>

Trigger- Hàm/thủ tục cho các skien (DML: INSERT, UPDATE, DELETE /DDL: CREATE, DROP, ALTER, GRANT, REVOKE, RENAME /csdl: LOGON, LOGOFF, STARTUP, SHUTDOWN,

SERVERERROR) – Thuộc lược đồ nào- có thể phục vụ khi thao tác dữ liệu.

Trang 2

Giải quyết giao dịch

Lệnh COMMIT và lệnh ROLLBACK

Giải quyết tương tranh

Khóa

Khóa mức cao cho tương tranh dữ liệu: Khóa mức dòng cho inserts, updates, và deletes

• Tvan không yêu cầu khóa.

• Quản trị sắp xếp hàng đợi tự động

• Khóa được giữ cho tới khi kết thúc giao dịch (với thao tác COMMIT / ROLLBACK )

Khóa DML: Mối khóa giao dịch DML yêu cầu 2 khóa: (VD lệnh UPDATE)

• Khóa dòng dành riêng(EXCLUSIVE) cho dòng/các dòng được cập nhật

• Khóa mức bảng dòng dành riêng(ROW EXCLUSIVE ) cho bang chứa các dòng

Cơ chế hàng đợi

Bám vết của:

• Các phiên chờ khóa.

• Các chế độ khóa yêu cầu.

• Thứ tự trong đó phiên chờ khóa.

Nguyên nhân đụng độ khóa

• Uncommitted changes

• Long-running transactions

• Unnecessarily high locking levels

Các phien các đụng độ khóa: (Định danh khóa chết/sau đó pgiai khóa chết)

• Select Blocking Sessions from the Performance page:

o - đồ họa: Click lket ID phiên để xem ttin về khóa phiên, bao gồm cả các câu lệnh SQL.

o Đê giải quyết một đụng độ khóa:

 Có phiên giữ khóa commit hay rollback

 Kết thúc phiên giữ khóa như một resort cuối cung

o Có kill session Disable/Enable SQL trace

• Có thể dùng câu lệnh SQL (select từ v$session với gtri của sid là blocking_session, sau đó là alter )

o SQL> select sid, serial#, username

from v$session where sid in (select blocking_session from v$session) Kqua đưa ra sid, serial#,username

o Hủy phiên: SQL> alter system kill session '144,8982' immediate;

Trang 3

• Khóa chết: hủy phiên???

Retain(noun:retention):giữ lại, chặn

LES9-Or

After completing this lesson, you should be able to do the following:

o Explain DML and undo data generation

o Monitor and administer undo data

o Describe the difference between undo data and redo data

o Configure undo retention

o Guarantee undo retention

o Use the Undo Advisor

• Bản sao của dlieu gốc, dlieu trước khi tdoi

• Đc chặn cho mọi giao dịch tdoi dlieu

• Đc giữ lại ít nhât cho tới khi giao dịch kthuc

• ĐC dùng để hỗ trợ

o Các ttac RB

o Nquan đọc và tvan flashback

o Pchoi từ các giao dịch sco

• Các giao dịch và dữ liệu undo

Transactions and Undo Data

• Mỗi giao dịch được gán chỉ đến một segment undo duy nhất

• Mỗi segment undo có thể pvu nhiều hơn 1 giao dịch 1 lúc

Lưu các thông tin undo: Các thông tin undo được lưu trong các segment undo, các segment này được lưu trong không gian bảng undo Các không gian bảng undo :

• ĐƯợC dùng chỉ cho các segment undo

• Có những xem xét phục hồi dbiet

• Có thể liên hiệp chỉ với một thể hiện đơn

• Yêu cầu chỉ 1 trong chúng là không gian bảng undo có thể ghi hiện thời cho thể hiện đã cho ở bất kỳ thời điểm nào

Undo Data Versus Redo Data

Ghi lại Undo một thay đổi như thế nào Lặp lại sự thay đổi như thế nào

Sử dụng cho Quay lại hay Đọc không nhất quán Đi tiếp việc tdoi dlieu

Lưu trong Các undo segment Các file Nhật ký redo

Bảo vệ tránh Đọc không nhất quán trong hệ thống

Trang 4

Gsat Undo: Thường ycau qtri không nhiều Pvi gsat bao gồm:

• Không gian tự do trong không gian bảng

• Các lỗi “snapshoot too old”

Quản trị Undo: Quản trị Undo nên bao gồm :

• Không gian lỗi trong không gian bảng undo

• Kthuoc không gian bảng undo phải đúng

• Đảm bảo các giao dịch lớn chuyển giao chu kỳ

• Các lỗi “Snapshoot too old”

• Cấu hình 1 khoảng duy trì undo tương ứng

• Kthuoc không gian bảng đúng

• Đảm bảo duy trì undo

Sử dụng quản trị undo tdong :

UNDO_MANAGEMENT=AUTO

UNDO_TABLESPACE=UNDOTBS1

Cấu hình duy trì Undo : UNDO_RETENTION đặc tả (theo giây) tổng các thông tin undo đã chuyển giao đã được duy trì Thời điểm duy nhất phải tlap tso này là khi:

• Không gian bảng undo có tchon AUTOEXTEND được phép

• Ta muốn tlap duy trì undo cho các LOB

• Ta muốn đảm bảo duy trì

Đảm bảo duy trì undo

• Kthuoc không gian bảng

• Sử dụng Undo Advisor

Guaranteeing Undo Retention

• Một giao dịch có thể phát sinh nhiều undo hơn không gian sẵn có thì sẽ lỗi

• Câu lệnh SELECT chạy 15 phút hay ít hơn thường an toàn

Sizing the Undo Tablespace : Thay đổi khoảng thời gian/không gian bảng undo

Using the Undo Advisor: khảo sát undo theo đồ thị

4 Transaction Management

Dnghia gdich và mta ta qtri giao dịch thế nào:

Nội dung chương:

Trang 5

• Introduction to Transactions

• Overview of Transaction Management

• Overview of Autonomous Transactions

Gthieu về giao dịch (Introduction to Transactions)

Một giao dịch là 1 đơn vị công việc logic chứa 1 hay 1 vài câu lệnh SQL 1 giao dịch là 1 đơn vị nguyên tử Ảnh hưởng của mọi câu lệnh SQL trong giao dịch có thể là được chuyển giao (ap dụng cho csdl) hay rollback tất cả(không làm cho csdl)

Một giao dịch bắt đầu với câu lệnh SQL có khả năng vận hành đầu tiên Một giao dịch kết thúc khi thực hiện tường minh COMMIT hay ROLLBACK hoặc lệnh không tường minh của DDL

Minh họa khái niệm giao dịch bằng việc gửi, rút tiền từ ngân hàng:

• Giảm số tiền tài khoản

• Tăng số tiền kiểm tra tài khoản

• Ghi giao dịch vào jounal giao dịch

Oracle cần cho phép 2 bối cảnh Nếu cả 3 câu lệnh SQL có thể thực hiện để dtri tkhoan theo cân đối đúng, ahuong của giao dịch có thể được adung cho csdl Tuy nhiên, nwus 1 vấn đề như không đủ tiền, sai tkhoan, hay sự cố pcung ngăn ngừa 1 trong 2 câu lệnh giao dịch không hoàn tất, thì toàn bộ giao dịch phải được rollback sao cho cân đối của mọi tài khoản là đúng

Figure 4-1illustrates the banking transaction example

Figure 4-1 A Banking Transaction

Trang 6

Description of "Figure 4-1 A Banking Transaction"

Vận hành và điều khiển giao dịch (Statement Execution and

CHUYểN GIAO có nghĩa 1 nsd đã yêu cầu tường minh hoặc không tường minh

thay đổi trong giao dịch được thực hiện thường trực Một yêu cầu tường minh xuất hiện khi nsd công bố lệnh COMMIT Một yêu cầu không tường minh xuất hiện sau kết thúc bình thường một ứng dụng hay thao tác dnghia dữ

liệu(DDL) Sụ thay đổi bởi lệnh SQL của một giao dịch trở nên thường trực và

Trang 7

nhìn thấy được bởi nsd khác chỉ sau khi giao dịch đã chuyển giao.Các tvan được công bố sau chuyển giao giao dịch nhìn thấy các thay đổi đã được chuyển giao

Ta có thể dặt tên 1 giao dịch dùng câu lệnh the SETTRANSACTION NAME trước khi bắt đầu giao dịch.Điều này làm nó dễ dàng giám sát các giao dịch dài

và pgiai các giao dịch nghi ngờ

Rollback mức câu lệnh(Statement-Level Rollback)

Nếu chạy câu lệnh SQL bị lỗi, mọi ảnh ưởng câu lệnh sẽ ROLLBACK , coi là lệnh chưa thực hiện thao tác là ROLLBACK mức câu lệnh

Các lỗi được phát hiện trong vận hành câu lệnh SQL gây ra ROLLBACK mức câu lệnh VD, đưa cùng gtri vao trường khóa Câu lệnh SQL kéo theo khóa chết(cạnh tranh cùng dữ liệu) cũng gây ra ROLLBACK mức câu lệnh Các lỗi được phát hiện trong khi dịch câu lệnh SQL, như sai cú pháp, chưa chạy được không được coi là ROLLBACK mức câu lệnh

Lệnh SQL gây lỗi làm mết dữ liệu chỉ của công việc nào đó nó thực hiện Nó không gây mất dữ liệu của công việc nào đó trước nó trong giao dịch hiện thời Nêu câu lệnh là DDL thì chuyển giao không tường minh thực hiện trước khi nó undo

Chú ý : Nsd không thể tham chiếu trực tiếp đên các điểm an toàn trong các câu lệnh ROLLBACK

Định vị không gian khả tiếp (Resumable Space Allocation)

Oracle cung cấp 1 phương tiện cho việc treo, sau đó tiếp tục vận hành của các thao tác csdl lớn trong sự kiện lỗi định vị không gian Điều này cho phép 1 người quản trị hành động đúng thay cho việc server csdl Oracle trả về 1 lỗi nsd Sau khi điều kiện lỗi được sửa đổi, thao tác treo tự động tiếp tục

Câu lệnh chạy trong chế độ khả tiếp tục chỉ khi client hiệu lực hóa tường minh ngữ nghĩa cho phiên dùng câu lệnh ALTER SESSION

Định vị không gian khả tiếp bị treo khi 1 trong các điều kiện sau xuất hiện :

• Hết không gian điều kiện

• Mở rộng cực đại đã tới

Trang 8

• Cô ta không gian vượt quá điều kiện

Với định vị không gian không khả tiếp, các điều kiện này dẫn đến lỗi và sẽ

Giao dịch trong Oracle bắt đầu khi lệnh SQL thực thi đầu tiên được tính đến Một

câu lệnh SQL khả thi là một câu lệnh SQL phát sinh lời gọi đến 1 thể hiện,

bao gồm các leenhjDDDL và DML

Khi 1 giao dịch bắt đầu, Oracle gán giao dịch đến không gian bảng undo có sẵn

để lưu các lối vào rollback cho giao dịch mới

Giao dịch kết thúc khi xuất hiện bất kỳ trong:

• Nsd công bố câu lệnh ROLLBACK hay COM không có mệnh đề SAVEPOINT

• Khi nsd chạy các lệnh như CREATE, DROP, RENAME, hay ALTER Nếu giao dịch hthoi chứa bất kỳ các lệnh DML, trước hết Oracle chuyển giao cac giao dịch rồi chạy và chuyển giao câu lệnh DDL như 1 giao dịch đơn, mới

• 1 nsd ngắt khởi Oracle Giao dịch hiện thời được chuyển giao

• 1 tiến trình kết thúc bất thường Giao dịch được ROLLBACK

Sau khi 1 giao dịch kết thúc, câu lệnh SQL khả thi kế tiếp sẽ tự động giao dịch liền sau

Chú ý: Các ứng dụng nên thường xuyên chuyển giao tminh hay undo các giao

dịch trước khi kết thúc chương trình

Chuyển giao các giao dịch (Commit Transactions)

Chuyển giao có ng hĩa là thay đổi thường trực thực hiện bởi các câu lệnh SQL

trong giao dịch

Trang 9

Trước khi giao dịch thay đổi dữ liệu được chuyển giao, xuất hiện:

• Oracle phat sinh thông tin undo Thông tin undo chứa các gtri dữ liệu cũ được thay đổi bởi câu lệnh của giao dịch

• Oracle phát sinh lối vào nhật ký redo trong bộ đệm của SGA Nhật ký redo chứa thay đổi với khối dữ liệu và thay đổi vơi khối rollback Các thay đổi nay có thể đến đĩa trước khi giao dịch được chuyển giao

• Các thay đổi được làm với bộ đệm csdl của SGA Các thay đổi này có thể đến đĩa trước khi 1 giao dịch được chuyển giao

Chú ý : Sự thay đổi cho một giao dịch được chuyển giao, lưu trong các

bộ đệm của SGA, không nhất thiết được ghi ngay vào file csdl bởi tiến trình nên ghi csdl(DBWW n) Việc ghi có thể xảy ra trước hay sau các chuyển giao giao dịch , lúc hiệu quả nhất đối với csdl

Khi một giao dịch được chuyển giao, sẽ xảy ra(4):

1 Bảng giao dịch nội tai cho các bản ghi không gian bảng undo mà giao dịch chuyển giao, và số thay đổi hệ thống duy nhất (SCN) của giao dịch được gán và ghi vào bảng

2 Tiến trình ghi nhật ký(LGWR) viết các lối vào redo trong bộ đệm nhật ký redo vào file nhật ký redo Nó cũng ghi SCN của giao dịch vào nhật ký redo Skien nguyên tử này cấu thành chuyển giao của giao dịch

3 Oracle giải phóng các khóa giữ trên dòng và bảng

4 Oracle đánh dấu giao dịch hoàn tất

Note:

Hành vi mặc định cho LGWR ghi redo vào file nhật ký redo online một cách đồng bộ và cho các giao dịch chờ redo chuyển đến đĩa trước khi quay về một chuyển giao cho nsd Tuy nhiên, với các ứng dụng trễ giao dịch chậm hơn, người lập trình có thể dta rằng redo được ghi không đồng

bộ và các giao dịch không cần phải chờ cho redo lên đĩa

Rollback các giao dịch (Rollback of Transactions)

ROLLBACK có nghĩa là undo bất kỳ sự thay đổi nào cho dữ liệu đã được thực

hiện bởi các câu lệnh SQL trong 1 giao dịch không chuyển giao Oracle sử dung không gian bảng undo (hay sment rollback ) để lưu các gtri cũ Nhật ký

redo chứa 1 bản ghi các thay đổi

Oracle cho ta rollback toàn bộ hay một phần đên 1 điểm an toàn

Trang 10

Mọi kiểu rollback dùng chung một thủ tục:

• Rollback mức câu lệnh(do lỗi câu lệnh hay vận hành khóa chết)

• Rollback đến 1 điểm an toàn

• Rollback của 1 giao dịch do yêu cầu nsd

• Rollback của 1 giao dịch do kết thúc không bình thường tiến trình

• Rollback của mọi giao dịch đã biết khi 1 thể hiện kết thúc không bình thường

• Rollback của giao dịch không chuyển giao khi phục hồi

Khi rollback một giao dịch toàn bộ(không có điểm an toàn tchieu), sẽ xuất hiện:

o Oracle undo mọi thay đổi tạo ra bởi mọi câu lệnh SQL trong giao dịch bằng cách dùng không gian bảng undo tương ứng

o Oracle giải phóng mọi khóa giao dịch của dữ liệu

o Giao dịch kết thúc

Các điểm an toàn trong giao dịch (Savepoints In Transactions)

Ta có thể công bố các dấu hiệu gọi là điểm an toàn trong ngữ cảnh giao dịch Các điểm an toàn chia 1 giao dịch thành các giao dịch nhỏ hơn

Dùng điểm an toàn, ta có thể đánh dấu công việc ở bất kỳ điểm nào trong giao dịch dài Rồi ta có tchon sau đó việc ROLLBACK công việc trước điểm hiện thời trong giao dịch nhưng sau khi 1 điểm an toàn được công bố trong giao dịch.VD,

ta có thể dùng điểm an toàn qua một chuỗi các cập nhật phức tạp , vậy nếu ta gặp lỗi, ta không cần đệ trình lại mọi câu lệnh

Điểm an toàn hữu dụng như trong chương trình ứng dụng Nếu thủ tục chứa 1 vài hàm, ta có thể tao 1 điểm an toàn trước mỗi hàm bắt đầu Nếu khi hàm sự

cố, dễ dàng trả lại dữ liệu cho trạng thái của nó trước khi hàm băt đầu va chạy lại hàm với các tham số được xem xét lại hay thực thi hoạt động phục hồi

Sau khi ROLLBACK về một điểm an toàn , Oracle giải phóng các khóa dữ liệu dành được bởi các câu lệnh ROLLBACK Các giao dịch khác chờ các tài nguyên

bị khóa trước có thể xử lý.Các giao dịch khác muốn cập nhật các dòng bị khóa trước cũng có thể làm như vậy

Khi 1 giao dịch được ROLLBACK đên 1 điểm an toàn , những điều sau sẽ xuất hiện:

1/Oracle chỉ quay lại các câu lệnh chạy sau điểm an toàn

Trang 11

2/Oracle dành sẵn điểm an toàn đặc tả , nhưng mọi điểm an toàn đã được tlap sau điểm an toàn đặc tả đã mất

3/ Oracle giải phóng mọi bảng và các khóa dòng yêu cầu từ điểm an toàn đó nhưng duy trì mọi khóa dữ liệu yêu cầu trước đến điểm an toàn

Giao dịch vẫn active và có thể tiếp tục

Mỗi khi phiên chờ 1 giao dịch, rollback đên điểm an toàn không giải phóng các khóa dòng Để đảm bảo các giao dịch không treo nếu không thể dành được khóa, sử dụng FOR UPDATE NOWAIT trước khi công bố UPDATE hay

DELETE(Điều này tchieu đến các khóa giành được trước điểm an toàn mà giao dịch rollback đến Các khóa dòng giành được sau điểm an toàn nay được giải phóng,khi các câu lệnh được thực hiện sau điểm an toàn được rollback hoàn toàn.)

Đặt tên các giao dịch (Transaction Naming)

Ta có thể dung chuỗi ktu dgian và dễ nhớ để đặt tên.Tên giao dịch thay thế cgiao các comment cho giao dịch ptan với các ưu điểm:

• Dễ dàng giám sát các giao dịch dài và pgiai các giao dịch ptan nngo

• Ta có thể xem tên các giao dịch và ID trong các ứng dụng VD, người quản trị có thể xem các tên các giao dịch trong Enterprise Manager khi giám sát các hoạt động hệ thống

• Tên các giao dịch được viết cho việc kiểm toán bản ghi redo

• LogMiner có thể dngf tên các giao dịch để tkiem các giao dịch đặc tả trong nhật ký redo

• Ta có thể dùng tên giao dịch để tìm ra 1 giao dịch đặc tả trong view tdien

dữ liệu , như V$TRANSACTION.

Các giao dịch được đặt tên như thế nào(How Transactions Are Named)

Đặt tên giao dịch dùng SETTRANSACTION NAME trước khi bắt đầu 1 giao dịch Khi đặt tên 1 giao dịch nên liên hiệp tên với ID của nó Tên giao dịch không

là duy nhất; các giao dịch khác nhau có thể cùng tên giao dịch tại cùng một tdiem bởi cùng một người sở hữu Ta có thể dùng tên bky cho phép ta pbiet giao

dịch.(CÂN CHÚ Ý lệnh này)

Chuyển giao comment(Commit Comment)

Trang 12

Trong phần trước, đã knoi giao dịch vói cgiao comment Tuy nhiên, comment có thể liên hiệp với gdich chỉ khi gdich đang cgiao

Chuyển giao comment vẫn được hỗ trợ cho tthich ngược Oracle khuyến cáo ta nên dùng các tên giao dịch Các chuyển giao bị bỏ qua trong các giao dịch đã được đặt tên

Note:

Trong tương lai, cgiao commit sẽ bị deprecated

Cche chuyển giao 2 pha(The Two-Phase Commit Mechanism)

Trong csdl ptan, Or cần phối hợp dkhien gdich qua mạng và duy trì tính nquan dlieu, thậm chí nếu sco mạng hay hthong xhien

Một giao dịch phân tán là giao dịch bao gồm 1 hay nhiều clenh, cnhat dlieu

trên 2 hay nhiều nút knhau của csdl ptan

Một cơ chế chuyển giao 2 pha dbao rằng mọi sv csdl tgia trong 1 gdich ptan

hoặc tất cả đc cgiao hoặc undo các clenh trong gdich Cche cgiao 2 pha cũng bảo vệ các ttac DML ko tminh thien bởi các ràng buộc tven, lời gọi ttuc từ xa và các trigger

Cche cgiao 2 pha là trong suốt hoàn toàn với nsd, người đang công bố các gdich ptan Thực tế, nsd thậm chí ko cần biết gdich ptan Lệnh COMMIT thông báo kthuc gdich và chuyển sang cche cgiao 2 pha để cgiao gdich Các cú pháp mã hay lệnh phức ko đc ycau để bao hàm các gdich trong thân của udung csdl

Ttrinh nền pchoi (RECO) pgiai tdong outcome của các gdich ptan nngo – các

gdich ptan ở đó sự cgiao bị ngắt bởi kiểu sco hthong hay mạng bky Sau khi sự

cố đã đc sửa chữa và cgiao đc tlap lại, ttrinh RECO cho mỗi csdl cbo sẽ cgiao hay rollbacj tdong bky các gdich ptan một cách nquan trên các nút lquan

Nếu sco trong tgian dai, Or cho phép mỗi người qtri cbo cgiao hay undo tcong các gdich ptan nngo Tchon này cho phép

In the event of a long-term failure, Oracle allows each local administrator to manually commit or undo any distributed transactions that are in doubt as a result of the failure This option enables the local database administrator to free any locked resources that are held indefinitely as a result of the long-term

failure

Trang 13

If a database must be recovered to a point in the past, Oracle's recovery facilities enable database administrators at other sites to return their databases to the earlier point in time also This operation ensures that the global database

remains consistent

See Also:

Oracle Database Heterogeneous Connectivity Administrator's Guide

Tquan về các gdich tự trị(Overview of Autonomous

Once invoked, an autonomous transaction is totally independent of the main transaction that called it It does not see any of the uncommitted changes made

by the main transaction and does not share any locks or resources with the main transaction Changes made by an autonomous transaction become visible to other transactions upon commit of the autonomous transactions

One autonomous transaction can call another There are no limits, other than resource limits, on how many levels of autonomous transactions can be called.Deadlocks are possible between an autonomous transaction and its calling

transaction Oracle detects such deadlocks and returns an error The application developer is responsible for avoiding deadlock situations

Autonomous transactions are useful for implementing actions that need to be performed independently, regardless of whether the calling transaction commits

or rolls back, such as transaction logging and retry counters

Các khối PL/SQL tự trị (Autonomous PL/SQL Blocks)

(~gọi chương trình con)

Ta có thể gọi các giao dịch ttri bên trong 1 khối PL/SQL Sử dụng pragma

AUTONOMOUS_TRANSACTION Pragma là định hướng biên dịch Ta có thể khai báo các kiểu sau của khối PL/SQL sau là ttri:

• Stored procedure or function

• Local procedure or function

Trang 14

• Package

• Type method

• Top-level anonymous block

Khi một khối PL/SQL đc đưa vào, ncanh giao dịch của nơi gọi sẽ treo Thao tác này dbao rằng cac thao tác SQL thực hiện trong khối này (hoặc các khối khác đc gọi từ nó) không pthuoc hay ahuong đến tthai của ncanh giao dịch gọi

Khi một khối ttri viện dẫn các khối ttri khác hay chính nó, khối đc gọi không chia

xẻ ncanh giao dịch với khối gọi Tuy nhiên, khi một khối ttri viện dẫn một khối không ttri(tức là khối không công bố trước là ttri) thì khối đc gọi thừa kế ncanh giao dịch của khối ttri gọi

Các clenh dkhien gdich trong các khối tự trị(Transaction Control

Statements in Autonomous Blocks)

Các clenh dkhien gdich trong 1 khối PL/SQL tự trị chỉ áp dụng với gdich tự trị active hthoi.VD, các clenh:

Tương tự các clenh dkhien

Similarly, transaction control statements in the main transaction apply only to that transaction and not to any autonomous transaction that it calls For

example, rolling back the main transaction to a savepoint taken before the beginning of an autonomous transaction does not undo the autonomous

transaction

CHƯƠNG IV: QUẢN LÝ GIAO DỊCH VÀ ĐIỀU KHIỂN TƯƠNG TRANH (số tiết 4 )

4 1 Quản lý giao dịch

Khái niệm giao dịch/các giao dịch remote và phân tán/vấn đề tương tranh

H:\ddbs\ddbs1\Managing a Distributed Database.htm

H:\oracle-baigiang\2010\ppt\baigiang truong codex \ch25[1] Advanced Transaction

Trang 15

- Các kniem liên quan

4 Related Concepts:

u Các yêu cầu từ xa

u Các giao dịch từ xa

u Các giao dịch phân tán

- Trong suốt giao dịch

4 Transaction transparency đảm bảo rằng các giao dịch csdl sẽ duy trì tính toàn vẹn

và tính nhất quán csdl Giao dịch sẽ chỉ hoàn toàn nếu và chỉ nếu mọi site csdl liên quan đến giao dịch hoàn tất phần việc giao dịch của mình

- Trong suốt phân tán

4 Distribution transparency Được hỗ trợ bởi từ điển dữ liệu phân tán(distributed data dictionary (DDD) hay bằng catalog dữ liệu phân tán(distributed data catalog (DDC).

DDC chứa mta của toàn bộ csdl khi nhìn bởi DBA.

Mta csdl được biết như lược đồ tổng thể phân tán là lược đồ csdl chung được dùng bởi

TP cục bộ để dịch các yêu cầu nsd thành các truy vấn con

4 Transaction Transparency

4 Các yêu cầu phân tán và các giao dịch phân tán

u Các yêu cầu xa cho phép ta truy nhập csdl được xử lý bởi bộ xử lý csdl xa (Figure 10.10)

u Giao dịch xa bao gồm 1 vài yêu cầu có thể truy nhập dữ liệu chỉ ở một site đơn (Figure 10.11)

u Một giao dịch phân tán cho phép một giao dịch tham chiếu một vài site DP(cục bộ hay ở xa) (Figure 10.12)

u Một yêu cầu phân tán cho phép ta tham chiếu một vài site DP ở xa (Figure

10.13) Nó cũng cho phép truy vấn đơn truy vấn đến các bảng phân chia vật

lý(Figure 10.14)

4 Trong suốt giao dịch

4 Gthuc chuyển giao 2 pha

u Giao thức chuyển giao 2 pha đảm bảo rằng nếu một phần của 1 thao tác chuyển giao không thể chuyển giao thì mọi thay đổi tạo ở các site tham gia vào giao dịch

se không làm(undo) để đảm bảo trạng thái csdl nhất quán

u Mỗi DP(?) duy trì log giao dịch của nó Giao thức 2 pha yêu cầu mỗi giao dịch

DP riêng phần ghi nhận lối vào được viết trước phân đoạn csdl được cập nhật

u Giao thức chuyển giao 2 pha yêu cầu một giao thức DO-UNDO-REDO và giao thức write-ahead

4 Giao thức chuyển giao 2 pha

u Giao thức được dùng bởi các DP để rollback/rollforward các giao dịch với sự trợ giúp của các lối vào log giao dịch hệ thống

Trang 16

l DO thực hiện thao tác và ghi giá trị “before” and “after” trong nky

gdich

l UNDO đảo lại thao tác dùng lối vào được viết bởi phần DO của chuỗi

l REDO làm lại một thao tác sử dụng lối vào nky được viết bởi phần DO của chuỗi

u Giao thức buộc lối vào nky được viết để lưu thường trực trước khi thao tác thực

tế xảy ra

4 Giao thức chuyển giao 2 pha

Giao thức định nghĩa các thao tác giữa 2 kiểu nút: bộ phối hợp và 1 hay nhiều bộ

lệ thộc hay cohort (tụ tập) Các giao thức thực hiện gồm 2 pha:

u Phase 1: Chuẩn bị

l Bộ phối hợp gửi một tdiep PREPARE TO COMMIT đến mọi lệ thuộc

l Các lệ thuộc nhận tdiep viết nhật ký giao dịch sử dụng giao thức head, và gửi một tdiep xnhan đên bộ phối hợp

write-l Bộ phối hợp đảm bảo rằng mọi nút đã sẵn sàng chuyển giao hay từ bỏ giao dịch

u Phase 2: Chuyển giao cuối cùng

l Bộ phối hợp quảng bá tdiep COMMIT đến mọi lệ thuộc và chờ đáp ứng

l Mỗi lệ thuộc nhận tdiep COMMIT thì cập nhật csdl dùng giao thức DO

l Các lệ thuộc gửi đáp ứng với tdiep COMMITED hay NOT COMMITED đến bộ phối hợp.

u Nếu 1 hay nhiều lệ thuộc không chuyển giao , bộ phối hợp gửi tdiep ABORT, vì vậy chúng UNDO mọi thay đổi

Trường họp nghiên cứu: Oracle

4 Distributed Transaction Management (tài liệu quantrigiaodich 1.pdf)

¤ Transaction Concepts and Models

¤ Distributed Concurrency Control

¤ Distributed Reliability

¤ Data Replication

Transaction: Tập hợp các hành động tạo sự chuyển đổi nhất quán của trạng thái hệ thống trong khi đảm bảo sự nhất quán hệ thống(; concurrency transparency, ; failure transparency) VD:

FLIGHT(FNO, DATE, SRC, DEST, STSOLD, CAP) //stsold:cho ngoi da ban,cap:capacity CUST(CNAME, ADDR, BAL)

Trang 17

EXEC SQL SELECT STSOLD, CAP INTO temp1, temp2

FROM FLIGHT where FNO = flight_no and DATE = date;

if temp1 = temp2 then output(“\no free seats");

abort

else

EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD +1

WHERE FNO =flight_no and DATE = date;

EXEC SQL INSERT into FC(FNO,DATE,CNAME,SPECIAL)

VALUES (flight_no, date, customer_name, null);

¤ Let Oij(x) be some operation Oj of a transaction Ti operating on an

object x, where Oj 2 fRead,Writeg and Oj is atomic.

{ OSi = j Oij

{ Ni 2 fcommit, abortg

¤ A transaction Ti is a partial order Ti = fi;<ig where

{ i = OSi [fNig

{For any two operations Oij;Oik 2 OSi, if Oij = R(x) and Oik = W(x),

then for any data item x either Oij <i Oik or Oik <i Oij

{ 8Oij 2 OSi;Oij <i Ni

Trang 18

## ##

o Quản trị gdich pt :

Như CSDL đơn: Transaction manager, scheduler, recovery manager, buffer managerCSDL phân tán: Global transaction manager (Transaction Coordination)

Các đặc trưng của giao dịch:

¤ Dựa trên các pvi ứng dụng ((non-)distributed,heterogeneous transactions),Thời gian (on-line vs batch), tchuc hay các hoạt đọng ghi /đọc (two-step,

restricted, action model), và cấu trúc

Cấu trúc

¤ Giao dịch phẳng : sequence of primitive operations nằm giữa begin và end của giao dịch

¤ Các giao dịch lồng:

- Các thao tác giao dịch có thể bản than nó là 1 giao dịch

- Có một vài thuộc tính giống thuộc tính mức cha của nó, tức là bản than chúng có các giao dịch lồng khác

- Đưa ra điều khiển tương tranh và phản hồi bên trong 1 TA

- Các lồng kín:

(1) sub-tas begin after parent and nish before them,

(2) commit of sub-ta is conditional upon commit of parent

Trang 19

- Nesting mở:

(1) sub-ta can execute and commit independently,

(2) compensation may be necessary

¤ Các giao dịch phải cung cấp

(1) vận hành nguyên tử và tin cậy trong khi có mặt các sự cố

(2) vận hành đúng khi có mặt của truy nhập nhiều nsd, và

(3) quản trị các nhân bản đúng

Xử lý giao dịch công bố:

¤ Cấu trúc giao dịch (transaction model)

¤ Tính nhất quán csdl nội tại (integrity enforcement)

¤ Các giao thức tin cậy

- Nguyên tử và bền vững

- Các giao thức phuc hồi cục bộ

- Các giao thức chuyển giao tổng thể

¤ Các giải thuật điều khiển tương tranh

- Làm sao để dbo các vận hành TA tương tranh, cách ly

¤ Các giao thức điều khiển Replica

- Làm sao điều khiển tính nhất quán tương hỗ của dữ liệu được nhân bản (replicated data)?

- Một bản copy, ROWA, tập trung (consensus)đa số, bầu cử động, cây quorum (số đại biểu cần thiết theo quy định)

Vận hành giao dịch tập trung và phân tán:

- ¤ Bộ quản trị giao dịch (TM) chịu trách nhiệm cho phối hợp vận hành của các thao tác csdl nhân danh các ứng dụng

- ¤ Các bộ lập lịch (SC) chịu trách nhiệm thực hiện giải thuật điều khiển tương tranh đặc tả

- ¤ Bộ quản trị phục hồi cục bộ (RM) thực hiện các thủ tục để phục hồi từ các sự cố

Điều khiển tương tranh: vấn đề đồng bộ các giao dịch tương tranh sao cho tính nhất quán cua csdl được bảo toàn trong khi cùng thời gian đạt được mức độ tương tranh cao nhất

~ Bất thường: mất cập nhật, đọc bẩn, phân tích không nhất quán

Vận hành lịch biểu ( or History):

- ¤ Khái niệm một lịch biểu cung cấp một cơ chế để thể hiện và lạp luận về vận hành tương tranh (khả dĩ) của các giao dịch

- ¤ Mô tả thứ tự các thao tác để các TA được vận hành

- ¤ Lịch biểu có thể được định nghĩa như thứ tự riêng qua các thao tác này

Trang 20

¤ A complete schedule S(T) over a set of transactions

T = fT1;::: ;Tng is a partial order S(T) = fT ;<T g where

{ T = i i; for i = 1;:::n

{ <T i <i; for i = 1;:::n

{ For any two con

icting operations Oij;Okl 2 T ,

either Oij <T Okl or Okl <T Oij

+S1 = {R1(A);W1(A);R2(A);R2(B);C2;R1(B);W1(B);C1g

¤ Trong một lịch biểu nối tiếp

{ all operations in transaction occur consecutively

{ no interleaving of transaction operations

{ if each transaction results in a consistent state, then the serial schedule

of these transaction results in a consistent state, too

+S1 = {R1(A);W1(A);R1(B);W1(B);C1;R2(A);R2(B);C2; g

Các lịch biểu tương đương : Two schedules S and S0

are said to be equivalent i

¤ they contain the same transactions and operations (S:T = S0

Kiểm tra tính nối tiếp:

¤ If precedence graph (based on conflicting operations) for schedule S has

no cycles, then S is serializable Serial schedule is obtained through

toplogical sorting

¤ Việc thực hiện khả thi:

In practice, for concurrently executing transactions, the scheduler veri

Trang 21

es whether the actual schedule is serializable For this, the schedulermaintains and extends the precedence graph while new operations areperformed (or announced) by transactions.

{ if the actual graph is acyclic, then continue schedule

{ otherwise reset (some) transactions

Tính ntiep trong CSDL phân tán

¤ Local as well as global schedules have to be considered

¤ For global schedule to be serializable

1 Each local schedule should be serializable

2 Two coniciting operations should be in the same relative order in all

of the local schedules where they appear together

Không thể nối tiếp tổng thể :

Consider two sites and data item x = 1 duplicated at both sites.

LậP LịCH là nối tiếp hóa riêng phần(chúng có thể là nối tiếp), nhưng :::

Cac giải thuật điều khiển tương tranh :

Bi quan

- Two-Phase Locking Protocol (2PL)

{ Centralized (primary site) 2PL

Trang 22

Locking-based Algorithms:

* Gdich chỉ ra của nó bằng khóa các ycau từ bô ll (qtri khóa)

* Khóa hoặc là khóa đọc rl (còn gọi là khóa chia xe) hoặc là khóa ghi wl(còn gọi là khóa drieng)

Các khóa đọc và các khóa ghi ddo

Lock-Compatibility Matrix:

Khóa 2 pha:

1 1 giao dịch khóa 1 dtuong trước khi sử dụng nó (read or write)

2 khi dtuong bị khóa bởi các giao dịch khác, giao dịch yêu cầu phải chờ ( có Problems)

3 Khi giao dịch giải phóng 1 khóa, nó không yêu cầu bất kỳ khóa nào

khác(trên dtuong khác)

Strict 2PL (nghiêm ngặt): Mọi khóa được giải phóng cuối mỗi giao dịch (sl(x);sl(y);r(x); unlock(x);r(y); unlock(y)) hay

(sl(x);sl(y);r(x);r(y); unlock(x); unlock(y))

Việc triến khai thông qua bảng khóa (trong các hệ thống thương mại là các header dữ liệu , id của giao dịch)

Thứ tự nhãn thời gian

o “Lựa chọn” thứ tự nối tiếp và vận hành theo đó

o Gthiet tổng thể(phạm vi hệ thống) tăng việc đơn điệu( đồng hồ tổng thể->vấn đề)

Trang 23

1 Giao dịch Ti được gán một nhãn thời gian duy nhất tổng thể TS(Ti) dnghia mối quan

hệ giữa các giao dịch già hơn và trẻ hơn

2 Bộ giao dịch quản trị gắn nhãn thời gian cho mọi thao tác công bố bởi các giao dịch

3 Mỗi dtuong x có 2 nhãn thời gian:

RTS(X) := max{TS(T) | T has read x}

WTS(X) := max {TS(T) | T has written x}

1 Việc đụng độ thao tác được pgiai bằng thứ tự:

Một thao tác có thể xử lý nếu mọi bước đụng độ của các ỉa thiết rằng giao dịch T muốn thao tác trên dtuong x:

Case operation of:

read: if TS(T) < WTS(x) then reject (reschedule) read;

Problem: Basic TO tries to execute operations as soon as possible TO

algorithm can never cause operations to wait, but instead, restarts them

Advantage due to deadlock freedom, disadvantage, because numerous restartswould have adverse performance implications

Conservative Timestamp Ordering

¤ As basic TO, but additionally assurance of \write phase"

¤ Idea: operations of each transaction are queued until an ordering can beestablished so that rejections are not possible, and they are executed in

that order

read: if TS(T) < WTS(x) then reject read

else if lock queue(x) = ;^

lock: if TS(T) < max{RTS(x);WTS(x)g then reject lock

else insert lock(x) into lock queue(x);

write: lr queue := lock queue(x) [ read queue(x);

Trang 25

after executing write(x), exclusive lock is released

possibly other operations then can be executed on that object

Multiversion Timestamp Ordering

¤ Do not modify values in DB but create new values

¤ A readi(x) is translated into a read on one version of x

!

Trang 26

nda versionof x (say xv) suchthat TS(xv) isthelargesttimestamp

less than TS(Ti)

¤ A writei(x) is translated into Wi(xw) so that TS(xw) = TS(Ti) and

accepted if no other transaction with a timestamp greater than TS(Ti)

hasreadthe valueofa version x (say xr) suchthat TS(xr) > TS(xw)

In other words, if the scheduler has already processed Rj(xr) such thatTS(Ti) < TS(xr) < TS(Tj), then Wi(x) is rejected

¤ Algorithm trades space for time

Optimistic Concurrency Control Algorithms

Pessimistic execution: validate ! read ! compute ! write (commit)

Optimistic execution: read ! compute ! validate ! write (commit)

¤ Underlying transaction execution model: divide into subtransactions each

of which executes at a site: transaction Tij executes at site j

¤ Transactions run independently at each site until they reach the end oftheir read phases

¤ All subtransactions are assigned a timestamp at the end of their readphase

¤ Validation test performed during validation phase If one fails, all rejected.Optimistic CC Validation Test (local validation of Tij):

1 If all transactions Tk where TS(Tk) < TS(Tij) have completed theirwrite phase before Tij has started its read phase, then validation succeeds(tas execute in serial order) -

2 If there is any transaction Tk such that TS(Tk) < TS(Tij) which

completes its write phase while Tij is in its read phase, the validation

succeeds if Tij does not read objects written by Tk

-3 If there is any transaction Tk such that TS(Tk) < TS(Tij) which

completes its read phase before Tij completes its read phase, the

validation succeeds if they don't access any common data object

¤ Once a ta is locally validated to ensure that local db consistency is

maintained, it also needs to be globally validated

! no know optimistic methods for doing this

¤ major problem with OCCA: high storage cost; the read and write sets ofterminated transactions that were in progress when Tij arrived at site jneed to be stored in order to validate Tij

Deadlock Management

¤ A transaction is deadlocked if it is blocked and will remain blocked untilthere is an intervention (ta manager or user)

¤ Locking-based CC algorithms cause deadlocks

¤ TO-based algorithms that involve waiting may cause deadlocks

Trang 27

T3 waits for a lock held by T4 which waits for a lock held by T1 whichwaits for a lock held by T2 which, in turn, waits for a lock held by T3 –Approaches to Deadlock Management

¤ Ignore: Let the application programmer deal with it, or restart system

¤ Prevention: Guaranteeing that deadlocks never occur in

Trang 28

rst place.

Check transaction when it is initiated Requires no run-time support

¤ Avoidance: Detecting potentialdeadlocksinadvance and takingaction

to ensure that deadlock will not occur Requires run-time support

¤ Detection and Recovery: Allowing deadlocks to form and then

Trang 29

Resources must only be reserved, but not allocated

Unsuitable in database environment (= programming)

Suitable for systems that have no provisions for undoing processes

¤ Evaluation

{ Reduced concurrency due to preallocation

{ Evaluating whether an allocation is safe leads to overhead

{ Di

Trang 30

cult to determine (partial order)

+ No transaction rollback or restart is involved

Deadlock Avoidance

¤ Transactions are not required to request resources a priori

¤ Transactions are allowed to proceed unless a requested resource isunavailable

¤ In case of con

ict, transactions may be allowed to wait for a

Trang 31

xed time

interval (timeout)

¤ Order either the data item or the sites and always request locks in thatorder

¤ More attractive than prevention in database environment

¤ Deadlock Avoidance { Wait-Die & Wound-Wait Algorithms

Deadlock Detection and Resolution

¤ Transactions are allowed to wait freely

¤ Wait-for graphs and cycles

¤ Topologies for deadlock detection: (1) Centralized, (2) Distributed,(3) Hierarchical

Centralized Deadlock Detection

¤ One site is designated as the deadlock detector for the system Eachscheduler periodically sends its local WFG to the central site which mergesthem to a global WFG to determine cycles

¤ How often to transmit?

too often =) higher communication cost but faster deadlock detectiontoo late =) high delays due to deadlocks, lower communication cost

¤ Would be a reasonable choice if concurrency control algorithm is alsocentralized

Distributed Deadlock Detection

¤ Sites cooperate in detection of deadlocks

¤ Example:

The local WFGs are formed at each site and passed on to the other

sites Each local WFG is modi

Trang 32

ed as follows:

1 Since each site receives the potential deadlock cycles from other sites,these edges are added to the local WFG

2 The edges in the local WFG which show that local transactions are

waiting for transactions at other sites are joined with edges in the local

WFGs which show that remote tas are waiting for local ones Edge(biên)Each local deadlock detector then:

¤ looks at a cycle that does not involve the external edge If it exists,

there is a local deadlock which can be handled locally

¤ looks for a cycle involving the external edge If it exists, it indicates apotential global deadlock Pass on the information to the next site

Reliability

Problem: How to maintain atomicity and durability properties of transactions.Fundamental De

Trang 33

¤ Reliability:

{ A measure of success with which a system conforms to someauthoritative speci

Trang 34

cation of its behavior.

{ Probability that the system has not experienced any failures within agiven period of time Exprience(kinh qua,thực nghiệm)

{ Typically used to describe systems that cannot be repaired or wherethe continuous operation of the system is critical

¤ Availability:

{ The fraction of the time that a system meets its speci

Trang 35

{ The probability that the system is operational at a given time t

¤ Failure: The deviation of a system from the behavior that is described inits specification (có thể lỗi ngoài và error)

¤ Erroneous State: Internal state of the system such that there exist

circumstances in which further processing, by normal algorithms of the

system, will lead to a failure which is not attributed to a subsequent fault (lỗi bên trong)

¤ Error: Part of the state which is incorrect

¤ Fault: An error in the internal states of the components of a system or inthe design of a system Types of faults:(Lỗi fault là do error)

{ Hard faults: Permanent; resulting failures are called hard failures

{ Soft faults: Transient or intermittent; account for more than 90% of

all failures; soft failures

Fault tolerance measures for reliability, availability, mean time betweenfailures, mean time to repair, :::

Types of Failures in Distributed DBMS

¤ Transaction failures

{ Transaction aborts (unilaterally -đơn phương-or due to a deadlock)

{ Avg 3% of transactions abort abnormally

¤ System (site) failures

{ failure of processor, main memory, power supply, ::: ,

{ Main memory contents are lost, but secondary storage contents are safe

¤ Media failures

{ Failure of secondary storage devices

{ Head crash / controller failure

Trang 36

er; type of operation

¤ object accessed by the transaction to perform the action

¤ old value (state) of object (before image)

¤ new value (state) of object (after image)

Write-Ahead Log Protocol:

¤ If a system crashes before transaction is committed, then all operationsmust be undone Only need the before image (undo portion of the log)

¤ Once a transaction is committed, some of its actions might have to beredone Need after images (redo portion of the log)

¤ WAL protocol:

1 Before a stable database is updated, the undo portion of the log should

be written to the stable log (bu

How to execute commit for distributed transactions?

Issue: How to ensure atomicity and durability?

¤ Termination protocols:

If a failure occurs, how can the remaining sites deal with it?

Non-blocking: the occurrence of failure should not force the sites to waituntil the failure is repaired to terminate the transaction

Trang 37

nal decision with respect to global commit/abort.

¤ Execution of the protocol is initiated by coordinator after the last step ofthe global transaction has been reached

¤ Note that when the protocol is initiated, the transaction still may beexecuting at some local sites

Phase 1: Coordinator gets the participants ready to write the results into thedatabase

Phase 2: Everybody writes the results into the database

! Coordinator: The process at the site where the transaction originatesand which controls the execution

! Participants: Processes at the other other sites that participate in

executing the transaction

Global Commit Rule:

1 Coordinator aborts a transaction if and only if at least one participantvotes to abort it

2 Coordinator commits a transaction if and only if all participants vote

to commit it

2PC Protocol Actions

Trang 38

Site sự cố- Kết thúc 2PC

C: Timeout trong initial(khởi động) -> không vấn đề

C: Timeout in wait -> không the chuyển giao dơn phương, có thể abort đơn phương

C: Timeout in abort or commit -> vẫn bị khóa và chờ acks

P: Timeout in initial -> Bộ phối hợp phải sự cố ; abort

Trang 39

P: Timeout in ready -> vẫn bị khóa

Site sự cố - Phục hồi 2PC

C: Sự cố trong initial or wait -> bắt đầu hay bắt đâu lại trên phục hồi

C: Failure trong abort or commit -> Không có gì dbiet nếu acks đã nhận được khác đi thì giao thức kết thúc bị kéo vào

P: Sự cố trong initial ->thoát đơn phương khi phục hồi

P: Sự cố trong ready -> Bộ phối hợp đã được thông báo về quyết định cục bộ

; xử lý như timeout trong trạng thái ready và viện dẫn giao thức kết thúc P: Sự cố trong commit or abort -> không cần làm gì dbiet

2PC Recovery { Additional Cases

Arise due to non-atomicity of log and message send actions

¤ Coordinator fails after writing begin commit log and before sending

prepare command

! treat is as failure in wait state; send prepare command

¤ Participant site fails after writing ready record in log but before vote

Trang 40

nal decision but before sending

decision to participants !

-¤ Participant site fails after writing abort or commit in log but before ack

is sent ! –

Các vấn đề với 2PC(Problems with 2PC)

Phong tỏa (giảm tính sẵn sàng )

Sẵn sàng ngụ ý các thành viên chờ bộ phối hợp

Nếu bộ phối hợp sự cố, site bị khóa cho tới khi phục hồi

Không thể phục hồi độc lập

Tuy nhiên, được biết có giao thức phục hồi độc lập với site đơn sự cố, không

có giao thức phục hổi độc lập tồn tại với sự cố nhiều site

3PC Protocol (Non-Blocking Protocol)

¤Một giao thức chuyển giao không khóa nếu và chỉ nếu

1 Nó được đồng bộ với quá độ trạng thái , và

2 Vận đồ quá độ của nó chứa (a) không có trạng thái là “kế cận” ở cả trạng thái chuyển giao và thoát

- Kế cận: khả năng đến từ trạng thái này sang trạng thái khác với 1 quá độ đơn Khả năng chuyển giao được: Mọi site đều bầu cho chuyển giao tương tranh

## ##

4 2 Điều khiển tương tranh

Xem them lesson08_data_tb3.ppt

++++++

o Điều khiển tương tranh :

Mục tiêu(5):/co giãn được khi sự cố/thực hiện song song/Tổng phí tính toán và lưu trữ nhỏ/Thực hiện trên mạng có độ trễ lớn/ Đặt ít ràng buộc lên hoạt động nguyên tử

Những vấn đề(5): mất cập nhât/mất sự phụ thuộc không được chuyển giao/phân tích không nhất quán /nhiều bản sao/ đồng bộ hay không đồng bộ

Nối tiếp hóa phân tán(4): tiến hành lập lịch tổng thể/Đảm bảo khóa/Đảm bảo nhãn

tgian/nếu không có nhân bản thì thực hiện như CSDL đơn

Các giao thức Khóa(4): Khóa trung tâm 2 pha/khóa bản sao cơ sở 2 pha /khóa phân tán 2 pha /luật đa số

Khóa phân tán 2 pha: mỗi site có quản trị khóa riêng(cho giao tiếp)/nếu không có nhân bản thì giao thức này giống khóa bản sao cơ sở 2 pha/thực hiện đọc một ghi

nhiều(ROWA có thẻ đọc bản sao bất kỳ nhưng phải đảm bảo ghi toàn bộ các bản

sao)/tránh nhược điểm của khóa trung tâm/là mở rộng của khóa bản sao cơ sở 2 pha /mức độ phức tạp hơn-giá cao hơn

Khóa đa số(3): có thể thực hiện giao dịch khi khóa hơn 50 % các giao dịch/mở rộng của ROWA nhưng linh hoạt hơn/ tránh nhược điểm của khóa trung tâm nhưng đắt hơn-phức tạp hơn

Giao thức tem tgian(3): giống các giao thức trước nhưng têm định danh cục bộ/ưu tiên tem tgian “già hơn”/nếu cũng tem thì lưu ý đến tính định vị “sớm hơn”

o Quản trị khóa chết

Các loại: Phát hiện khóa chết trung tâm/phân cấp/phân tán

Ngày đăng: 17/01/2016, 00:08

HÌNH ẢNH LIÊN QUAN

Bảng 13-3 cho thấy các chế độ khóa bảng mà các câu lệnh chiếm giữ và các  thao tác mà các kháo nay cho phép hay cấm - đề thi quản trị cơ sở dữ liệu phân tán 8
Bảng 13 3 cho thấy các chế độ khóa bảng mà các câu lệnh chiếm giữ và các thao tác mà các kháo nay cho phép hay cấm (Trang 138)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w