Làm cách nào để cân bằng tải SQL Server 2008 cho các ứng dụng ASP.NET sử dụng cao?


12

Hãy tưởng tượng rằng bạn có một ứng dụng web thành công sử dụng ASP.NET và IIS 7. Nó tạo ra nhiều cuộc gọi đến cơ sở dữ liệu SQL Server 2008 và dự kiến ​​sẽ có sẵn cho công chúng với 99,9% thời gian hoạt động (thời gian chết là 8 giờ, 45 phút mỗi năm).

Mục tiêu của chúng tôi là:

  • Cài đặt Windows Updates trên máy chủ mà không gây ra thời gian chết cho khách hàng của chúng tôi
  • Ngăn chặn sự cố phần cứng trên máy chủ làm chậm các ứng dụng ASP.NET vì hết thời gian

Không giống như cân bằng tải một ứng dụng ASP.NET, SQL cân bằng tải dường như khó khăn hơn nhiều. Thực tiễn tốt nhất của bạn để thiết lập cụm SQL Server 2008 R2 cân bằng tải đơn giản cho Micro-ISV sử dụng ngăn xếp của Microsoft là gì?


Một vài nhận xét: Những gì chúng tôi đã làm là viết các ứng dụng ASP.NET có thể hoạt động ở chế độ "ngoại tuyến" mà không cần kết nối với cơ sở dữ liệu khi hết kết nối. Nó chuyển sang dịch vụ "cơ bản" thay vì ứng dụng đầy đủ tính năng. Tôi cũng đã đọc về cách tiếp cận khỉ Netflix Chaos đầy cảm hứng: readwriteweb.com/cloud/2010/12/ Lời

Hoàn cảnh của bạn là gì? Bạn đang ở trong một môi trường được lưu trữ với các máy chủ hạn chế hoặc bạn đang lưu trữ nội dung của riêng mình với quyền truy cập vào tiền mặt và abiliy để mở rộng số lượng máy chủ của bạn?

@Jay: Giống như nhiều Micro-ISV, chúng tôi có hai máy chủ chuyên dụng đang được chuyển sang lưu trữ Rackspace Cloud. Chúng tôi có thể mua hai hộp SQL Server chuyên dụng nếu cần, nhưng tôi tự hỏi liệu có cách tiếp cận nào tốt hơn không.

Di chuyển cơ sở dữ liệu của bạn vào SQL Azure. Sau đó, bạn được giải phóng khỏi những cơn ác mộng của sự cố máy chủ, mua sắm và cập nhật. Dữ liệu của bạn được sao chép hai lần ngoài bản sao làm việc yuor và khía cạnh cân bằng tải cũng được xử lý cho bạn với một phần chi phí thực tế để thực hiện / quản lý SQL Server, ví dụ: phần cứng, cấp phép phần mềm, thời gian hỗ trợ máy chủ, v.v. .
Brett Rigby

Câu trả lời:


4

Nếu bạn cần sẵn sàng cao, thì Windows / SQL Server Clustering hoặc SQL Server Database Mirroring cung cấp các giải pháp. Phân cụm không đòi hỏi nhiều kế hoạch và làm quen nếu bạn chưa từng làm nó trước đây, nhưng nó sẽ minh bạch cho ứng dụng.

Có thể cân bằng tải với SQL Server, nhưng nó không dành cho những người yếu tim. Đó là một giải pháp sử dụng Cân bằng tải mạng của Windows (NLB) trước Máy chủ SQL. Bản thân các Máy chủ SQL trong NLB sẽ dễ quản lý hơn nếu chúng chỉ đọc, nhưng chúng có thể đọc-ghi nếu bạn sử dụng sao chép giao dịch với các thuê bao có thể cập nhật. Kiểu sao chép này được đánh dấu cho sự phản đối trong phiên bản tương lai.

Một khả năng cuối cùng là Cơ sở dữ liệu được chia sẻ có thể mở rộng, nhưng chúng chắc chắn chỉ đọc.

Đọc thêm:

Hãy xem sách Apress của Allan Hirt về SQL Server 2005 Tính sẵn sàng cao và Bản sao Pro SQL Server 2005/2008 từ Apress.

Cơ sở dữ liệu được chia sẻ có thể mở rộng: http://technet.microsoft.com/en-us/l Library / ms345392.aspx


