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

Cơ sở dữ liệu Oracle

74 1,3K 18
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Các Công Nghệ Sử Dụng Trong Cơ Sở Dữ Liệu Phân Tán Và Oracle
Trường học Đại Học Quốc Gia Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Định dạng
Số trang 74
Dung lượng 1,02 MB

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

Nội dung

Cơ sở dữ liệu Oracle

Trang 1

Khoa C«ng nghÖ Th«ng tin

C¸c c«ng nghÖ sö dông trong C¬ së d÷ liÖu ph©n t¸n vµ ORACLE

Vò ViÖt Hµ

Trang 2

Mục lục

Mục lục 1

Mục lục 2

I Giới thiệu chung 5

II Các đặc điểm chính của hệ phân tán 5

1 Chia xẻ tài nguyên 5

2 Tính mở 8

3 Khả năng song song 8

4 Khả năng mở rộng 8

5 Khả năng chịu lỗi 9

6 Tính trong suốt 10

III Các lí do sử dụng CSDL phân tán 10

1 Xuất phát từ chính yêu cầu thực tế về tổ chức và kinh tế 10

2 Sự liên kết các CSDL đang tồn tại 10

3 Sự phát triển mở rộng 11

4 Làm giảm tổng chi phí tìm kiếm 11

5 Trả lời truy vấn nhanh 11

6 Độ tin cậy và khả năng sử dụng đợc nâng cao 11

7 Giá thành truyền thông thấp hơn 12

IV Hạn chế của CSDL phân tán 12

phần II 13

Các công nghệ sử dụng trong 13

hệ Cơ sở dữ liệu phân tán 13

I Kiến trúc cơ bản của CSDL phân tán 13

1 Sơ đồ tổng thể 13

2 Sơ đồ phân đoạn 13

3 Sơ đồ định vị: 14

4 Sơ đồ ánh xạ địa phơng: 14

II Thiết kế hệ thống CSDL phân tán 14

1 Khung làm việc chung cho thiết kế hệ CSDL phân tán 14

2 Các phơng pháp thiết kế hệ CSDL phân tán 15

3 Thiết kế CSDL phân đoạn 17

4 Kết luận 21

III GIới thiệu về giao tác 21

1 Định nghĩa 21

2 Các điều kiện kết thúc của giao tác 22

3 Các thuộc tính của giao tác 22

3 Các loại giao tác 23

4 Kiến trúc của giao tác 24

IV Điều khiển tơng tranh phân tán 24

1 Khái niệm xung đột và lịch đầy đủ 25

2 Các cơ chế điều khiển tơng tranh 25

3 Quản lý khóa chết 26

3 Kết luận 28

V Lỗi và chịu lỗi trong hệ phân tán 28

1 Các khái niệm 28

2 Các lỗi trong Hệ phân tán 30

3 Các cách chịu lỗi trong Hệ phân tán 31

Phần III cơ sở dữ liệu phân tán trên oraclE 33

I Các khái niệm cơ bản 33

1 Snapshot 33

2 Sao bản cơ sở 33

Trang 3

3 Các nhóm sao bản ( Replication Groups) 33

4 Các vị trí sao bản (Replication Sites) 34

5 Danh mục sao bản 34

6 Database link 34

2 Tạo Read-Only Snapshot 35

3 Sửa đổi các Snapshot 37

4 Xoá Snapshot 38

5 Index Snapshot 38

6 Sử dụng Snapshot 38

7 Tạo View và Synonyms dựa trên Snapshot 38

III Updatable Snapshot 39

IV Các vấn đề cơ bản về Snapshot log 39

1 Định nghĩa 39

2 Tạo các Snapshot log 40

3 Sửa đổi các tham biến của Snapshot log 41

4 Xoá các Snapshot log 41

5 Quản lý Snapshot log 41

V Giới thiệu về các nhóm làm tơi Snapshot 42

1 Tạo nhóm làm tơi Snapshot 42

2 Sửa đổi nhóm làm tơi Snapshot 42

VI Vấn đề làm tơi các Snapshot 43

1 Giới thiệu 43

2 Các điều kiện để thực hiện làm tơi Snapshot 43

3 Tự động làm tơi Snapshot 44

4 Làm tơi Snapshot bằng tay 46

VII Các mô hình phân tán dữ liệu trong Oracle 46

1 Phân tán dữ liệu hoàn toàn 47

2 Phơng pháp phân tán Partition 50

3 Phơng pháp phân tán sử dụng các Replicate 53

4 Kết hợp các chiến lợc 55

VIII giải quyết xung đột trong Oracle 55

1 Giới thiệu 55

2 Xoá các xung đột 56

3 Các nhóm cột 57

4 Giới thiệu một số phơng pháp giải quyết xung đột 58

5 Khai báo phơng pháp giải quyết xung đột 59

Phần I

Cơ Sở Dữ Liệu Phân Tán trong bài toán WSc (water supply company ) 67

i Giới thiệu khái quát về hệ thống và các vấn đề liên quan đến hệ thống 67

1 Mô hình tổ chức và mô hình mạng của Công ty WSC 67

2 Phạm vi của hệ thống 69

II Mô hình phân tán dữ liệu tại WSC 69

1 Phân tán chức năng hoạt động giữa trung tâm và chi nhánh tại WSC 69 2 Mô hình dữ liệu chung tại WSC 70

3 Mô hình dữ liệu phân tán tại WSC 70

4 Các chú ý khi tạo các bảng tại các chi nhánh trong cấu hình CSDL phân tán 71

III Phân tán dữ liệu khách hàng trong WSC 76

1 Giới thiệu các thực thể trong ứng dụng quản lí Khách Hàng 76

2 Thực hiện phân tán CSDL 77

Tài liệu tham khảo 88

Tài liệu tham khảo 88

Trang 4

phần I tổng quan về hệ cơ sở dữ liệu phân tán

I Giới thiệu chung.

Định nghĩa: Hệ CSDL phân tán là một tập hợp dữ liệu mà về mặt logic tập

dữ liệu này thuộc về một hệ thống, nhng đợc trải trên các vị trí khác nhau vàchúng có thể kết nối với nhau thông qua một mạng thông tin dữ liệu

Có hai điểm quan trọng đợc nêu ra trong định nghĩa là:

- Phân tán: Dữ liệu không c trú trên một vị trí, mà đợc phân bố rộng khắp

trên nhiều máy tính đặt tại nhiều vị trí khác nhau

- Tơng quan logic: Dữ liệu có một số các thuộc tính ràng buộc chúng với

nhau, điều này giúp chúng ta có thể phân biệt một CSDL phân tán với một tậphợp CSDL cục bộ, các tệp c trú tại các vị trí khác nhau, hay hệ thống CSDLphân quyền trong một mạng máy tính

Hệ thống mạng thông tin cho phép ngời dùng chia sẻ dữ liệu, vì vậy ngời

sử dụng hoặc ứng dụng ở vị trí A đều có thể truy cập hay cập nhật dữ liệu tại

vị trí B

Các vị trí của một hệ thống phân tán có thể trải rộng trên một khu vực lớn(toàn thế giới) hoặc một phạm vi hẹp (toà nhà) Cũng nh vậy máy tính ở các vịtrí phân tán có thể là bất cứ loại nào, từ micro-computer cho đếnsupercomputer

II Các đặc điểm chính của hệ phân tán.

Hệ phân tán có các đặc điểm:

1 Chia xẻ tài nguyên.

Thuật ngữ tài nguyên dùng để chỉ tất cả mọi thứ có thể chia xẻ bởi Hệphân tán, bao gồm các thiết bị phần cứng: Đĩa, máy in tới các đối tợng nhfile, các cửa sổ, CSDL và các đối tợng dữ liệu khác

Việc chia xẻ tài nguyên trên hệ phân tán - nơi mà các tài nguyên bị lệthuộc về mặt vật lý với một máy tính nào đó - đợc thực hiện thông qua truyềnthông Để chia xẻ tài nguyên một cách hiệu quả mỗi tài nguyên cần phải đợcquản lý bởi một chơng trình có giao diện truyền thông, các tài nguyên có thể

đợc truy nhập, cập nhật một cách tin cậy và nhất quán Quản lý tài nguyên ở

đây là lập kế hoạch dự phòng, đặt tên cho các lớp tài nguyên, cho phép tàinguyên đợc truy nhập từ nơi khác, ánh xạ tên tài nguyên vào địa chỉ truyềnthông

Mô hình mạng máy tính thờng đợc sử dụng là: Mô hình xử lý Server

Client-Mô hình xử lý Client-Server:

Trang 5

Là một mô hình trong đó có việc xử lý hợp tác đối với các yêu cầu củaClient nêu ra với máy Server Máy Server tiến hành xử lý và gửi trả kết quả vềcho Client.

Việc xử lý hợp tác Client-Server thực tế là một dạng riêng của xử lý phântán với tài nguyên (và nhiệm vụ ảnh hởng tới tài nguyên) đợc trải qua hai haynhiều hệ thống tính toán rời rạc

Mô hình xử lý Client-Server đã nổi lên nh một mức cao hơn của việc xử lýdùng chung thiết bị đã có trong mang cục bộ (LAN) Trong môi trờng xử lýdùng chung thiết bị, các máy tính cá nhân (PC) đợc gắn với thiết bị hệ thống

để cho phép các PC này dùng chung tài nguyên tệp trên đĩa cứng và máy in làcác thí dụ tiêu biểu Theo thuật ngữ LAN, các thiết bị dùng chung nh vậy đợcgọi là các Server (phục vụ) Tên phục vụ là thích hợp hơn cả vì các thiết bịdùng chung này dùng để nhận các yêu cầu cần phục vụ từ các PC Trong xử lýdùng chung thiết bị trên LAN, các yêu cầu của PC này thờng bị giới hạn vềcác dịch vụ liên quan tới tệp dùng chung hay tệp xử lý in Nhợc điểm hiểnnhiên của cách tiếp cận nh vậy là ở chỗ mọi xử lý ứng dụng đều đợc thực hiệntrên các PC riêng lẻ, và chỉ một chức năng nào đó (in, vào ra tệp) mới là phântán Do đó, toàn bộ tệp phải đợc gửi cho một PC đã ban ra yêu cầu READ tệp

