Sao lưu dữ liệu phân tán

77 10 0
Sao lưu dữ liệu phân tán

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Đinh Xuân Thọ SAO LƯU DỮ LIỆU PHÂN TÁN Chuyên ngành : CÔNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC : TS.Hà Quốc Trung Hà Nội –2012 Sao lưu liệu phân tán LỜI CAM ĐOAN Tôi là: Đinh Xuân Thọ Học viên lớp Cao học: Cơng nghệ Thơng tin Khóa: 2009 Đại học Bách khoa Hà Nội Mã số Học viên: CB091352 Tôi cam kết: Luận văn tốt nghiệp kết nghiên cứu thân hướng dẫn T.S.Hà Quốc Trung Các kết nêu Luận văn tốt nghiệp trung thực, khơng phải chép tồn văn cơng trình khác Đinh Xn Thọ Trang: Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn chân thành, sâu sắc tới thầy Hà Quốc Trung, Giám đốc Trung tâm Mạng Thông tin Đại học Bách khoa Hà nội, người trực tiếp hướng dẫn em thực luận văn Trong suốt thời gian thực luận văn, Thầy nhiệt tình hướng dẫn, đưa định hướng, góp ý quý báu cho luận văn tốt nghiệp em Tôi gửi lời cảm ơn tới bạn Ngô Thị Vinh, Lê Anh Dũng tập thể lớp Cao học Cơng nghệ Thơng tin khóa 2009 Đại học Bách khoa Hà nội có đóng góp, chia sẻ kịp thời thơng tin hữu ích suốt trình học tập thực luận văn tốt nghiệp Lời cuối cùng, xin gửi lời cảm ơn tới người thân, gia đình, bạn bè động viên, cổ vũ suối thời gian thực luận văn Hà nội, ngày 05 tháng năm 2012 Đinh Xuân Thọ Lớp Cao học Công nghệ Thông tin 2009 Đại học Bách khoa Hà Nội Đinh Xuân Thọ Trang: Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán Mục lục DANH MỤC HÌNH VẼ DANH MỤC CÁC KÍ HIỆU, VIẾT TẮT LỜI NÓI ĐẦU Chương 11 1.1 Giới thiệu hệ liệu phân tán 11 1.1.1 Hệ liệu phân tán gì? 11 1.1.2 Phân loại hệ liệu phân tán 13 1.1.3 Quản lí liệu phân tán suốt 15 1.1.4 Ưu nhược điểm hệ liệu phân tán 17 1.2 Sao lưu liệu phân tán 19 1.2.1 Giới thiệu lưu liệu 19 1.2.2 Những vấn đề lưu liệu 21 1.2.3 Điều khiển song song 22 1.2.4 Tính quán lưu liệu 23 1.2.5 Phương thức quản lí cập nhật 25 1.2.5.1 Phương pháp cập nhật Eager 25 1.2.5.2 Phương pháp cập nhật Lazy 26 1.2.5.3 Phương pháp Two-Tier Replication 28 Chương 2: 33 2.1 Mơ hình hoạt động hệ thống siêu thị 33 2.1.1 Hoạt động thu ngân, tính tiền số hệ thống siêu thị 33 2.1.2 Mơ hình hoạt động hệ thống chuỗi siêu thị 34 2.2 2.2.1 Tổ chức liệu phương thức hoạt động siêu thị 35 Tổ chức liệu bán hàng phần mềm Daisy Soft 35 2.2.1.1 Thực toán 35 2.2.1.2 Cập nhật giao dịch bán hàng 37 2.2.2 Tổ chức liệu bán hàng phần mềm Thành Đô Soft 37 2.2.2.1 2.2.3 Cơ chế bán hàng 37 Ưu nhược điểm mơ hình hệ thống 38 Chương 3: 40 Đinh Xuân Thọ Trang: Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán 3.1 Sự cần thiết có giải pháp 40 3.2 Ý tưởng giải pháp 40 3.3 Chiến lược quản lí 42 3.3.1 Tổ chức liệu 42 3.3.2 Phương thức hoạt động 43 3.4 Một số giải pháp đồng liệu 44 3.4.1 Giải pháp sử dụng truyền câu lệnh 44 3.4.2 Giải pháp sử dụng Microsoft Sync Framework 44 3.5 Xây dựng modun đồng liệu bất đối xứng theo chức –Phương pháp Two-Tier Replication sửa đổi 48 3.5.1 3.5.1.1 Theo dõi thay đổi liệu 49 3.5.1.2 Bảng theo dõi thông tin cập nhật từ phía máy chủ: 49 3.5.1.3 Đưa thông tin cần đồng vào bảng theo dõi 50 3.5.1.4 Theo dõi thơng tin cập nhật từ phía máy thu ngân: 52 3.5.1.5 Các bước trình đồng 52 3.5.2 Phương pháp đồng sử dụng MicroSoft Sync Framework 56 3.5.2.1 Xác định bảng cần đồng bộ: 57 3.5.2.2 Tạo bảng theo dõi cho bảng liệu cần đồng 58 3.5.2.3 Tạo Triger để cập nhật thay đổi từ bảng vào bảng theo dõi 61 3.5.2.4 Xác định phạm vi đồng 62 3.5.2.5 Tạo thủ tục (Store Procedure) để lấy liệu thay đổi, cập nhật 63 3.5.2.6 Tiến hành đồng 66 3.5.2.7 Thiết kế giao diện 67 4.5 Thử nghiệm 69 4.6.1 Đồng mạng LAN: 70 4.6.2 Đồng qua mạng internet: 72 4.6 Phương pháp gửi câu lệnh thực thi 49 Đánh giá hiệu 73 4.7.1 Ưu điểm mơ hình 75 4.7.2 Nhược điểm 75 KẾT LUẬN CHUNG 76 TÀI LIỆU THAM KHẢO 77 Đinh Xuân Thọ Trang: Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán DANH MỤC HÌNH VẼ Hình 1.1: Mơi trường liệu tập trung mạng 12 Hình 1.2: Mơi trường Hệ liệu phân tán 13 Hình 1.3: Mơi trường hệ liệu phân tán 14 Hình 1.4: Mơi trường hệ liệu phân tán khơng 15 Hình 1.5: Mơ hình nhân đơn giản 20 Hình 2.1: Hoạt động thu ngân .33 Hình 2.2: Mơ hình tổ chức liệu siêu thị 34 Hình 2.3: Truy vấn liệu 36 Hình 2.4:Lưu đồ thực toán tiền Daisy soft 36 Hình 2.5: Lưu đồ thực tốn tiền phần mềm Thành Đơ Soft 38 Hình 3.1: Mơ hình liệu phân tán bán hàng 41 Hình 3.2: Mơ hình đồng 42 Hình 3.3: Mơ hình thành phần Sync Framework 45 Hình 3.4: Mơ hình truyền liệu Sync Framework 47 Hình 3.5: Bảng theo dõi thay đổi 49 Hình 3.6: Đưa liệu vào bảng theo dõi 52 Hình 3.7: Mơ hình đồng liệu từ máy chủ máy thu ngân 53 Hình 3.8: Mơ hình đồng giao dịch từ máy thu ngân máy chủ 56 Hình 3.9: Giao diện đăng kí bảng vào phiên đồng 68 Hình 3.10: Giao diện đăng kí phiên chiều đồng 68 Hình 3.11: Biểu đồ tỉ lệ thời gian đồng số ghi đồng mạng LAN 71 Hình 3.12: Biểu đồ tỉ lệ thời gian đồng số ghi đồng qua internet 73 Đinh Xuân Thọ Trang: Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán DANH MỤC CÁC KÍ HIỆU, VIẾT TẮT DBMS Hệ quản trị sở liệu Global User Người dùng toàn cục Distribute DBMS Hệ quản trị Cơ sở liệu phân tán Global Schema Lược đồ toàn cục Local User Người dùng cục Bottneck Thắt nút cổ chai phase-locking protocol(2PL) Giao thức khóa hai pha ROWA Đọc – ghi tất 2PC – two-phase-commit Ủy thác hai pha 10 Dealock - timeout Khóa chốt 11 Deadlock rate Tốc độ tăng khóa 12 Replication Nhân 13 Timestamps Nhãn thời gian 14 Mobile nodes Các nút di động 15 Base nodes Các nút ln kết nối 16 Master version Bản 17 Tentative Version Bản cục nút di động 18 Transaction Giao dịch 19 Barcode Mã vạch sản phẩm 20 Offline Không kết nối 21 Extensible Markup Language (XML) Ngôn ngữ đánh dấu mở rộng 22 Metadata Siêu liệu 23 Sync Section Phiên đồng 24 SV2CL Máy chủ tới máy 25 LAN Mạng cục 26 SQL (Structured Query Language) Ngôn ngữ truy vấn mang tính cấu trúc Đinh Xuân Thọ Trang: Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán DANH MỤC CÁC BẢNG Bảng: 3.5-1: Bảng Tracking theo dõi thay đổi .60 Bảng: 3.5-2 Scope_name: lưu trữ thông tin chiều phiên đồng 62 Bảng: 3.5-3 Table_updatelist: Lưu trữ danh sách bảng đồng theo phiên .62 Bảng: 4.5-1: Thông Số cấu hình máy thử nghiệm .69 Bảng: 4.5-2: Tỉ lệ thời gian số lượng ghi, đồng qua LAN 71 Đinh Xuân Thọ Trang: Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán LỜI NÓI ĐẦU Cùng với phát triển mạnh mẽ mạng máy tính nói riêng, cơng nghệ thơng tin nói chung, việc tính tốn, quản lí, lưu trữ ngày khơng đơn giản tập trung máy tính đơn trước mà địi hỏi hệ thơng tính tốn, lưu trữ phải kết hợp từ số lượng lớn máy tính kết nối, chia sẻ với thông qua mạng tốc độ cao Thường gọi hệ phân tán Ngày hệ phân tán phát triển nhanh ứng dụng rộng khắp, ứng dụng vào nhiều ngành lĩnh vực khác nhau, dịch vụ thơng tin phân tán, liệu, xử lí phân tán, ứng dụng phân tán ngân hàng, viễn thông,…và hoạt động kinh doanh thương mại khác Trong hệ phân tán đòi hỏi kĩ thuật quan trọng đồng thơng tin điểm phân tán với nhau, hay gọi lưu, đồng liệu phân tán Trong lĩnh vực siêu thị, bán lẻ ví dụ Việc ứng dụng cơng nghệ thơng tin vào quản lí kinh doanh xu tất yếu, siêu thị bán lẻ trở thành chuỗi, hệ thống, nhu cầu quản lí đồng bộ, phân tán yêu cầu cần thiết tất yếu Đa số hệ thống bán hàng, thu ngân chạy với mơ hình CientServer, xử lí, lưu trữ tập trung máy chủ Mỗi thực giao dịch máy Client thực tải lại toàn liệu bán hàng từ máy chủ, dẫn đến việc bán hàng chậm, tắc ngẽn hệ thống, liên tục phải đọc ghi liệu, không đồng kịp thời thông tin thay đổi hàng hóa, sản phẩm đến máy bán hàng khơng kịp thời, toán chậm, sai Hệ thống bán hàng hoàn toàn phụ thuộc vào máy chủ, máy chủ, mạng bị lỗi, ngừng hoạt động tồn hệ thống ngừng hoạt động theo Xuất phát từ thực tế tác giả đề xuất, nghiên cứu mơ hình mới, ứng dụng lưu liệu phân tán, bất đối xứng vào hệ thống tính tiền siêu thị Với ý tưởng thiết lập tập liệu thu gọn máy thu ngân, lưu trữ liệu cần Đinh Xuân Thọ Trang: Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán thiết, truy cập thường xuyên Chuyển truy vấn thường xuyên bán hàng từ máy chủ sang máy thu ngân đó, đồng thời lưu trữ giao dịch bán hàng trạm thu ngân nhằm giảm tải cho máy chủ, tăng hiệu năng, độ tin cậy, tính sẵn sàng hệ thống Đồng thời tác giả đề xuất, thiết kế modun lưu, đồng liệu máy chủ máy bán hàng, máy chủ theo chức năng, có chọn lọc thơng tin, phân tán xử lí, phân tán liệu truy vấn máy bán hàng Tác giả sử dụng ứng dụng công nghệ Sync Framework MicroSoft, không đồng lại tồn thơng tin hàng hóa, đồng liệu thay đổi, hai chiều máy chủ máy bán hàng Nội dung Luận văn bao gồm ba chương: Chương 1: Tác giả khái quát khái niệm hệ liệu phân tán, đặc điểm chung, ưu nhược điểm hệ liệu phân tán so với tập trung, đồng thời giới thiệu khái niệm đặc điểm, vấn đề phương pháp lưu liệu phân tán, bao gồm số phương thức quản lí lưu phân tán Eager, Lazy Two tier Replication Chương 2: Tác giả giới thiệu mơ hình tổ chức liệu hệ thống siêu thị, mơ hình tổ chức hoạt động thu ngân, bước hoạt động thu ngân phương thức tổ chức hoạt động số phần mềm thị trường (Phần mềm Daisy Soft, Thành Đô Soft) đồng thời đánh giá ưu nhược điểm mơ hình Chương 3: Tác giả đề xuất mơ hình giải số nhược điểm mơ hình với ý tưởng là: phân tán liệu cần truy vấn bán hàng máy thu ngân từ máy chủ sang máy bán hàng, tạo liệu thu gọn máy bán hàng, thiết kế modun đồng giao tiếp liệu máy bán hàng máy chủ Tác giả thiết kế, thử nghiệm thành công modun đồng liệu, sử dụng số thư viện Sync Framework hãng Microsoft Tác giả sử dụng phương pháp tạo bảng tracking để theo dõi thay đổi liệu, nhằm tối ưu hóa liệu phải đồng Đinh Xuân Thọ Trang: 10 Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán scope_info: lưu giữ thông tin phiên đồng bộ, lưu dạng nhị phân cho phiên Mỗi phiên nhóm bảng mà đồng chiều đồng lưu bảng Scope_name Mỗi Scope_name sau tạo đồng phiên khơng thay đổi, thay đổi dẫn đến khơng hội tụ liệu Mỗi bảng nằm nhiều phiên đồng 3.5.2.5 Tạo thủ tục (Store Procedure) để lấy liệu thay đổi, cập nhật Sau tạo bảng, ta tạo thêm thủ tục SQL Server dùng để lấy liệu thay đổi, cập nhật, xử lí đồng liệu, có nhiều thủ tục tạo cài đặt tác giả lực chọn nêu viết số thủ tục quan trọng + Thủ tục Select_Change: CREATE PROCEDURE [dbo].[Mathang_selectchanges] @sync_min_timestamp BigInt, @sync_scope_local_id Int, @sync_scope_restore_count Int, @sync_update_peer_key Int AS BEGIN SELECT [side].[Masieuthipk], [base].[Madonvi], [base].[Masieuthiphu], [base].[Masieuthi], [base].[Barcode], [base].[Tendaydu], [base].[Tenviettat], [base].[Mahangcuancc], [base].[Barcodethung], [base].[Mathung], [base].[Tenthung], [base].[Trietkhauthung], [base].[Manhaccpk], [base].[Manhacc], [base].[Tennhacc], [base].[Makehangpk], [base].[Makehang], [base].[Tenkehang], [base].[Manhomhangpk], [base].[Manhomhang], [base].[Tennhomhang], [base].[Manganhhangpk], [base].[Manganhhang], [base].[Tennganhhang], [base].[Madvtinh], [base].[Dvtinhle], [base].[Donvitinhlon], [base].[Donviquydoi], [base].[Giamuachuavat], [base].[Vatmua], [base].[Giamuacovat], [base].[Vatban], [base].[Trietkhauncc], [base].[Tilelaibanle], [base].[Giabanlechuavat], [base].[Giabanlecovat], [base].[Tilelaibanbuon], [base].[Giabanbuonchuavat], [base].[Giabanbuoncovat], [base].[Sltontoithieu], [base].[Sltontoida], [base].[Tongtonsl], [base].[Tonggiatri], [base].[Tenanh], [base].[Tenanh1], [base].[Isshowweb], [base].[Trangthai], [base].[Ngayphatsinh], [base].[Ngaytao], [base].[Nguoitao], [base].[Songaybaohanh], [base].[Sophieubaohanh], [base].[Isdonvikichthuoc], [base].[Issudung], [base].[Kichthuoccao], [base].[Kichthuocrong], [base].[Mamau], [base].[Mavitri], [base].[Caothoang], [base].[Tendayduguidkey], [base].[Hangkochuithue], [side].[sync_row_is_tombstone], [side].[local_update_peer_timestamp] as sync_row_timestamp, case when ([side].[update_scope_local_id] is null or [side].[update_scope_local_id] @sync_scope_local_id) then COALESCE([side].[restore_timestamp], [side].[local_update_peer_timestamp]) else [side].[scope_update_peer_timestamp] end as sync_update_peer_timestamp, case when ([side].[update_scope_local_id] is null or [side].[update_scope_local_id] @sync_scope_local_id) then case when ([side].[local_update_peer_key] > @sync_scope_restore_count) then @sync_scope_restore_count else [side].[local_update_peer_key] end else [side].[scope_update_peer_key] end as sync_update_peer_key, case when ([side].[create_scope_local_id] is null or [side].[create_scope_local_id] @sync_scope_local_id) Đinh Xuân Thọ Trang: 63 Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán then [side].[local_create_peer_timestamp] else [side].[scope_create_peer_timestamp] end as sync_create_peer_timestamp, case when ([side].[create_scope_local_id] is null or [side].[create_scope_local_id] @sync_scope_local_id) then case when ([side].[local_create_peer_key] > @sync_scope_restore_count) then @sync_scope_restore_count else [side].[local_create_peer_key] end else [side].[scope_create_peer_key] end as sync_create_peer_key FROM [Mathang] [base] RIGHT JOIN [Mathang_tracking] [side] ON [base].[Masieuthipk] = [side].[Masieuthipk] WHERE ([side].[update_scope_local_id] IS NULL OR [side].[update_scope_local_id] @sync_scope_local_id OR ([side].[update_scope_local_id] = @sync_scope_local_id AND [side].[scope_update_peer_key] @sync_update_peer_key)) AND [side].[local_update_peer_timestamp] > @sync_min_timestamp END Thủ tục lấy liệu thay đổi từ lần cập nhật trước liệu cập nhật thêm vào cục so với thời gian cập nhật liệu remote từ xa + Thủ tục Update: CREATE PROCEDURE [dbo].[Mathang_update] @P_1 NVarChar(15), @P_2 NVarChar(5), @P_3 NVarChar(4000), @P_4 NVarChar(10), @P_5 NVarChar(20), @P_6 NVarChar(4000), @P_7 NVarChar(4000), @P_8 NVarChar(20), @P_9 NVarChar(20), @P_10 NVarChar(10), @P_11 NVarChar(300), @P_12 Money, @P_13 NVarChar(15), @P_14 NVarChar(10), @P_15 NVarChar(4000), @P_16 NVarChar(15), @P_17 NVarChar(50), @P_18 NVarChar(50), @P_19 NVarChar(15), @P_20 NVarChar(50), @P_21 NVarChar(50), @P_22 NVarChar(15), @P_23 NVarChar(50), @P_24 NVarChar(50), @P_25 NVarChar(20), @P_26 NVarChar(30), @P_27 NVarChar(30), @P_28 Int, @P_29 Money, @P_30 Money, @P_31 Money, Đinh Xuân Thọ Trang: 64 Đại Học Bách Khoa Hà Nội Sao lưu liệu phân tán @P_32 Money, @P_33 Money, @P_34 Money, @P_35 Money, @P_36 Money, @P_37 Money, @P_38 Money, @P_39 Money, @P_40 Int, @P_41 Int, @P_42 Int, @P_43 Money, @P_44 Image, @P_45 NVarChar(500), @P_46 Int, @P_47 Int, @P_48 DateTime, @P_49 DateTime, @P_50 NVarChar(100), @P_51 Int, @P_52 NVarChar(4000), @P_53 Bit, @P_54 Int, @P_55 Decimal(18,0), @P_56 Decimal(18,0), @P_57 NVarChar(20), @P_58 NVarChar(20), @P_59 NVarChar(500), @P_60 NVarChar(4000), @P_61 Bit, @sync_force_write Int, @sync_min_timestamp BigInt, @sync_row_count Int OUTPUT AS BEGIN SET @sync_row_count = 0; UPDATE [Mathang] SET [Madonvi] = @P_2, [Masieuthiphu] = @P_3, [Masieuthi] = @P_4, [Barcode] = @P_5, [Tendaydu] = @P_6, [Tenviettat] = @P_7, [Mahangcuancc] = @P_8, [Barcodethung] = @P_9, [Mathung] = @P_10, [Tenthung] = @P_11, [Trietkhauthung] = @P_12, [Manhaccpk] = @P_13, [Manhacc] = @P_14, [Tennhacc] = @P_15, [Makehangpk] = @P_16, [Makehang] = @P_17, [Tenkehang] = @P_18, [Manhomhangpk] = @P_19, [Manhomhang] = @P_20, [Tennhomhang] = @P_21, [Manganhhangpk] = @P_22, [Manganhhang] = @P_23, [Tennganhhang] = @P_24, [Madvtinh] = @P_25, [Dvtinhle] = @P_26, [Donvitinhlon] = @P_27, [Donviquydoi] = @P_28, [Giamuachuavat] = @P_29, [Vatmua] = @P_30, [Giamuacovat] = @P_31, [Vatban] = @P_32, [Trietkhauncc] = @P_33, [Tilelaibanle] = @P_34, [Giabanlechuavat] = @P_35, [Giabanlecovat] = @P_36, [Tilelaibanbuon] = @P_37, [Giabanbuonchuavat] = @P_38, [Giabanbuoncovat] = @P_39, [Sltontoithieu] = @P_40, [Sltontoida] = @P_41, [Tongtonsl] = @P_42, [Tonggiatri] = @P_43, [Tenanh] = @P_44, [Tenanh1] = @P_45, [Isshowweb] = @P_46, [Trangthai] = @P_47, [Ngayphatsinh] = @P_48, [Ngaytao] = @P_49, [Nguoitao] = @P_50, [Songaybaohanh] = @P_51, [Sophieubaohanh] = @P_52, [Isdonvikichthuoc] = @P_53, [Issudung] = @P_54, [Kichthuoccao] = @P_55, [Kichthuocrong] = @P_56, [Mamau] = @P_57, [Mavitri] = @P_58, [Caothoang] = @P_59, [Tendayduguidkey] = @P_60, [Hangkochuithue] = @P_61 FROM [Mathang] [base] JOIN [Mathang_tracking] [side] ON [base].[Masieuthipk] = [side].[Masieuthipk] WHERE ([side].[local_update_peer_timestamp]

Ngày đăng: 28/02/2021, 00:06

Từ khóa liên quan

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

Tài liệu liên quan