Tìm hiểu cơ sở dữ liệu phân tán trong sql server 2008

29 1.4K 4
Tìm hiểu cơ sở dữ liệu phân tán trong sql server 2008

Đ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

PHẦN MỞ ĐẦU1PHẦN NỘI DUNG2PHẦN I : Tổng quan hệ quản trị cơ sở dữ liệu SQL Server 20082PHẦN II : Tìm hiểu phân tán trong SQL SERVER 200841.Mục tiêu chính của nhân bản42.Nhất quán dữ liệu (Data consistency)43.Độc lập site (site autonomy)54.Kiến trúc nhân bản5PHẦN III : Các loại nhân bản10I.Nhân bản kết hợp (Merge Replication)10II.Nhân bản Snapshot (Snapshot replication)13III.Nhân bản giao dịch (Transactional replication)15PHẦN IV : Minh họa sử dụng nhân bản để phân tán dữ liệu221.Minh họa bài toán222.Quản trị cơ sở dữ liệu phân tán với SQL Server 200822KẾT LUẬN27TÀI LIỆU THAM KHẢO28

Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 MỤC LỤC PHẦN MỞ ĐẦU 1 PHẦN NỘI DUNG 2 Nhóm 1B – KHMT 2014-2016 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 PHẦN MỞ ĐẦU Những năm gần đây, các hệ thống cơ sở dữ liệu phân tán (CSDLPT) đã trở thành một lĩnh vực quan trọng của công nghệ thông tin và cũng dễ thấy tầm quan trọng đó sẽ tăng nhanh. Có hai lý do để khẳng định xu thế này, đó là : cơ cấu tổ chức và phát triển công nghệ. Các CSDLPT khắc phục được nhiều nhược điểm của các hệ thống cơ sở dữ liệu tập trung và phù hợp với cấu trúc phân tán của nhiều tổ chức. Sau đây là một định nghĩa điển hình của một CSDLPT : “Một CSDLPT là một bộ sưu tập các dữ liệu về mặt logic thuộc cùng một hệ thống nhưng được trải ra trên các trạm của một mạng máy tính“. Để tìm hiểu về cơ sở dữ liệu phân tán và giải quyết các vấn đề về việc phân tán dữ liệu ta sử dụng các hệ quản trị cơ sở dữ liệu phân tán. Mặc dù SQL Server không phải là hệ quản trị cơ sở dữ liệu phân tán nhưng người dùng có thể dùng nó để xây dựng cơ sở dữ liệu phân tán với các hỗ trợ như MSDTC, link server, openquery, SQL Server là hệ quản trị cơ sở dữ liệu quan hệ và cũng đóng vai trò là nền tảng dữ liệu của doanh nghiệp. Phiên bản Microsoft SQL Server 2008 là một phiên bản có hỗ trợ nhiều tính năng mạnh mẽ như dịch vụ thông báo, dịch vụ báo cáo Cùng với kiến thức đã được cung cấp trong môn học Cơ sở dữ liệu phân tán, tôi đã chọn đề tài “Tìm hiểu cơ sở dữ liệu phân tán trong SQL Server 2008“ làm nội dung nghiên cứu của tiểu luận. Xin chân thành cảm ơn PGS.TS. Nguyễn Mậu Hân, giảng viên Khoa Công nghệ thông tin Trường Đại học Khoa học Huế đã hướng dẫn tôi hoàn thành tiểu luận này. Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 1 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 PHẦN NỘI DUNG PHẦN I : Tổng quan hệ quản trị cơ sở dữ liệu SQL Server 2008 Trong một thế giới dữ liệu ngày nay, dữ liệu và các hệ thống quản lý dữ liệu đó cần phải luôn luôn được bảo đảm và ở trạng thái có sẵn. SQL Server 2008 cho phép các nhà phát triển giảm được sự phức tạp của cơ sở hạ tầng trong khi đó vẫn bảo đảm cung cấp một nền tảng dữ liệu doanh nghiệp có khả năng bảo mật, khả năng mở rộng và quản lý tốt hơn, cùng với thời gian chết của ứng dụng giảm. Những điểm mới của SQL server 2008: • Nền tảng cho các nhiệm vụ then chốt - SQL Server 2008 cho phép các tổ chức có thể chạy hầu hết các ứng dụng phức tạp của họ trên một nền tảng an toàn, tin cậy và có khả năng mở rộng. Bên cạnh đó còn giảm được sự phức tạp trong việc quản lý cơ sở hạ tầng dữ liệu. SQL Server 2008 cung cấp một nền tảng tin cậy và an toàn bằng cách bảo đảm những thông tin có giá trị trong các ứng dụng đang tồn tại và nâng cao khả năng sẵn có của dữ liệu. SQL Server 2008 giới thiệu một cơ chế quản lý cách tân dựa trên chính sách, cơ chế này cho phép các chính sách có thể được định nghĩa quản trị tự động cho các thực thể máy chủ trên một hoặc nhiều máy chủ. Thêm vào đó, SQL Server 2008 cho phép thi hành truy vấn dự báo với một nền tảng tối ưu. • Sự phát triển động - SQL Server 2008 cùng với .NET Framework đã giảm được sự phức tạp trong việc phát triển các ứng dụng mới. ADO.NET Entity Framework cho phép các chuyên gia phát triển phần mềm có thể nâng cao năng suất bằng làm việc với các thực thể dữ liệu logic đáp ứng được các yêu cầu của doanh nghiệp thay vì lập trình trực tiếp với các bảng và cột. Các mở rộng của ngôn ngữ truy vấn tích hợp (LINQ) mới trong .NET Framework đã cách mạng hóa cách các chuyên gia phát triển truy vấn dữ liệu bằng việc mở rộng Visual C# và Visual Basic .NET để hỗ trợ cú pháp truy vấn giống SQL vốn đã có. Hỗ trợ cho các hệ thống kết nối cho phép chuyên gia phát triển xây dựng các ứng dụng cho phép người dùng mang dữ liệu cùng với ứng dụng này vào các thiết bị và sau đó đồng bộ dữ liệu của chúng với máy chủ trung tâm. Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 2 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 • Dữ liệu quan hệ mở rộng - SQL Server 2008 cho phép các chuyên gia phát triển khai thác triệt để và quản lý bất kỳ kiểu dữ liệu nào từ các kiểu dữ liệu truyền thống đến dữ liệu không gian địa lý mới. • Thông tin trong toàn bộ doanh nghiệp - SQL Server 2008 cung cấp một cơ sở hạ tầng có thể mở rộng, cho phép quản lý các báo cáo, phân tích với bất kỳ kích thước và sự phức tạp nào, bên cạnh đó nó cho phép người dùng dễ dàng hơn trong việc truy cập thông tin thông qua sự tích hợp sâu hơn với Microsoft Office. Điều này cho phép CNTT đưa được thông tin của doanh nghiệp rộng khắp trong tổ chức. SQL Server 2008 tạo những bước đi tuyệt vời trong việc lưu trữ dữ liệu, cho phép người dùng hợp nhất các trung tâm dữ liệu vào một nơi lưu trữ dữ liệu tập trung của toàn doanh nghiệp. Toàn cảnh nền tảng dữ liệu của Microsoft Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 3 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 PHẦN II : Tìm hiểu phân tán trong SQL SERVER 2008 Trong SQL Server 2008 hỗ trợ nhiều cách để phân tán dữ liệu, trong tiểu luận này tìm hiểu cách phân tán dữ liệu bằng Replication Tìm hiểu về Replication (Kiến trúc nhân bản) Nhân bản là một kĩ thuật quan trọng và hữu hiệu trong việc phân bố cơ sở dữ liệu (CSDL) và thực thi các Stored procedure. Kĩ thuật nhân bản trong SQL Server cho phép bạn tạo ra những bản sao dữ liệu giống hệt nhau, di chuyển các bản sao này đến những vùng khác nhau và đồng bộ hoá dữ liệu một cách tự động để tất cả các bản sao có cùng giá trị dữ liệu. Nhân bản có thể thực thi giữa những CSDL trên cùng một server hay những server khác nhau được kết nối bởi mạng LANs,WANs hay Internet. SQL Server đã đưa ra nhiều cơ chế nhân bản để đáp ứng các yêu cầu khác nhau của ứng dụng. Mỗi loại cung cấp các khả năng và thuộc tính khác nhau nhằm đạt đến mục tiêu của tính độc lập “Site”và sự nhất quán các giao dịch. 1. Mục tiêu chính của nhân bản SQL Server đã đưa ra nhiều cơ chế nhân bản để đáp ứng các yêu cầu khác nhau của ứng dụng. Mỗi loại cung cấp các khả năng và thuộc tính khác nhau nhằm đạt đến mục tiêu của tính độc lập “Site” và sự nhất quán dữ liệu. 2. Nhất quán dữ liệu (Data consistency) Có 2 cách để đạt được tính nhất quán dữ liệu: - Nhất quán giao dịch(Transactional Consistency) - Hội tụ dữ liệu (Data Convergence) 2.1. Nhất quán giao dịch : • Bảo đảm tất cả dữ liệu giống nhau tại mọi site ở bất kì thời điểm • Tất cả giao dịch thực hiện tại một site duy nhất Có 2 loại : • Nhất quán lập tức (Immediate Transactional Consistency hay Tight Consistency): Ở kiểu này, tất cả các site được bảo đảm là luôn thấy cùng giá trị dữ liệu tại cùng một thời điểm. Cách duy nhất để đạt được nhất quán giao Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 4 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 dịch (transactional consistency) trong môi trường cập nhật phân tán (distributed update environment) là sử dụng 2-phase commit protocol giữa tất cả site tham gia (participating site). Mỗi site phải commit đồng thời mọi thay đổi hoặc không site nào commit những thay đổi. Giải pháp này rõ ràng không khả thi khi số lượng site quá lớn • Nhất quán ngầm (Latent Transactional Consistency hay Loose Consistency) : Có một sự nhất quán ngầm giữa các site tham gia do có một sự trì hoãn trong việc phản ánh các giá trị dữ liệu đến các site tham gia và vào lúc này các site không bảo đảm có cùng giá trị dữ liệu. Việc sửa đổi các giá trị dữ liệu có thể bị trì hoãn đủ lâu để tất cả các site cùng cập nhật, sau đó tất cả các site sẽ có cùng giá trị dữ liệu. Ngoài ra các giá trị dữ liệu này cũng phải giống với những giá trị đạt được khi thực hiện các công việc tại một site.Sự khác nhau duy nhất giữa nhất quán giao dịch lập tức và nhất quán giao dịch ngầm là dữ liệu có nhất quán tại cùng một lúc hay không 2.2. Hội tụ dữ liệu : Với sự hội tụ dữ liệu, tất cả các site có thể quy về cùng một giá trị dữ liệu nhưng không nhất thiết là giá trị dữ liệu này bị gây ra bởi những tác vụ được làm trên một site duy nhất. User có thể tự do thao tác trên các site theo các cách khác nhau. Khi các nút (node) đồng bộ, tất cả các site sẽ hội tụ về cùng một giá trị. Nếu đụng độ gây ra bởi sự sửa đổi cùng một dữ liệu tại những site khác nhau thì những sửa đổi này sẽ được giải quyết một cách tự động (chọn site có độ ưu tiên cao hơn hay site đưa sửa đổi đến trước ). 3. Độc lập site (site autonomy) Độc lập site xét đến ảnh hưởng của những thao tác trên một site đến các site khác. Thường độc lập site càng tăng thì tính nhất quán dữ liệu giảm. Nhân bản kết hợp (Merge replication) có mức độc lập site cao nhất, tạo ra sự hội tụ nhưng lại không đảm bảo tính nhất quán dữ liệu. 2PC (two phase commit) có tính nhất quán dữ liệu cao nhưng lại không có tính độc lập site. Những giải pháp khác thì thường ở giữa hai tính này. 4. Kiến trúc nhân bản Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 5 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 4.1. Các thành phần chính của nhân bản • Publisher : Là một server tạo dữ liệu để nhân bản đến các server khác. Nó xác định dữ liệu nào được nhân bản, dữ liệu nào thay đổi và duy trì những thông tin về các công bố tại site đó. • Subscriber: Là một server lưu giữ nhân bản và nhận các tác vụ cập nhật. SQL Server 2000 cho phép Subsriber cập nhật dữ liệu nhưng quá trình cập nhập ở Subscriber không giống như ở Publisher. Một Subscriber có thể là một Publisher của các Subscriber khác. • Distributor: Là một server mà chứa CSDL phân tán (distribution database) và lưu trữ metadata, history data và transaction. SQL Server sử dụng CSDL phân tán để lưu và chuyển (store_and_forward) dữ liệu nhân bản từ Publisher đến các Subscriber. Có 2 loại Distributor : Local Distributor và remote Distributor. • Publication: Đơn giản là một tập hợp các mẩu dữ liệu (article). Một mẩu là một nhóm dữ liệu được nhân bản. Một mẩu có thể bao gồm một table hay chỉ là một vài hàng (horizontal fragment) hay cột (vertical fragment). Một Publication thường gồm nhiều mẩu. 4.2. Chiều di chuyển dữ liệu Có 2 kiểu di chuyển dữ liệu : 4.2.1. Push subscription : • Publisher đẩy (push) những thay đổi đến Subscriber mà không quan tâm Subscriber có cập nhật hay không Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 6 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 • Push subscription được sử dụng trong những ứng dụng mà yêu cầu gửi những thay đổi đến Subscriber ngay khi những thay đổi này xảy ra ở Publisher. • Push Subscription giúp việc quản lý các Subcsriber đơn giản và tập trung hơn, đồng thời giúp bảo mật tốt hơn vì qúa trình khởi động (initialization process) sẽ được quản lý tại một chỗ . Nhưng vì thế, Distributor có thể phải đảm nhận nhiều quá trình phân bố subscription đến các Subscriber cùng một lúc . Điều này dễ dẫn đến hiện tượng thắt cổ chai (bottleneck) . • Mô hình này không thích hợp khi số lượng các Subscriber trở nên quá lớn. • Push subscription gây ra 1 phí xử lý cao hơn tại Publisher. Để tránh hiện tượng này, những thay đổi có thể được đẩy đến Subscriber theo một lịch định kì. 4.2.2. Pull subscription : • Subsciber kéo (pull) những thay đổi tại Publisher về theo một khoảng thời gian định kì • Tốt cho những user độc lập thay đổi bởi vì chúng cho phép user xác định khi nào thì những thay đổi dữ liệu được đồng bộ • Ngược với push subscription ,pull subscription bảo mật thấp nhưng cho phép số lượng Subsriber cao hơn . • Một publication có thể sử dụng cả hai push và pull subscription. 4.3. Tác nhân (Agent) Việc thiết kế các nhân bản có thể tạo ra 1 hay nhiều agent 4.3.1. Snapshot agent : • Chuẩn bị lược đồ, data file, stored procedure • Lưu snapshot lên Distributor và ghi lại những thông tin về trạng thái đồng bộ vào CSDL phân bố (distribution database) . Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 7 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 • Mỗi publication có 1 snapshot agent riêng chạy trên Distributor và liên kết với Publisher. 4.3.2. Log Reader agent • Di chuyển những transaction cần nhân bản từ transaction log trên Publisher đến CSDL phân bố • Mỗi publication dùng nhân bản transaction có một log reader agent, chạy trên Distributor và liên kết (connect) đến Publisher. 4.3.3. Distribution agent • Di chuyển transaction và những tác vụ sao chép giữ trong CSDL phân bố đến Subscriber. • TH: Nhân bản transaction hay snapshot mà đồng bộ lập tức ( immediate synchronization): khi 1 push subscription được tạo, mỗi publication có 1 distribution agent riêng, chạy trên Distributor và liên kết với Subscriber. • TH: Nhân bản transaction và snapshot không đồng bộ lập tức : Publisher và Subscriber sẽ dùng chung distribution agent , chạy trên Distributor và liên kết với Subscriber. • TH: pull subscription đến snapshot publication hay transactional publication: có distribution agent, chạy trên Subscriber • Nhân bản kết hợp (merge replication) không có distribution agent. 4.3.4. Merge agent • Di chuyển và điều hòa những thay đổi dữ liệu xảy ra sau khi 1 snapshot khởi động (initial snapshot) được tạo. Mỗi merge publication có một merge agent, liên kết và cập nhật được với cả hai Publisher và Subscriber. 4.4. Các loại nhân bản Trong thực tế khó có thể có được một loại nhân bản phù hợp mọi yêu cầu. Công việc kinh doanh thường đòi hỏi nhiều ứng dụng khác nhau vì thế SQL Server đã đưa ra nhiều cách thức nhân bản để đáp ứng các yêu cầu đó. Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 8 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 SQL Server đưa ra 3 loại nhân bản để sử dụng khi thiết kế ứng dụng: • Nhân bản snapshot • Nhân bản transaction • Immediate Transactional Consistency-Nhân bản kết hợp Mỗi loại cung cấp các khả năng và thuộc tính khác nhau nhằm đặt đến mục tiêu của tính độc lập site và sự nhất quán dữ liệu. Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 9 [...]... lưu trữ trong các bảng, ta sẽ dùng Transactional replication để phân tán dữ liệu 2 Quản trị cơ sở dữ liệu phân tán với SQL Server 2008 Cấu hình phân tán ở server 1 : • Ở phần Replication → Local Publications → R_click chọn New Publications Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 22 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 • Chọn next và chọn Database muốn tạo bản sao ( ví dụ Quanly)... phân tích yêu cầu của bài toán mà ta có thể sử dụng các kiểu phân tán dữ liệu khác nhau cho hợp lý Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 26 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 KẾT LUẬN Qua việc nghiên cứu về phân tán dữ liệu bằng Replication trong SQL Server 2008 cho thấy đây là giải pháp khá hiệu quả để tổ chức quản lý và triển khai các hệ thống thông tin lớn, phân tán. .. việc phân tích hệ thống, mà chỉ là với yêu cầu như trên thì ta phải phân tích và phân tán dữ liệu như thế nào, dựa trên sử dụng nhân bản để phân tán dữ liệu Thiết kế hệ thống mạng : • Sử dụng hệ thống cơ sở dữ liệu thuần nhất là hệ quản quản trị CSDL SQL Server 2008 • Server 1 đặt tại cơ sở 1, dùng để quản trị CSDL tại cơ sở 1 và bản sao của các bảng dữ liệu thông báo từ trung tâm • Server 2 đặt tại cơ. .. sao dữ liệu từ server 1 tới server trung tâm Cấu hình phân tán ở server 2 : Tương tự như với server 1 Cấu hình phân tán ở server trung tâm : Tương tự như trên, nhưng khi chọn các bảng dữ liệu thì chỉ chọn những bản dữ liệu liên quan đến thông báo cho các cơ sở Và khi tạo ở phần Add SQL Server Subcriber thì add cả hai server 1 và 2 Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 24 Tìm hiểu về cơ sở dữ. .. quán với dữ liệu tại Publisher Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 21 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 PHẦN IV : Minh họa sử dụng nhân bản để phân tán dữ liệu 1 Minh họa bài toán Một trung tâm có hai cơ sở dạy học ở hai tỉnh khác nhau Mỗi cơ sở dạy về các ngành học khác nhau, quản lý học sinh, khen thưởng, ký luật, điểm, thời khóa biếu riêng của mỗi cơ sở Trung tâm... phân tán về địa lý trong môi trường ứng dụng CNTT Giúp giải quyết bài toán đồng bộ dữ liệu phân tán, khả năng mở rộng hệ thống một cách dễ dàng với nhiều phương thức đồng bộ Tuy nhiên ta phải phân tích và dùng Replication hợp lý để tránh sự dữ thừa dữ liệu ở các server Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 27 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 TÀI LIỆU THAM KHẢO [1]... 2014 Trang 20 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 đổi dữ liệu được làm bởi stored procedure có thể xảy ra trong nhiều giao dịch, nên dữ liệu tại Subcriber không thể bảo đảm là sẽ nhất quán với dữ liệu tại Publisher Serializable Procedure execution: Chỉ thực hiện nhân bản procedure execution khi procedure được thực thi trong môt chuỗi giao dịch tuần tự Cách này đảm bảo dữ liệu tại Subscriber... liệu phân tán trong SQL Server 2008 end [noidung], [loai] ) values ( @c1, @c2, @c3, @c4 ) Với ý nghĩa : • Nếu loại bằng 0 : Thông báo chung cho hai cơ sở • Nếu loại bằng 1 : Thông báo cho cơ sở 1 • Nếu loại bằng 2 : Thông báo cho cơ sở 2 Ở cơ sở 1, ta sửa stored insert lại như trên để cơ sở 1 chỉ nhận thông báo chung và thông báo cho cơ sở của mình, còn thông báo cho cơ sở 2 thì không nhận Với cơ sở. .. Updating Subscriber) Trong trường hợp đơn giản nhất, cả hai nhân bản snapshot và giao dịch làm việc dựa trên mô hình nhân bản một chiều ( dữ liệu chỉ được nhân bản từ Publisher đến Hồ Nguyễn Thành Nhân – KHMT B – Khóa 2014 Trang 17 Tìm hiểu về cơ sở dữ liệu phân tán trong SQL Server 2008 Subscriber) Tuy nhiên MS SQL Server cung cấp thêm một mô hình mới cho phép Subscriber sửa đổi dữ liệu nhân bản, tùy... sở thì sẽ có ba loại thông báo : thông báo chung cho các cơ sở, thông báo riêng cho cơ sở một, thông báo riêng cho cơ sở hai Nên ở Database của các cơ sở ta phải chỉnh sửa lại một tí cho việc chỉ nhận thông báo chung và thông báo riêng cho cơ sở của mình Sau khi tạo phân tán dữ liệu thông báo từ trung tâm tới các cơ sở, ở database của mỗi cơ sở, phần Programmability → Stored Procedures ta sẽ thấy các

Ngày đăng: 07/05/2015, 22:27

Từ khóa liên quan

Mục lục

  • PHẦN MỞ ĐẦU

  • PHẦN NỘI DUNG

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

Tài liệu liên quan