đó Nếu tệp đợc cập nhật thì toàn bộ tệp đó bị khoá bởi PC đã tạo ra yêu cầucập nhật tệp đó

Chính vì các lý do trên mà mô hình xử lý Client-Server là việc mở rộng tựnhiên của việc dùng chung thiết bị và vai trò của các trạm làm việc trở thànhkhách của máy chủ Phần có ý nghĩa nhất của mô hình này là xử lý ứng dụng

đợc phân chia (không nhất thiết phải chia đều) giữa Client và Server Xử lýthực tế đợc khởi đầu và kiểm soát một phần bởi nơi yêu cầu dịch vụ là Clientnhng không phải theo kiểu chủ-khách Thay vì điều đó, cả Client và Server

đều hợp tác để thực hiện thành công ứng dụng Chẳng hạn nếu PC chạy chơngtrình cần một bản ghi đặc biệt nào đó từ một tệp dùng chung thì nó sẽ chuyểnyêu cầu cho Server CSDL tiến hàng xử lý cục bộ rồi nhận lại đúng bản ghi đãyêu cầu

Nh vậy về mặt kiến trúc xử lý Client-Server cho thấy:

- Đờng liên lạc tin cậy, chắc chắn giữa Client và Server

- Các trờng hợp tơng tác Client-Server do Client khởi xớng

- Phân tán xử lý ứng dụng giữa Client và Server

- Server kiểm soát các dịch vụ mà Client yêu cầu

- Server làm trọng tài cho các yêu cầu tranh chấp

Với Hệ CSDL phân tán, mô hình Client-Server có các u điểm:

Trang 6

- Các công ty lợi dụng đợc công nghệ tính toán của PC PC ngày nay cungcấp một năng lực tính toán đáng kể (mà trớc đây chỉ các máy tính lớn mới có

đợc) nhng lại với một giá thành nhỏ

- Cho phép xử lý đợc thực hiện tại gần nguồn dữ liệu cần xử lý (các CSDLtrên Server) Do đó lu lợng và thời gian đáp ứng của mạng giảm đi rất nhiều,hiệu năng và khả năng chuyển tải của mạng đợc tăng lên

- Tạo điều kiện cho việc dùng giao diện đồ hoạ (GUI) có sẵn trên các trạmlàm việc hiện có

- Cho phép và hỗ trợ hệ thống mở: Client và Server có thể chạy trên cácnền phần cứng và phần mềm khác nhau

Tuy nhiên không phải là mô hình Client-Server đã hoàn chỉnh, nó vẫn còncác nhợc điểm sau đây:

- Nếu có khá nhiều thành phần logic của ứng dụng đợc chuyển về Serverthì Server sẽ trở thành cổ chai y nh máy tính lớn (main frame) mô hình thiết bị

đầu cuối Các tài nguyên hạn chế của Server sẽ ở trạng thái bị đòi hỏi làm việc

ở mức cao hơn do việc tăng số ngời tiêu thụ tài nguyên (End User)

- Các ứng dụng phân tán, đặc biệt là những ứng dụng đợc thiết kế cho xử

lý hợp tác thờng phức tạp hơn các ứng dụng không phân tán Tuy nhiên có thểgiảm bớt độ phức tạp bằng cách thu nhỏ vấn đề lớn thành một tập hợp vấn đềnhỏ hơn, có thể đợc tính độc lập nhau, tơng tự nh trong hệ thiết kế đơn thể

2 Tính mở.

Tính mở của một hệ thống máy tính là tính dễ dàng mở rộng phần cứng(thêm các thiết bị ngoại vi, bộ nhớ, các giao diện truyền thông ) và phầnmềm (Các mô hình hệ điều hành, các giao thức truyên thông, các dịch vụdùng chung tài nguyên ) của nó

Một Hệ phân tán có tính mở là hệ có thể đợc tạo nên từ nhiều loại phầncứng và phần mềm của nhiều nhà cung cấp khác nhau với điều kiện là cácthành phần này phải theo một tiêu chuẩn chung

Tính mở của Hệ phân tán đợc xem xét theo mức độ bổ sung vào các dịch

vụ dùng chung tài nguyên mà không phá hỏng hay nhân đôi các dịch vụ đangtồn tại Tính mở đợc hoàn thiện bằng cách xác định hay phân định rõ các giaodiện chính của một hệ và làm cho nó tơng thích với các nhà phát triển phầnmềm (hay các giao diện chính là phổ dụng)

Tính mở của Hệ phân tán dựa trên việc cung cấp cơ chế truyền thông giữacác tiến trình và công khai các giao diện dùng để truy nhập các tài nguyênchung

Trang 7

Khả năng làm việc song song trong Hệ phân tán đợc thực hiện do hai tìnhhuống sau:

- Nhiều ngời sử dụng đồng thời đa ra các lệnh hay tơng tác với các chơngtrình ứng dụng

- Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình đáp ứng yêu cầu từcác tiến trình Client

4 Khả năng mở rộng.

Hệ phân tán có khả năng hoạt động tốt và hiệu quả ở nhiền mức khácnhau Một Hệ phân tán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc vàmột File Server Các hệ lớn hơn thì gồm có hàng nghìn máy, nhiều File Server,Printer Server

Khả năng mở rộng của một hệ phân tán đặc trng bởi tính không thay đổiphần mềm hệ thống và phần mềm ứng dụng khi hệ đợc mở rộng Điều này chỉ

đạt ở mức độ nào đó đối với các Hệ phân tán hiện tại Yêu cầu cho việc mởrộng không chỉ là sự mở rộng về phần cứng hay về mạng mà nó trải rộng trêntất cả các khía cạnh khi thiết kế hệ phân tán Một ví dụ đơn giản là tần suất sửdụng một file lớn tơng đơng với việc tăng thêm số ngời sử dụng trên mạng Đểtránh tình trạng tắc nghẽn xảy ra khi chỉ có một Server đáp ứng các yêu cầutruy nhập file đó, ngời ta nhân bản file đó trên một vài Server và hệ thống đợcthiết kế sao cho việc thêm Server dễ dàng Một số giải pháp khác là sử dụngCache và các bản sao dữ liệu

5 Khả năng chịu lỗi.

Việc thiết kế khả năng chịu lỗi của các hệ thống máy tính dựa trên hai giảipháp sau:

- Dùng khả năng thay thế để đảm bảo sự hoạt động liên tục và hiệu quả

- Dùng các chơng trình phục hồi dữ liệu, thông tin khi xảy ra sự cố

Để xây dựng một hệ thống có thể khắc phục sự cố theo cách thứ nhất thìngời ta nối hai máy tính với nhau để thực hiện một chơng trình, một trong haimáy chạy ở chế độ Standby (không tải hay chờ) Giải pháp này khá tốn kém vìphải nhân đôi phân cứng của hệ thống Một giải pháp để giảm phí tổn là cácServer riêng lẻ đợc cung cấp các ứng dụng quan trọng để có thể thay thế nhaukhi có sự cố xuất hiện Khi không có sự cố các Server hoạt động bình thờng

Trang 8

(nghĩa là vẫn phục vụ các yêu cầu từ Client) Khi có sự cố trên một Server nào

đó, các ứng dụng Client tự chuyển hớng sang các Server còn lại

Với cách thứ hai thì các phần mềm phục hồi đợc thiết kế sao cho trạng tháidữ liệu hiện thời (trạng thái trớc khi xảy ra sự cố) có thể đợc khôi phục khi lỗi

bị ảnh hởng Ngời sử dụng có thể chuyển đến một trạm khác nếu máy họ đang

sử dụng bị hỏng, một tiến trình Server có thể đợc khởi động lại trên một máykhác

6 Tính trong suốt.

Tính trong suốt của hệ phân tán đợc hiểu nh là sự che khuất đi các thànhphần riêng biệt của hệ đối với ngời sử dụng và những ngời lập trình ứng dụng.Ngời sử dụng có quyền truy cập đến dữ liệu nằm tại bất cứ vị trí nào Các thaotác để lấy hoặc cập nhật dữ liệu tại một điểm dữ liệu ở xa đợc tự động thựchiện bởi hệ thống tại điểm đa ra yêu cầu Ngời sử dụng không cần biết đến sựphân tán của tất cả dữ liệu trên mạng dờng nh nằm ở máy tính cục bộ của ngời

sử dụng

III Các lí do sử dụng CSDL phân tán.

Tuy việc quản trị một hệ thống CSDL phân tán gặp nhiều khó khăn hơn sovới hệ CSDL tập trung nhng xu hớng xây dựng các hệ CSDL phân tán ngàycàng phát triển và có nhiều ứng dụng trong thực tế vì các nguyên nhân sau:

1 Xuất phát từ chính yêu cầu thực tế về tổ chức và kinh tế.

Trên thực tế nhiều tổ chức là không tập trung, dữ liệu ngày càng lớn và

phục vụ cho đa ngời dùng nằm phân tán vì vậy CSDL phân tán là con đờngthích hợp với cấu trúc tự nhiên của các tổ chức đó Đây là một trong các yếu

tố quan trọng thúc đẩy việc phát triển CSDL phân tán

Một ví dụ minh hoạ cho vấn đề này là hệ thống bán vé máy bay thốngnhất trên toàn thế giới Mỗi hãng hàng không có một hệ CSDL riêng, có sựquản lý riêng và không thể có lý do nào để CSDL này tập trung ở một chỗ đ-

ợc Tuy vậy các hãng hàng không lại có quan hệ với nhau trong việc bán véhành khách cho những tuyến đờng thuộc phạm vi quản lý của nhiều hãng Dovậy hệ thống dữ liệu về chuyến bay của các hãng hàng không chính là một hệCSDL phân tán đợc quản lý thống nhất tại trung tâm điều khiển bay đặt tạimột địa điểm nào đó

Trang 9

2 Sự liên kết các CSDL đang tồn tại