2

Các hệ thống cơ sở dữ liệu quan hệ hiếm khi được cân bằng tải giống như các máy chủ web. Vấn đề với cách tiếp cận cổ điển để cân bằng tải là tất cả các cơ sở dữ liệu của bạn cần phải được đồng bộ hóa liên tục. Mô hình quan hệ là vô giá trị nếu hai máy chủ không có trạng thái giống hệt nhau tại bất kỳ thời điểm nào.

Từ câu hỏi của bạn, có vẻ như bạn thậm chí không cố gắng thực hiện cân bằng tải, mà chủ yếu là thước đo hiệu suất để đảm bảo rằng chỉ có nhiều người dùng đánh vào từng máy chủ mà máy chủ đó có thể xử lý. Có vẻ như bạn muốn cao thiết lập sẵn sàng . Vì bạn nói rằng bạn đang sử dụng SQL Server, tôi sẽ xem xét các lỗi. Điều này có nghĩa là, nếu cơ sở dữ liệu chính không có sẵn, khách hàng sẽ cố gắng truy cập các máy chủ chuyển đổi dự phòng. SQL Server xử lý việc giữ phiên bản chính và mỗi chuyển đổi dự phòng đồng bộ hóa và cũng xử lý đồng bộ hóa phiên bản chính thành chuyển đổi dự phòng khi phiên bản chính trở lại trực tuyến khi ngoại tuyến.


0

Được rồi, đi thôi. KHÔNG THỂ HOÀN THÀNH. Không phải không có thay đổi ứng dụng.

  • Cài đặt các bản cập nhật - sử dụng phân cụm hoặc phản chiếu để đảm bảo bạn có cơ sở dữ liệu TWO hoạt động hoặc có thể chuyển sang máy tính khác nhanh hơn. Phản ánh mạnh mẽ ưa thích.
  • Viết lại ứng dụng để xử lý việc đó (tức là các kết nối không thành công, cần kết nối lại một cách trong suốt để sau đó kết nối với một bản sao).

Nhận ra bạn vẫn cần gỡ ứng dụng xuống để bảo trì khi bạn triển khai một bản sao mới / thực hiện thay đổi lược đồ db.


0

Một câu trả lời hiệu quả về chi phí ở đây là khá thường xuyên để đệm cơ sở dữ liệu với các dịch vụ ứng dụng lưu trữ tầng máy chủ cân bằng hàng hóa giá rẻ cung cấp xử lý logic và lưu trữ dữ liệu mà nếu không sẽ buộc tài nguyên cơ sở dữ liệu. Rõ ràng điều này đòi hỏi một số suy nghĩ về sự biến động dữ liệu và chiến lược lưu trữ.


-1

Hãy để tôi cung cấp cho bạn một câu trả lời thẩm phán. Nếu mục tiêu của bạn bao gồm "cài đặt bản cập nhật Windows" thì bạn không thể cứu được.

Tôi đã có bộ râu màu xám và có thể nhớ một thời gian khi một ứng dụng có thể chạy 10 năm mà không phải chịu "cập nhật hệ điều hành". Tuổi thọ hữu ích của một ứng dụng được đo bằng nhiều thập kỷ chứ không phải năm.

Vì vậy, lời khuyên của tôi là: thiết lập một phiên bản hoạt động của ứng dụng + cơ sở dữ liệu SQL Server của bạn và TẠO MÁY CHỦ CƠ SỞ TỪ CẬP NHẬT MICROSOFT. Nếu nó không bị hỏng, đừng sửa nó.

Sử dụng đĩa RAID có thể trao đổi nóng.

Có sẵn máy chủ cơ sở dữ liệu hình ảnh phản chiếu (theo đề xuất của TomTom) trong trường hợp phần cứng của bạn bị hỏng.


3
Tim, giống như nói tại sao thậm chí sử dụng cơ sở dữ liệu khi bạn có thể lưu trữ kết quả trong tệp Excel? Có rất nhiều lỗ hổng trong HĐH và việc không cài đặt các bản cập nhật thường xuyên / giữ cho các quy tắc chống vi-rút / tường lửa được cập nhật là lời khuyên tồi. Không nên ở bất kỳ cấp độ.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.