CSDL phân tán là giải pháp tự nhiên khi có các CSDL đang tồn tại và sựcần thiết thực hiện xây dựng một ứng dụng toàn cục Trong trờng hợp nàyCSDL phân tán đợc tạo từ dới lên (bottom-up) từ các CSDL đã tồn tại trớc đó.Tiến trình này có thể đòi hỏi cấu trúc lại cục bộ ở một mức độ nhất định Dùsao, những sửa đổi này là nhỏ hơn rất nhiều so với việc tạo lập một CSDL tậptrung hoàn toàn mới

3 Sự phát triển mở rộng

Các tổ chức có thể mở rộng bằng cách thêm các đơn vị mới, vừa có tính tựtrị vừa có quan hệ tơng đối với các tổ chức khác Khi đó CSDL phân tán hỗ trợmột sự mở rộng uyển chuyển với một mức độ ảnh hởng tối thiểu tới các đơn vị

4 Làm giảm tổng chi phí tìm kiếm

Việc phân tán dữ liệu cho phép các nhóm làm việc cục bộ có thể kiểm soáttoàn bộ dữ liệu của họ Tuy vậy tại cùng thời điểm, ngời sử dụng có thể truycập đến dữ liệu ở xa nếu cần thiết Tại các vị trí cục bộ, thiết bị phần cứng cóthể đợc chọn sao cho phù hợp với công việc xử lý dữ liệu cục bộ tại điểm đó

5 Trả lời truy vấn nhanh

Dựa trên cách thức dữ liệu đợc phân tán, hầu hết các yêu cầu truy vấn dữliệu từ ngời dùng tại bất kỳ vị trí cục bộ nào đều đợc thoả mãn bởi dữ liệungay tại thời điểm đó Điều này làm tăng đáng kể tiến trình xử lý các yêu cầutruy vấn dữ liệu của ngời dùng Hệ thống CSDL phân tán còn cho phép cácbảng truy vấn phức tạp có thể chia thành nhiều bảng nhỏ để có thể thực hiệntiến trình xử lý song song cùng lúc trên nhiều vị trí cục bộ khác nhau Kỹthuật này cũng nâng cao tốc độ xử lý dữ liệu trên hệ thống

6 Độ tin cậy và khả năng sử dụng đợc nâng cao

Khi hệ thống CSDL tập trung bị hỏng, toàn bộ CSDL trở nên vô dụng vớitất cả ngời sử dụng Còn đối với hệ thống CSDL phân tán, nếu có một thànhphần nào đó của hệ thống bị hỏng, hệ thống vẫn có thể duy trì hoạt động tuynhiên cũng không thể hiệu quả nh khi nó còn hoàn hảo Dù sao, việc thu đợcmục đích này không phải không rắc rối và đòi hỏi sử dụng các kỹ thuật vẫncha đợc hiểu biết hoàn chỉnh Khả năng xử lý tự trị của các vị trí khác nhau tự

nó không đảm bảo một tính tin cậy toàn bộ cao của hệ thống, nhng nó đảm

Trang 10

bảo một thuộc tính graceful degration Nói một cách khác, sự cố trong CSDLphân tán có thể thờng xuyên hơn một CSDL tập trung vì có số lợng thành phầnlớn hơn, nhng hậu quả của sự cố đợc hạn chế chỉ tới các ứng dụng sử dụng dữliệu của vị trí có sự cố, đổ vỡ hoàn toàn của hệ thống là điều hiếm xảy ra.

7 Giá thành truyền thông thấp hơn

Với CSDL phân tán, dữ liệu có thể đặt gần nơi nó đợc sử dụng nhiều nhất

Đặc điểm này đã làm giảm chi phí chuyền tải dữ liệu rất lớn so với hệ CSDLtập trung

IV Hạn chế của CSDL phân tán.

Hệ thống CSDL phân tán bên cạnh những u điểm nh trên cũng có nhữngmặt hạn chế nh sau:

- Giá thành và sự phức tạp của phần mềm: Các phần mềm sử dụng trong

môi trờng CSDL phân tán rất phức tạp, đặc biệt là phần mềm sử dụng cho việcquản trị môi trờng CSDL phân tán

- Khó khăn trong tiến trình kết nối các vị trí dữ liệu cục bộ: Các vị trí cục

bộ phải trao đổi thông điệp với nhau và thực hiện thêm các tính toán phức tạp

để đảm bảo sự kết nối đúng đắn giữa các vị trí đó

- Sự toàn vẹn dữ liệu: Một sản phẩm mang nhiều tính phức tạp sẽ làm gia

tăng khả năng xáo trộn trong việc bảo đảm tính toàn vẹn dữ liệu

- Tốc độ truy cập sẽ trở nên rất chậm: Nếu dữ liệu không đợc phân tán

theo đúng yêu cầu sử dụng hoặc các bảng truy vấn đợc thiết lập không đúng

đắn thì việc tìm kiếm và xử lý dữ liệu sẽ rất chậm

Trang 11

phần II Các công nghệ sử dụng trong

hệ Cơ sở dữ liệu phân tán

I Kiến trúc cơ bản của CSDL phân tán.

Tuy không là kiến trúc tờng minh cho tất cả các CSDL phân tán, nhng

kiến trúc dới đây thể hiện cách thức tổ chức chung của một CSDL phân tán:

Sơ đồ tổng thể Sơ đồ phân đoạn Sơ đồ định vị

Sơ đồ ánh xạ địa ph ơng 2 Sơ đồ ánh xạ địa ph ơng 1

CSDL địa ph ơng tại vị trí 2

Hình 1.II: Kiến trúc Hệ CSDL phân tán

1 Sơ đồ tổng thể

Định nghĩa tất cả dữ liệu sẽ đợc lu trữ trong CSDL phân tán Trong mô

hình quan hệ, sơ đồ tổng thể bao gồm định nghĩa của tập các quan hệ tổng thể

2 Sơ đồ phân đoạn.

Mỗi quan hệ tổng thể có thể chia thành một vài phần tơng đối độc lập với

nhau đợc gọi là fragments (đoạn) Có nhiều cách khác nhau để thực hiện việc

phân chia này: Phân đoạn ngang, phân đoạn dọc, phân đoạn hỗn hợp sẽ đợc

trình bày trong các phần sau

3 Sơ đồ định vị:

Fragments (các đoạn) là các phần logic của quan hệ tổng thể đợc định vị

vật lý tại một hoặc nhiều vị trí trên mạng Sơ đồ định vị định nghĩa đoạn định

vị tại từng vị trí Lu ý rằng kiểu ánh xạ đợc định nghĩa trong sơ đồ định vị

quyết định CSDL phân tán là d thừa hay không

Trang 12

- Sự phân bố dữ liệu của DBMS.

- Sự phân bố các chơng trình ứng dụng chạy trên nó

Phần sau đây trình bày khái quát cách thức chung để thiết kế một hệ thốngCSDL phân tán

1 Khung làm việc chung cho thiết kế hệ CSDL phân tán.

Từ sơ đồ kiến trúc của Hệ CSDL phân tán, ngời ta đa ra sơ đồ thiết kếchung cho Hệ CSDL phân tán nh sau:

Thiết kế lợc đồ quan niệm: Mô tả toàn bộ dữ liệu sẽ đợc dùng trong ứng

Thiết kế sự phân phối các phần: Các đoạn dữ liệu đợc đa vào các vị trí lu

trữ thích hợp với yêu cầu hoạt động thực tế của hệ thống

Ví dụ: Ta không thể đa dữ liệu về Cán bộ cho phòng quản lý Sinh viên vàngợc lại

Thiết kế các l ợc đồ quan niệmThiết kế CSDL vật líThiết kế phân đoạnThiết kế sự phân phối các thành phầnHình 2.II: Sơ đồ thiết kế chung cho CSDL phân tán

Trang 13

Sơ đồ thiết kế CSDL phân tán theo mô hình TOP_DOWN (Hình 3.II):

Các định nghĩa: Định nghĩa môi trờng hệ thống, dữ liệu và các tiến trình

cho tất cả những khả năng về dữ liệu của ngời sử dụng

Tài liệu về những điều kiện cần thiết nằm trong hai tham số: Thiết kếView và Thiết kế mức quan niệm

Thiết kế View: Hoạt động phân phối với sự định nghĩa những cái chung

cho ngời sử dụng

Thiết kế mức quan niệm: Là một tiến trình kiểm tra và xác định rõ hai

Trang 14

User Input

Các

định nghĩa

System Requirements (Objectives)

Thiết kế mức quan niệm

Thiết kế view

L ợc đồ tổng thể mức quan niệm

Truy nhập thông tin

External Schema Definitions

Thiết kế phân tán

L ợc đồ logic mức quan niệm

Thiết kế vật lý

L ợc đồ vật lý

Bộ kiểm tra Trao đổiTrao đổi

View Integration

User input

Hình 3.II: Sơ đồ thiết kế CSDL phân tán theo mô hình TOP-DOWN

Thiết kế phân tán: Thiết kế phân tán bao gồm hai phần phân đoạn và định

vị CSDL

Lợc đồ mức quan niệm: Tạo ra các lợc đồ CSDL mức quan niệm

Thiết kế vật lý: Thực hiện ánh xạ các lợc đồ CSDL mức quan niệm ra các

đơn vị lu trữ vật lí có giá trị tại các vị trí tơng ứng

Bộ kiểm tra: Kiểm tra các giai đoạn của quá trình thiết kế CSDL Nếu một

giai đoạn bị sai sẽ tiến hành thiết kế lại

Phơng pháp TOP-DOWN là có hiệu quả khi một hệ thống CSDL đợc thiết

kế từ đầu Tuy nhiên trong thực tế có một số hệ CSDL đã tồn tại thì nhiệm vụcủa ngời thiết kế là liên kết chúng lại thành một thể thống nhât trong CSDLmới, khi đó ngời thiết kế thờng sử dụng phơng pháp BOTTOM_UP

B Phơng pháp BOTTOM-UP.

Trang 15

BOTTOM-UP: Là phơng pháp ngợc lại với phơng pháp TOP_DOWN.Trong thiết kế CSDL phân tán BOTTOM-UP sẽ bắt đầu thiết kế những lợc đồ

ở mức quan niệm sao cho chúng độc lập với nhau Sau đó chúng đợc kết hợplại trong một sơ đồ tổng thể ( Global Conceptual schema )

3 Thiết kế CSDL phân đoạn.

Thiết kế phân đoạn là một trong những đặc trng cơ bản trong thiết kếCSDL phân tán Mục đích của thiết kế phân đoạn là phân chia CSDL tổng thểthành các phần không giao nhau, mỗi phần đó đợc gọi là một đoạn

a Các điều kiện cho thiết kế phân đoạn.

Phơng pháp thiết kế phân đoạn đúng đắn phải thoả mãn ba điều kiện ràngbuộc sau:

- Tính đầy đủ: Toàn bộ dữ liệu thuộc quan hệ tổng thể phải thuộc các đoạnquan hệ và ngợc lại

- Tính tháo rời đợc: Các đoạn phải tối thiểu hoá sự giao nhau

- Xây dựng lại: CSDL của quan hệ tổng thể có thể xây dựng lại từ các

đoạn

b Các phơng pháp phân đoạn.

Có hai phơng pháp chính là: Phân đoạn ngang và phân đoạn dọc Phân

đoạn hỗn hợp là phơng pháp kết hợp của hai phơng pháp trên

+ Phân đoạn ngang:

Phân đoạn ngang cơ sở: Phân đoạn ngang cơ sở tập trung ở các hàng của

bảng Quan hệ tổng thể sẽ đợc chia thành các quan hệ con có cùng tập thuộctính nhng số lợng các hàng là nhỏ hơn

Chú ý là mỗi hàng của quan hệ thuộc một và chỉ một đoạn

Ví dụ: Cho quan hệ KHACH_HANG có cấu trúc nh sau:

KHACH_HANG:

J1 Jonh 21 Ly Nam De SaiGon

J2 Mary 16 Tran Phu ChoLon

J3 Bill 106 Ton Duc Thang SaiGon

J4 Clark 12 Ba Trieu ChoLon

Thực hiện phân đoạn ngang cơ sở thành hai quan hệ KHACH_HANG1 vàKHACH_HANG2:

KHACH_HANG1:

Trang 16

J3 Bill 106 Ton Duc Thang SaiGon

KHACH_HANG2:

Nh vậy thực chất của quá trình phân đoạn ngang là thực hiện câu lệnhSELECT với các điều kiện cụ thể Trong ví dụ trên có hai câu lệnh SELECT đ-

ợc thực hiện là:

KHACH_HANG1:

Create table KHACH_HANG1 as

Select MAKH, TENKH, DIACHI, CHINHANH from KHACH_HANG

where CHINHANH = 'SAIGON";

KHACH_HANG2:

Create table KHACH_HANG2 as

Select MAKH, TENKH, DIACHI, CHINHANH from KHACH_HANG

where CHINHANH = 'CHOLON";

Phân đoạn ngang suy diễn: Bắt nguồn từ kết quả của quá trình phân

đoạn ngang cơ sở, phân đoạn ngang suy diễn đợc sử dụng để kết nối các đoạn,tạo ra CSDL thích hợp cho các ứng dụng Quá trình kết nối yêu cầu phải cóthuộc tính kết nối

KH-DT1:

J3 Bill 106 Ton Duc Thang SaiGon 8.777.253KH-DT2:

Trang 17

J2 Mary 16 Tran Phu ChoLon 9.564.734

Nh vậy thực chất của quá trình phân đoạn ngang suy diễn là thực hiệnphép nửa kết nối từ kết quả của quá trình phân đoạn ngang cơ sở cùng quan hệ

mà ta cần kết nối Trong ví dụ trên quan hệ KH_DT1 và KH_DT2 là kết quảcủa hai phép thực hiện sau:

KH-DT1:

Create table KH-DT1 as

select KHACH-HANG1.MAKH, TENKH, DIACHI, CHINHANH,

DIENTHOAI from KHACH_HANG1,DIENTHOAI where KHACH_HANG1.MAKH = DIENTHOAI.MAKH;

KH-DT2:

Create table KH-DT2 as

select KHACH-HANG2.MAKH, TENKH, DIACHI, CHINHANH,

DIENTHOAI from KHACH_HANG2,DIENTHOAI where KHACH_HANG2.MAKH = DIENTHOAI.MAKH;

+ Phân đoạn dọc: Phân đoạn tập chung ở các thuộc tính, trong các thuộc

tính của quan hệ chọn ra thuộc tính kết nối Kết quả thu đợc là một tập cácquan hệ con, chúng có thể kết nối lại tạo thành quan hệ tổng thể

Ví dụ: Thực hiện phân đoạn dọc với thuộc tính liên kết là MAKH từ quan

hệ KH-DT2, ta thu đợc hai quan hệ QH1 và QH2 nh sau:

QH1:

J4 Clark 12 Ba Trieu QH2:

Quá trình phân đoạn dọc thực chất là thực hiện phép chiếu (Project) cácthuộc tính của quan hệ tổng thể thành các quan hệ con Trong ví dụ trên có haicâu lệnh đợc thực hiện là:

QH1: Create table QH1

as select MAKH, TENKH, DIACHI from KH-DT2;

QH2: Create table QH2

Trang 18

as select MAKH, CHINHANH,DIENTHOAI from KH-DT2;

+ Phân đoạn hỗn hợp:

Phân đoạn hỗn hợp là sự kết hợp giữa phân đoạn ngang và phân đoạn dọc

Có hai phơng pháp phân đoạn hỗn hợp là:

1 Thực hiện phân đoạn ngang trớc sau đó phân đoạn dọc

2 Thực hiện phân đoạn dọc trớc sau đó phân đoạn ngang

Quá trình đợc thực hiện tuần tự, kết quả thu đợc từ phép phân đoạn cuốicùng

4 Kết luận.

Các vấn đề đợc trình bày trên đây chỉ là những khái niệm chung nhất đểthiết kế một Hệ CSDL phân tán, tuy nhiên việc thiết kế một Hệ CSDL phântán trên thực tế còn phải phụ thuộc rất nhiều vào các điều kiện khách quankhác của nơi cần các ứng dụng phân tán nh: Thực trạng mô hình mạng, khảnăng đầu t cho dự án , đó là những điều kiện góp phần rất lớn nâng cao hiệuquả của các ứng dụng phân tán Vấn đề này sẽ đợc trình bày trong phần về cácmô hình phân tán CSDL

III GIới thiệu về giao tác.

1 Định nghĩa.

Giao tác là một dãy các hành động đợc thực hiện bởi một chơng trình ứngdụng hay bởi một ngời sử dụng, mà hoặc phải đợc thực hiện hoàn toàn hoặc làkhông đợc thực hiện một hành động nào

Khái niệm giao tác đợc sử dụng trong lĩnh vực CSDL nh đơn vị cơ bản củatính toán nhất quán và đáng tin cậy

Trong quá trình thực hiện giao tác CSDL có thể tạm thời không nhất quánnhng CSDL phải nhất quán khi giao tác kết thúc Tính tin cậy dựa vào hai khảnăng sau:

- Khả năng phục hồi: Hệ thống phục hồi nhanh khi có nhiều kiểu lỗi xảy

ra Khi các lỗi xảy ra, hệ thống có thể chịu đựng đợc và tiếp tục cung cấp cácdịch vụ

- Khôi phục: Hệ thống đạt đợc trạng thái nhất quán sẽ trở về trạng thái

nhất quán trớc đó hoặc tiếp tới trạng thái nhất quán mới sau khi xảy ra lỗi.Nhất quán giao tác liên quan tới sự thực hiện các truy nhập trùng nhau

Việc quản lý giao tác tiếp xúc với các vấn đề : Giữ cho CSDL trong trạngthái nhất quán khi xảy ra các truy nhập trùng nhau và các lỗi

Trang 19

2 Các điều kiện kết thúc của giao tác.

Giao tác kết thúc khi toàn bộ công việc của nó thành công, hay nói mộtcách khác là giao tác chuyển giao (Commit), ngợc lại nếu một giao tác dừnglại trong khi cha hoàn thành các công việc của nó chúng ta nói giao tác bị loại

bỏ (Abort)

Giao tác bị loại bỏ vì một số nguyên nhân sau:

- Một điều kiện không thoả mãn không cho giao tác hoàn thành các côngviệc của nó

- DBMS loại bỏ giao tác, ví dụ khoá chết hoặc các điều kiện khác

Khi một giao tác bị loại bỏ, quá trình thực hiện của nó bị dừng lại và toàn

bộ công việc đã làm đợc loại bỏ để đa CSDL về trạng thái trớc khi thực hiệngiao tác, điều này cũng đợc hiểu nh Rollback

Cũng có trờng hợp ngời sử dụng do một số thông tin đầu vào bị sai, một số

điều kiện không đợc thoả mãn và có thể do yêu cầu của hệ thống nh quá tải,tắc nghẽn

3 Các thuộc tính của giao tác.

Có bốn mức nhất quán theo trình tự từ cao xuống thấp nh sau:

Mức 3: Giao tác T nhìn mức nhất quán 3 nếu:

- T không ghi đè dữ liệu nháp của giao tác khác

- T không chuyển giao bất cứ một việc ghi nào đến khi nó hoàn thànhhoàn toàn việc ghi của nó

- T không đọc dữ liệu nháp từ các giao tác khác

- Các giao tác khác không nháp vào bất cứ dữ liệu nào đọc bởi T trớc khi Thoàn thành

Mức 2: Giao tác T nhìn mức nhất quán 2 nếu:

- T không ghi đè lên dữ liệu nháp của giao tác khác

- T không chuyển giao bất kỳ việc ghi nào trớc EOT

- T không đọc dữ liệu nháp từ giao tác khác

Trang 20

Mức 1: Giao tác T nhìn mức nhất quán 1 nếu:

- T không ghi đè lên dữ liệu nháp của giao tác khác

- T không chuyển giao bất kỳ việc ghi nào trớc EOT

Mức 0: Giao tác T nhìn mức nhất quán 0 nếu:

- T không ghi đè lên dữ liệu nháp của giao tác khác

Tính trình tự:

Nếu nhiều giao tác đợc thực hiện đồng thời thì kết quả của mỗi giao tác

đó đợc thực hiện một cách tuần tự Các hành động đảm bảo tính trình tự củacác giao tác đợc gọi là điều khiển tơng tranh

Giao tác đợc phân loại theo một số tiêu chuẩn sau:

Phân loại theo vùng ứng dụng:

Giao tác thông thờng: Cập nhật dữ liệu trên một vị trí

Giao tác phân tán: Thao tác trên dữ liệu phân tán

Phân loại theo khoảng thời gian làm việc:

Giao tác trực tuyến: Thời gian trả lời rất ngắn

Giao tác gói: Thời gian trả lời dài

Giao tác đàm thoại: Thực hiện bởi tác động qua lại với ngời sử dụng

4 Kiến trúc của giao tác.

+ Bộ quản lý giao tác: Thực hiện các thao tác CSDL thay cho ứng dụng.+ Bộ lập lịch (SC): Thực hiện một thuật toán điều khiển tơng tranh để

Trang 21

Bộ quản lý giao tác (TM)

Bộ lập lịch (SC)

Begin_transaction, Read, Write, Commit, Abort Các kết quả

Các TM khác

Các SC khác Các bộ xử lý dữ

liệu khác Các yêu cầu

lập lịch/huỷ lịch

Bộ giám sát thực hiện phân tán

Tới các bộ xử lý dữ liệu Hình 4.II: Mô hình chi tiết bộ giám sát thực hiện phân tán

IV Điều khiển tơng tranh phân tán.

Điều khiển tơng tranh liên quan tới tính độc lập và nhất quán của giao tácvới mục tiêu chính là đảm bảo tính nhất quán của CSDL

Các thuật toán điều khiển tơng tranh chia làm hai loại: Pessimistic vàOptimistic

1 Khái niệm xung đột và lịch đầy đủ.

Quy ớc: Oij(x) là thao tác Oj của giao tác Ti trên mục dữ liệu x Oj={Read,Write} Okl(x) cũng đợc quy ớc tơng tự

Xung đột: Oij(x) và Okl(x) đợc gọi là xung đột nếu tối thiểu một trong haithao tác là viết (W),và không nhất thiết i phải khác k

Lịch đầy đủ: Định nghĩa thứ tự thực hiện của các thao tác

2 Các cơ chế điều khiển tơng tranh.

a Cơ chế Optimistic:

áp dụng cơ chế này khi số giao tác xung đột không nhiều lắm

Cơ chế Optimistic qua định: Trong khi một giao tác đang thực hiện, nếuxuất hiện xung đột cơ chế này sẽ đợi cho giao tác kết thúc sau đó mới xử lýcác xung đột (Trễ việc đồng bộ các giao tác đến khi kết thúc chúng)

b Cơ chế Pessimistic:

Cơ chế này đợc áp dụng khi môi trờng có nhiều giao tác xung đột

Cơ chế Pessimistic thực hiện xử lý các xung đột ngay sau khi chúng đợcphát hiện ( đồng bộ việc thực hiện các giao tác tơng tranh sớm trong chu kỳthực hiện chúng )

Trang 22

c Cơ chế dựa vào khoá:

Việc đồng bộ các giao tác đạt đợc bằng cách dùng khoá trên từng phầncủa CSDL Kích thớc của các phần CSDL đợc khoá này là một vấn đề quantrọng cần phải đợc tính toán hợp lý Tuy nhiên, chúng ta sẽ bỏ qua điều này vàcoi phần đợc chọn là một đơn vị khoá

Có các kiểu khoá nh sau:

+ Khoá tập trung: Trên mạng có một vị trí đợc thiết kế để lu giữ các bảng

khoá cho toàn bộ CSDL Vị trí đó có nhiệm vụ nhiệm vụ phân phối khoá chocác giao tác và chỉ các giao tác có khoá mới đợc truy nhập vào CSDL

+ Khoá bản sao chính: Trong môi trờng phân tán có nhiều bản sao của

cùng một dữ liệu thì một bản sao (đóng vai trò là bản sao chính ) sẽ l u giữkhoá chung cho các bản sao Có nghĩa là muốn truy nhập vào bất kỳ bản saonào của đơn vị khoá này phải có khoá của bản sao chính

+ Khoá không tập trung: Nhiệm vụ khoá đợc chia sẻ cho toàn bộ các vị trí

trong mạng Trong trờng hợp này, việc thực hiện một giao tác đợc phối hợpvới các bộ lập lịch tại ít nhất là hai vị trí Mỗi bộ lập lịch địa phơng có trách

nhiệm với các đơn vị khoá cục bộ tại vị trí đó

+ Thứ tự nhãn thời gian (TO): Có nhiệm vụ tổ chức thứ tự thực hiện các

giao tác, thứ tự này đợc sử dụng cho cả giao tác và các mục dữ liệu đợc lu trữtrong CSDL

Hình 5.II mô tả sự phân lớp các thuật toán điều khiển tơng tranh:

Các thuật toán điềukhiển t ơng tranh

Lai (Hybrid)

Khoá

Thứ tự nhãnthời gian

Hình 5.II: Sự phân lớp các điều thuật toán khiển t ơng tranh

3 Quản lý khóa chết.

Hạn chế của các cơ chế điều khiển tơng tranh dựa vào khoá là trong khithực hiện các giao tác thờng gặp phải khoá chết

Trang 23

Các thuật toán dựa trên nhãn thời gian thì ngợc lại: Các giao tác không đợikhi chúng giữ quyền truy nhập vào các mục dữ liệu, trong quá trình đó nếuxảy ra xung đột bộ lập lịch đợc khởi động lại bởi bộ quản lý giao tác với mộtnhãn thời gian mới Cho nên cơ chế dựa trên nhãn thời gian không bao giờ dẫn

đến khoá chết Nhng thay vào đó là khả năng phải khởi động lại một giao tácnhiều lần

Định nghĩa: Khoá chết là các khoá đợc nắm giữ bởi một giao tác nhnggiao tác đó không thể truy nhập đợc vào CSDL tơng ứng

a Phòng ngừa khóa chết:

Phơng pháp phòng ngừa không cho phép các khóa chết xảy ra:

Bộ quản lý giao tác kiểm tra một giao tác khi nó đợc khởi tạo lần đầu vàkhông cho phép nó tiếp tục nếu nó có thể dẫn đến khóa chết Để thực hiệnviệc kiểm tra này, nó yêu cầu các mục dữ liệu sẽ đợc truy nhập bởi một giaotác phải đợc khai báo trớc Bộ quản lý giao tác cho phép một giao tác tiếp tụcnếu toàn bộ mục dữ liệu cần truy nhập sẵn sàng Ngợc lại, giao tác không đợcphép tiếp tục

Các hệ thống nh vậy không phù hợp cho các môi trờng CSDL Vấn đề cơbản là thờng rất khó để biết chính xác các mục dữ liệu nào đợc truy nhập bởimột giao tác Truy nhập vào các mục dữ liệu nhất định có thể phụ thuộc vàocác điều kiện mà các điều kiện này có thể không đợc giải quyết đến thời gianchạy

b Tránh khóa chết:

Trang 24

Cách đơn giản nhất để tránh khóa chết là sắp xếp tài nguyên và nhấn mạnhmỗi tiến trình yêu cầu truy nhập vào các tài nguyên theo thứ tự Giải pháp này,

đợc đề xuất một thời gian dài cho các hệ điều hành Các thứ tự có thể là toàncục hoặc cục bộ Trong trờng hợp là cục bộ cần thiết sắp xếp vị trí và yêu cầugiao tác truy nhập vào mục dữ liệu tại nhiều vị trí yêu cầu khóa của chúngbằng việc duyệt các vị trí theo thứ tự định nghĩa trớc

Một cách chọn lựa khác, là sử dụng nhãn thời gian của các giao tác để

định mức u tiên giao tác và giải quyết khóa chết bởi việc loại bỏ giao tác vớimức u tiên cao hơn (hoặc thấp hơn)

3 Kết luận.

Điều khiển tơng tranh phân tán cung cấp tính độc lập và nhất quán củagiao tác, đồng thời đảm bảo tính nhất quán của CSDL phân tán Còn một sốvấn đề cần quan tâm là:

1 Các thuật toán điều khiển tơng tranh

2 Thực hiện ớc lợng các thuật toán điều khiển tơng tranh

3 Các mô hình giao tác khác

4 Các phơng pháp điều khiển tơng tranh khác: Có một lớp các thuật toán

điều khiển tơng tranh khác đợc gọi là “các phơng pháp kiểm tra đồ thị tuần tự

”, xây dựng một đồ thị phụ thuộc và kiểm tra chu trình kín Đồ thị phụ thuộccủa một lịch S, DG(S), là đồ thị chỉ mô tả quan hệ xung đột giữa các giao táctrong S là một nút Một cung (Ti Tj) tồn tại trong DG(S) khi và chỉ khi có mộtthao tác khác trớc đó trong Tj Các bộ lập lịch cập nhật các DG của mình khimột trong các điều kiện sau đợc thi hành: Một giao tác mới bắt đầu trong hệthống, một giao tác đọc hoặc ghi nhận đợc bởi bộ lập lịch, một giao tác kếtthúc hoặc một giao tác bị loại bỏ

5 Mô hình thực hiện giao tác: Thực hiện tập trung và thực hiện phân tán

V Lỗi và chịu lỗi trong hệ phân tán

Trang 25

Thành phần 1 Thành phần 2 Thành phần 3

Hệ thống Môi tr ờng

Kích thích

Trả lời

Hình 6.II: Giản đồ của một hệ thống

Mỗi thành phần của hệ thống tự nó cũng là một hệ thống và gọi là hệthống con Cách đặt các thành phần vào cùng một hệ thống đợc gọi là thiết kế

hệ thống

H hỏng (fault): Trạng thái h hỏng phần cứng hoặc phần mềm, kết quả từcác h hỏng của các thành phần

Lỗi (error): Lỗi chơng trình hoặc cấu trúc dữ liệu

Sự cố (failure): Các thay đổi vật lý trong phần cứng

Hình 7.II: Dây chuyền dẫn đến lỗi hệ thống

Trong hình 8.II dới đây mô tả các loại lỗi thờng gặp:

b Tin cậy và sẵn sàng:

Tính tin cậy:

Hệ thống không trải qua bất kỳ một lỗi nào trong một khoảng thời gian

Nó đợc sử dụng đặc biệt để vạch ra các hệ thống không thể sửa chữa đợc (nhtrong các máy tính space_based), hoặc nếu thao tác của hệ thống là nguy kịchkhông có thời gian chết cho sửa chữa

Tính sẵn sàng của hệ thốngR(t):

R(t) = Pr{0 các lỗi trong thời gian [0, t] không các lỗi tại t=0}

Minh hoạ công thức ở trên cho phần cứng, phần thông thờng gánh các lỗisau sự phân tán tồi tệ Trong trờng hợp này

R(t) = Pr{0 các lỗi trong thời gian [0, t]}

Pr{k các lỗi trong thời gian [0, t] = e-m(t)[m(t)]k/k!}

Với m(t) = t

0 z(x)dx ở đây z(t) đợc hiểu nh hàm may rủi

c Thời gian trung bình giữa các lỗi, thời gian trung bình để sửa chữa:

Trang 26

MTBF: Thời gian trung bình giữa hai lỗi trong hệ thống.

MTTR: Thời gian chờ đợi để sửa chữa lỗi hệ thống

MTTF: Thời gian chờ đợi lỗi đầu tiên của hệ thống kể từ khi hệ thốngkhởi tạo thành công tại thời gian 0

- Dữ liệu trong bộ nhớ mất

- Lỗi toàn bộ các vị trí trong hệ thống phân tán

- Lỗi một phần các vị trí trong hệ thống phân tán

c Các lỗi môi trờng:

Các lỗi môi trờng qui về các lỗi của các thiết bị lu trữ: Lỗi hệ điều hành,lỗi phần cứng, lỗi các bộ điều khiển dẫn đến một phần hoặc toàn bộ CSDL cóthể bị phá hủy hoặc không truy nhập đợc Khắc phục bằng sao bản và cácchức năng khôi phục phân tán

d Các lỗi truyền thông:

Ba kiểu lỗi mô tả ở trên chung cho cả hai CSDL tập trung và CSDL phântán Các lỗi truyền thông chỉ cho duy nhất trong trờng hợp phân tán Kiểuchung nhất là lỗi trong thông báo, các thông báo có thứ tự không thích hợp,mất thông báo, và lỗi đờng truyền Hai lỗi đầu thuộc về mạng máy tính(communication subnet bao gồm physical, data link, và network layers củakiến trúc ISO/OSI) chúng ta không quan tâm

Các lỗi đờng truyền là do sự phân đoạn mạng và việc không nhất quántrong CSDL và có thể giải quyết bằng cách đặt timeout

3 Các cách chịu lỗi trong Hệ phân tán.

Có hai cách cơ bản để xây dựng hệ thống tin cậy là chịu lỗi và cấm lỗi Chịu lỗi đa ra cách thiết kế hệ thống chấp nhận các lỗi sẽ xảy ra: Xâydựng hệ thống sao cho các lỗi có thể đợc phát hiện và tháo bỏ hoặc đền bù tr-

ớc khi chúng có thể dẫn đến kết quả là một hệ thống lỗi

Các kỹ thuật cấm lỗi trợ giúp đảm bảo rằng hệ thống hoàn thành sẽ khôngchứa bất kỳ một lỗi nào

Cấm lỗi có hai hớng:

Trang 27

+ Đầu tiên là tránh lỗi: Cách đa ra các kỹ thuật sử dụng để đảm bảo chắcchắn rằng các lỗi là không mở đầu trong hệ thống Các kỹ thuật này bao gồmcác phơng pháp thiết kế chi tiết, và điều khiển chất lợng

+ Hớng thứ hai của cấm lỗi là tháo bỏ lỗi: Đa ra các kỹ thuật đợc dùng đểphát hiện bất kỳ lỗi nào có thể còn sót lại trong hệ thống Chú ý rằng các kỹthuật tháo bỏ lỗi áp dụng trong việc thực hiện hệ thống trớc khi đa ra quyền sửdụng của hệ thống

Các phạm trù cấm lỗi và tránh lỗi đợc sử dụng xen kẽ nhau Một tên chungkhác cho cách này là không chấp nhận lỗi Các kỹ thuật này tập trung vào việcthiết kế hệ thống sử dụng các thành phần tin cậy cao và phơng pháp tinh vicủa kỹ thuật gói bởi việc kiểm tra bao quát Nh vậy, hạn chế đợc chờ đợi,giảm sự xuất hiện các lỗi hệ thống nhỏ nhất có thể Tuy nhiên có một số môitrờng bảo quản và sửa chữa thủ công là không thể, hoặc thời gian cần để sửachữa là không chấp nhận đợc trong các môi trờng này Thiết kế hệ thống chịulỗi là cách chọn lựa phù hợp

Cách thứ ba: Cấu trúc các hệ thống tin cậy là phát hiện lỗi Đợc dựa theobất kỳ kỹ thuật chịu lỗi nào Cách báo khi một lỗi xuất hiện nhng không cungcấp bất kỳ biện pháp chịu lỗi nào Vì vậy, nó có thể đợc dành riêng cho việcphát hiện lỗi riêng lẻ

Điều quan trọng cần chú ý là các lỗi hệ thống có thể tiềm tàng Một lỗitiềm tàng là một lỗi đợc phát hiện sau thời gian nó xảy ra Thời kỳ này đợc gọi

là ẩn lỗi, và thời gian ẩn lỗi trong hình trên một số các hệ thống chính đợc gọi

là thời gian trung bình để phát hiện lỗi (MTTD) Hình 9.II vẽ quan hệ củanhiều mức tin cậy với các xuất hiện thực sự các lỗi

Trang 28

Phần III cơ sở dữ liệu phân tán trên oraclE

I Các khái niệm cơ bản.

1 Snapshot.

Định nghĩa: Snapshot là một yêu cầu phân tán tham chiếu tới một haynhiều bảng chính, các View, hoặc các Snapshot khác Mỗi sao bản của bảngchính đợc gọi là một Snapshot vì thông tin có đợc tại bất kỳ thời điểm nào cóthể định kỳ đợc "làm tơi ", nghĩa là làm cho các Snapshot có trạng thái tơngứng với trạng thái mới nhất của bảng chính

- Read-only Snapshot: Là một bản sao đầy đủ của một bảng hay một tậpcác bảng Nó là sự phản ánh đầy đủ tình trạng mới nhất của bảng chính

- Snapshot Updatable: Có thể sửa đổi bản sao của bảng chủ và đợc

định nghĩa bao hàm bản sao đầy đủ của bảng chủ hoặc tập các hàng trongbảng chủ

Nh vậy sự khác nhau cơ bản giữa hai loại Snapshot trên là: SnapshotUpdatable cho các yêu cầu và cập nhật, các Read-only Snapshot chỉ cho cácyêu cầu

2 Sao bản cơ sở.

Sao bản cơ sở là sao bản sử dụng các Read-only Snapshot và tuân theomột dạng của vị trí sao bản đầu tiên Dữ liệu ở các Read-only Snapshot sẽ đợclàm tơi định kỳ, quá trình này đợc so sánh tơng tự nh việc cập nhật các thay

đổi về dữ liệu từ bảng CSDL chính của các Read-only Snapshot

3 Các nhóm sao bản ( Replication Groups).

Các nhóm sao bản: Kết hợp một đặc tính ứng dụng chung và đợc sao bảntới một tập các vị trí

Oracle cho phép sao bản:

* Các bảng

* Các đối tợng chứa các bảng: Views, Trigges, Packages, Indexes,Sequences, Synonyms

4 Các vị trí sao bản (Replication Sites).

- Các vị trí chủ ( Master sites): Phải chứa một bản sao đầy đủ (A full copy)của tất cả các đối tợng trong sao bản nhóm Mỗi vị trí chủ sẽ chuyển các thay

đổi của nó tới vị trí chủ khác cho các nhóm sao bản

- Các vị trí Snapshot (Snapshot sites): Là vị trí có thể chứa một hay một tậpcác đối tợng trong nhóm sao bản

Trang 29

5 Danh mục sao bản.

Sao bản sử dụng một danh mục sao bản thông tin, giống nh các đối tợng

đ-ợc sao bản, nơi chúng đđ-ợc sao bản và cập nhật nh thế nào cần đđ-ợc truyền tớidanh mục sao bản , từ đó các bảng dữ liệu có thể quay trở lại và tìm đợc

6 Database link.

Là một đối tợng nằm trong CSDL địa phơng cho phép truy nhập tới các

đối tợng khác trên CSDL ở xa hoặc kết nối với CSDL ở xa trong chế độ only CSDL ở xa có thể là CSDL Oracle hoặc không phải là Oracle

Read-Cú pháp lệnh tạo Database link:

CREATE [PUBLIC] DATABASE LINK dblink

[CONNECT TO user IDENTIFIED BY password]

[USING 'connect_string'];

Public: Các user dùng chung Database link

Dblink: Tên Database link

User: Tên user mà ta muốn kết nối tới

Password: Mật khẩu của user mà ta muốn kết nối tới

Connect_string: Chuỗi mô tả địa chỉ IP của host và SID trên Server đó.SID: Định danh của Database

II Các thao tác chính với Read-Only Snapshot.

1 Quy tắc đặt tên cho Snapshot

Các Snapshot đợc lu trữ trong luợc đồ về ngời sử dụng vì vậy tên của cácSnapshot phải là duy nhất Mặc dù tên của Snapshot có thể dài 30 bytes, nhngchỉ đặt tên cho Snapshot lớn nhất là 19 bytes, quá 19 bytes ORACLE sẽ tự

động cắt bỏ và thêm tổ hợp của bốn con số sao cho đảm bảo cho tên Snapshot

là duy nhất

2 Tạo Read-Only Snapshot

Muốn tạo một Snapshot ta sử dụng câu lệnh CREAT SNAPSHOT Tơng tự

nh việc tạo các bảng, các SNAPSHOT tạo ra có thể đợc định rõ sự lu trữ các kí

tự, kích thớc Extent và sự phân phối, Tablespace hoặc Cluster chứa Snapshot,Snapshot sẽ đợc làm tơi và các yêu cầu phân tán nh thế nào

Ví dụ 1: Định nghĩa một Snapshot địa phơng đợc sao từ bảng chính EMP

định vị trên NY

CREAT SNASPHOT emp_sf

PCTFREE 5 PCTUSED 60

Trang 30

AS SELECT * FROM scott emp@sales ny com ;

Tổng quát hoá quá trình Oracle tạo và làm tơi các Snapshot:

Khi có yêu cầu tạo Snapshot, ORACLE tạo một số các đối tợng tại vị trí

ảnh và vị trí chủ nh sau:

Tại vị trí ảnh có các đối tợng (Objects):

+ Một bảng cơ sở có tên là Snap$_tên Snapshot Bảng này chứa dữ liệu vớicấu trúc nh trong câu lệnh yêu cầu tạo Snapshot của ngời sử dụng

+ Bảng index có tên là I-snap_tên Snapshot: Chính là việc index lại Rowidcủa bảng chủ

+ Read_only View của Snapshot: Sử dụng khi có yêu cầu làm tơiSnapshot

Tại vị trí chủ có các đối tợng:

+ MView$_tên_Snapshot: Sử dụng trong quá trình làm tơi Snapshot

+ Một Snapshot log có tên Mlog$_tên bảng chủ: Lu trữ Rowid và cáchàng đợc cập nhật trong bảng chủ ( Rowid và nhật ký các thay đổi ) các thôngtin này cho phép làm tơi nhanh các Snapshot Snapshot log sẽ đợc trình bày rõhơn trong phần sau

+ Trigger có tên là Tlog_tên bảng chủ: Sử dụng trong việc thay đổi Log( chèn Rowid và các thay đổi của các hàng vào trong Snapshot log )

Mỗi khi có sự thay đổi trên bảng chủ (Chèn, sửa, xoá) các trigger đợc kíchhoạt để ghi các thay đổi vào bảng Mlog Khi đến chu kỳ làm tơi Snapshot dựavào bảng Mview ( có nhật kí các thay đổi của bảng chủ) để thay đổi Snapshot

Về nguyên tắc Rowid của bảng chủ và của Snapshot không trùngnhau.Tuy nhiên trong bảng Mlog chỉ lu trữ Rowid của các hàng trong bảngchủ bị thay đổi Vì vậy trong bảng Snapshot Oracle sinh thêm một cột Mrow$chứa Rowid tơng ứng với hàng trên bảng chủ Nh vậy trên bảng chủ cóRowid, trên Snapshot cũng có Rowid của bảng chủ cộng thêm index (i-snap$ )trên cột Rowid của bảng chủ sẽ cho phép nhanh chóng tìm ra hàng cần thay

đổi trong khi làm tơi

Chú ý: Khi tạo một Snapshot phải tuân theo các yêu cầu sau:

Trang 31

- Để tạo Snapshot trong lợc đồ của riêng mình, phải có quyền hệ thốngcho phép thực hiện các câu lệnh CREAT SNAPSHOT, CREAT TABLE, vàCREAT VIEW, cũng nh SELECT trên các bảng chủ.

- Để tạo Snapshot trong lợc đồ của User khác phải có quyền CREAT ANYSNAPSHOT, cũng nh SELECT trên bảng chủ Và chủ nhân của Snapshot phải

có khả năng tạo Snapshot

Ví dụ 2:

Giả sử có câu lệnh tạo Snapshot nh sau:

CREAT SNAPSHOT emp_snap AS

SELECT * FROM emp

WHERE deptn0 = 20 ;

Toàn bộ quá trình đã miêu tả trên đây ORACLE đợc minh hoạ qua hình vẽ1.III:

3 Sửa đổi các Snapshot

Nh đối với các bảng, các Snapshot cũng có thể sửa đổi Có thể đặt lại cácbiến lu trữ bằng câu lệnh ALTER

Ví dụ:

ALTER SNAPSHOT emp PCTFREE 10 ;

Tuy nhiên để sửa đổi các biến lu trữ , Snapshot phải nằm trong lợc đồriêng của ngời dùng hoặc phải có quyền ALTER ANY SNAPSHOT vàALTER ANY TABLE trong hệ thống

Ta không cần sử dụng các ràng buộc để tạo index;

Trang 32

Ví dụ:

Sử dụng câu lệnh: CREATE index

Không sử dụng câu lệnh : CREATE unique index

6 Sử dụng Snapshot.

Các yêu cầu gửi tới Snapshot giống nh các yêu cầu đợc gửi tới table hoặcView

Ví dụ: SELECT * FROM emp ;

Tuy nhiên không có thao tác dữ liệu trong bảng cơ sở của Read-onlySnapshot Ta không thể đa câu lệnh INSERT, UPDATE, DELETE khi sử dụngRead-Only Snapshot, nếu sử dụng sẽ có thông báo lỗi, mặc dù các câu lệnhtrên vẫn đợc đa ra từ bảng cơ sở tới Snapshot, và làm thay đổi các Snapshot.Việc cập nhật chỉ cho phép trên bảng chủ, sau đó các Snapshot sẽ đợc làm tơi.Nếu muốn thay đổi Snapshot phải tạo nó nh một Updatable Snapshot sẽ đợcbàn luận trong phần sau

7 Tạo View và Synonyms dựa trên Snapshot.

View hoặc Synonyms có thể đợc định nghĩa dựa trên Snapshot Dới đây làcâu lệnh tạo một View dựa trên Snapshot EMP:

Ví dụ:

CREAT VIEW sales_dept AS

SELECT ename, empno

FROM emp

WHERE deptno = 10 ;

III Updatable Snapshot.

Oracle tạo Updatable Snapshot các bớc đầu tơng tự nh khi tạo Read-OnlySnapshot và thêm hai thay đổi sau:

- Oracle tạo một bảng đặt tên là USLOG$_tên của Snapshot chứa ROWID

và nhãn tạm thời (timestamp) của các hàng đã cập nhật trong Snapshot Nhãntạm thời column không đợc cập nhật cho đến khi có một log đợc sử dụngtrong quá trình làm tơi Snapshot

- Oracle tạo một Trigger AFTER ROW trên Snapshot, dựa vào bảng chènROWID và nhãn tạm thời của các hàng đợc cập nhật và xoá trong Updatablesnapshot log Trigger đợc đặt tên là USTRG$_tên snapshot

Sự khác nhau chính giữa Read-Only Snapshot và Updatable Snapshot làOracle tạo Read-Only View cho Read-Only Snapshot còn Writable View choUpdatable Snapshot

Ví dụ: Tạo Updatable Snapshot emp

Trang 33

CREATE SNAPSHOT emp FOR UPDATE8

AS SELECT * FROM scott emp@sales ny.com

Một Snapshot log đợc kết hợp với một bảng chủ; Cũng nh vậy một bảngchủ có thể chỉ có một Snapshot log

Nếu nhiều Snapshot log dựa trên cùng một bảng chủ thì chúng đợc sửdụng nh là một Snapshot log

Tiếp sau đây sẽ trình bày cách tạo, sửa đổi, quản lí và xoá các Snapshotlog

2 Tạo các Snapshot log.

Đặt tên Snapshot log: Oracle tự động tạo Snapshot log trong lợc đồ chứabảng chủ nếu ta không chỉ rõ tên của Snapshot log

Tạo một Snapshot log trong CSDL nh các bảng chủ sử dụng câu lệnhCREATE SNAPSHOT LOG ta có thể đặt các tuỳ chọn vùng lu trữ cho các

đoạn dữ liệu của Snapshot log, cỡ của Extent và địa phơng, các Tablespace lutrữ Snapshot log

Đặt tuỳ chọn vùng lu trữ nh sau:

- Đặt PCTFREE từ 0, và PCTUSED từ 100

Đặt các biến lu trữ Extent tuỳ theo sự cập nhật (số các câu lệnh INSERT,UPDATE, DELETE), trên bảng chủ

Ví dụ 1: Tạo Snapshot log của bảng EMP

CREATE SNAPSHOT LOG ON scott.emp

TABLESPACE users

STORAGE (INITIAL 10K PCTINCREASE 50)

PCTFREE 5 ;

Cách thức thực hiện của Oracle khi tạo Snapshot log:

- Oracle tạo một bảng, đặt tên là MLOG$_tên_bảng_chủ, lu trữ ROWID

và các hàng đợc cập nhật trong bảng chủ

Trang 34

- Oracle tạo một Trigger AFTER ROW trên bảng chủ thực hiện việc chènROWID và các thay đổi của các hàng vào trong Snapshot log chủ Trigger đợc

đặt tên là TLOG$_tên_bảng_chủ

Điều kiện để tạo một Snapshot log:

Nếu tạo trong bảng chủ của chính mình ta cần phải có quyền CREATETABLE và CREATE TRIGGER Nếu tạo Snapshot log cho một bảng trong l-

ợc đồ của User khác ta phải có quyền hệ thống là CREATE ANY TABLE vàCREATE ANY TRIGGER

3 Sửa đổi các tham biến của Snapshot log.

Ta có thể thay đổi các tham biến lu trữ của Snapshot log Tuy nhiên chỉ cóngời chủ của bảng chủ, hoặc các User có quyền hệ thống là ALTER ANYTABLE có thể thay đổi

Ví dụ 2:

ALTER SNASPHOT LOG sale-price

PCTFREE 25

PCTUSED 40 ;

4 Xoá các Snapshot log

Có thể xoá một Snapshot log độc lập với bảng chủ hoặc các Snapshot đangtồn tại Một Snapshot log đợc xoá nếu các điều sau đây là đúng: Tất cả cácSnapshot đơn của bảng chủ đã đợc xoá, và các Snapshot đơn của bảng chủ đợclàm tơi hoàn chỉnh, không phải là làm tơi nhanh

Để xoá một Snapshot log địa phơng, sử dụng câu lệnh DROP SNAPSHOTLOG, và chỉ chủ nhân của bảng chủ hoặc các user có quyền hệ thống DROPANY TABLE

Ví dụ: DROP SNAPSHOT LOG emp_log ;

5 Quản lý Snapshot log

Oracle tự động theo dõi các hàng trong Snapshot log đã đợc sử dụng trongsuốt quá trình làm tơi của các Snapshot, và lọc các hàng từ log để cho logkhông tăng một cách vô hạn Vì nhiều Snapshot đơn có thể sử dụng cùng mộtSnapshot log, các hàng sử dụng trong việc làm toi của một Snapshot vẫn cóthể cần đợc làm tơi cho Snapshot khác; Oracle không xoá các hàng trong logtrừ khi tất cả các Snapshot đã sử dụng xong Đặc điểm tự động này có thể dẫntới sự phát triển vô hạn định một Snapshot log nếu Snapshot kết hợp với nókhông bao giờ đợc làm tơi

Ví dụ: Snapshot EMP_B thờng xuyên đợc làm tơi Nhng Oracle không thểlọc các hàng đã sử dụng trong suốt quá trình làm tơi của Snapshot EMP_B vìSnapshot EMP_A cần chúng cho việc làm tơi sắp tới của nó Tình huống nàyxảy ra khi có một số các Snapshot đơn giản dựa trên cùng một bảng chủ và:

Trang 35

- Một Snapsshot không đợc đặt tự động làm tơi bởi Oracle; Khi đóSnapshot phải đợc làm tơi "bằng tay".

- Một Snapshot có khoảng thời gian làm tơi lâu, có hai vấn đề là:

a Mạng bị lỗi ngăn cản quá trình tự động làm tơi của một hay nhiềuSnapshot dựa trên bảng chủ

b Mạng hoặc một vị trí lỗi ngăn cản quá trình xoá Snapshot từ bảng chủcủa nó

V Giới thiệu về các nhóm làm tơi Snapshot.

Trong phần này trình bày các thủ tục đợc cung cấp trongDBMS_REFRESH, các thủ tục này cho phép tạo, sửa đổi, và xoá các nhómlàm tơi, các thông tin về sự tự động làm tơi các Snapshot

1 Tạo nhóm làm tơi Snapshot

Ghi rõ các thành viên của nhóm và khoảng thời gian xác định khi cácthành viên của nhóm cần đợc làm tơi, và gọi thủ tục MAKE củaDBMS_REFRESH

Ví dụ: Tạo nhóm làm tơi ACCTG với hai thành viên ACCT_REC vàACCT_PAY Hai Snapshot thành viên sẽ đợc làm tơi mỗi giờ

2 Sửa đổi nhóm làm tơi Snapshot

DBMS_REFRESH chứa các thủ tục phục vụ cho việc tạo thêm thành viênmới, di chuyển, từ nhóm làm tơi, và sửa đổi tự động làm tơi định kỳ cho mộtnhóm làm tơi

- Thêm một thành viên mới từ nhóm làm tơi: Để thêm các Snapshot vàonhóm làm tơi, gọi thủ tục ADD trong DBMS_REFRESH

Tơng tự nh vậy ta có thể di chuyển sửa đổi và xoá các nhóm làm tơi tuần

tự theo các thủ tục sau: DBMS_REFRESH.SUBTRACT,DBMS_REFRESH.CHANCE, DBMS_REFRESH.DESTROY

Trang 36

VI Vấn đề làm tơi các Snapshot.

1 Giới thiệu

Làm tơi một Snapshot là làm cho Snapshot phản ánh đợc tình trạng mớinhất của bảng chủ Cơ chế thực hiện làm tơi các Snapshot đã đợc giải thíchtrong mục giới thiệu về cách tạo các Read_only Snapshot Phần này sẽ trìnhbày các phơng pháp làm tơi các Snapshot

Oracle sử dụng hai cách làm tơi: Làm tơi nhanh và làm tơi hoàn chỉnh.Làm tơi nhanh sử dụng Snapshot log của bảng chủ làm tơi Snapshot đơn bằngcách truyền đi các thay đổi cho các Snapshot cập nhật Làm tơi hoàn chỉnhthay thế toàn bộ dữ liệu trong Snapshot bằng dữ liệu mới của toàn bộ bảngchủ Cũng nh vậy các Snapshot đợc làm tơi tự động hoặc bằng tay, làm tơi đơn

lẻ hoặc làm tơi theo nhóm

Các Snapshot đơn (tập hợp các hàng và các cột của một bảng đơn) nóichung sử dụng phơng pháp làm tơi nhanh vì chúng mang lại hiệu quả hơn ph-

ơng pháp làm tơi hoàn chỉnh

2 Các điều kiện để thực hiện làm tơi Snapshot

Muốn làm tơi đợc Snapshot ta phải có hai điều kiện sau:

- Phải là chủ của Snapshot đó hoặc phải có quyền sửa đổi Snapshot(ALTER ANY SNAPSHOT) trong hệ thống

- Phải có quyền vào (SELECT) bảng chủ và cho làm tơi nhanh trênSnapshot log

3 Tự động làm tơi Snapshot.

Nếu muốn Snapshot đợc tự động làm tơi định kỳ phải thực hiện:

- Định rõ khoảng thời gian và phơng pháp làm tơi

- Phải có một hoặc nhiều tiến trình ngầm SNP giúp cho việc thực hiện định

kỳ làm tơi các Snapshot

a Định khoảng làm tơi Snapshot:

Nếu muốn làm tơi tự động một Snapshot, phải định rõ khoảng thời gianlàm tơi bằng cách dùng hai tham biến START WITH và NEXT trong mệnh đềREFRESH của câu lệnh CREAT SNAPSHOT hoặc ALTER SNAPSHOT Sau

đó Oracle sẽ tự động tạo ra nhóm làm tơi chỉ chứa chính xác một Snapshot, và

có tên gọi là tên của chính Snapshot mà nó chứa

Nếu muốn làm tơi tự động một tập hợp Snapshot từ một vị trí đơn, phải tạonhóm làm tơi bằng cách sử dụng thủ tục DBMS_REFRESH.MAKE Trong thủtục có cung cấp hai tham biến NEXT_DATE và INTERVAL lu khoảng thờigian mà nhóm Snapshot sẽ đợc làm tơi do ngời sử dụng đặt ra khi tạo nhóm

Trang 37

Khi định khoảng làm tơi cho Snapshot ta phải biết:

- Hai tham biến START WITH, và NEXT (của một Snapshot đơn lẻ) hoặcINTERVAL, và NEXT_DATE (trong thủ tục gọi cho một nhóm làm tơi) chứacác kỳ hạn.phải định lợng từ một thời điểm trong tơng lai Giá trị INTERVAL

đợc định lợng trớc khi quá trình làm tơi bắt đầu Nh vậy ta phải chọn khoảngthời gian lớn hơn thời gian yêu cầu thực hiện một lần làm tơi Một định lợngsai phải đợc chứa trong lời trích dẫn

- Nếu một Snapshot đợc định kỳ làm tơi trong một tập hợp các khoảng thờigian, sử dụng hai tham biến NEXT hoặc INTERVAL với kỳ hạn đơn giản từ

"NEXT_DAY(TRUNC(SYSDATE),'MONDAY')"

Ví dụ 1: Tạo Snapshot SNAP, và nó đợc định kỳ làm tơi 7 ngày một lần kể

từ ngày đợc làm tơi gần nhất , lần làm tơi đầu tiên vào ngày 01/6/1994

CREATE SNAPSHOT snap

Ngày đăng: 17/08/2012, 11:07

HÌNH ẢNH LIÊN QUAN

Sơ đồ tổng thể Sơ đồ phân đoạn Sơ đồ định vị - Cơ sở dữ liệu Oracle
Sơ đồ t ổng thể Sơ đồ phân đoạn Sơ đồ định vị (Trang 13)
Sơ đồ thiết kế CSDL phân tán theo mô hình TOP_DOWN (Hình 3.II): - Cơ sở dữ liệu Oracle
Sơ đồ thi ết kế CSDL phân tán theo mô hình TOP_DOWN (Hình 3.II): (Trang 15)
Hình 3.II: Sơ đồ thiết kế CSDL phân tán theo mô hình TOP-DOWN - Cơ sở dữ liệu Oracle
Hình 3. II: Sơ đồ thiết kế CSDL phân tán theo mô hình TOP-DOWN (Trang 16)
Hình 5.II mô tả sự phân lớp các thuật toán điều khiển tơng tranh: - Cơ sở dữ liệu Oracle
Hình 5. II mô tả sự phân lớp các thuật toán điều khiển tơng tranh: (Trang 26)
Hình 8.II: Sơ đồ các lỗi - Cơ sở dữ liệu Oracle
Hình 8. II: Sơ đồ các lỗi (Trang 29)
Hình 2.III: Mô hình phân tán dữ liệu hoàn toàn - Cơ sở dữ liệu Oracle
Hình 2. III: Mô hình phân tán dữ liệu hoàn toàn (Trang 47)
Hình 4.III: Mô hình phân tán dữ liệu Partition - Cơ sở dữ liệu Oracle
Hình 4. III: Mô hình phân tán dữ liệu Partition (Trang 50)
Hình 5.III: Mô hình phân tán dữ liệu sử dụng các Replicate - Cơ sở dữ liệu Oracle
Hình 5. III: Mô hình phân tán dữ liệu sử dụng các Replicate (Trang 53)
Hình 6.III: Oracle tại vị trí nhận, so sánh giá trị cũ và giá trị hiện tại của  hàng ra một xung đột nếu có bất kỳ sự khác nhau giữa các giá trị này cho bất - Cơ sở dữ liệu Oracle
Hình 6. III: Oracle tại vị trí nhận, so sánh giá trị cũ và giá trị hiện tại của hàng ra một xung đột nếu có bất kỳ sự khác nhau giữa các giá trị này cho bất (Trang 56)
Hình 1.IV :Tổ chức Công ty WSC - Cơ sở dữ liệu Oracle
Hình 1. IV :Tổ chức Công ty WSC (Trang 67)
Sơ đồ dữ liệu - Cơ sở dữ liệu Oracle
Sơ đồ d ữ liệu (Trang 69)

TỪ KHÓA LIÊN QUAN

w