2009-12-19 87 views
7

Tôi đang lên kế hoạch triển khai ứng dụng web của mình cho EC2. Tôi có một số trường hợp máy chủ web. Tôi có 1 trường hợp cơ sở dữ liệu chính. Tôi có 1 thể hiện cơ sở dữ liệu chuyển đổi dự phòng. Tôi cần một chiến lược để chuyển hướng các máy chủ web đến IP trường hợp cơ sở dữ liệu chuyển đổi dự phòng khi cá thể cơ sở dữ liệu chính bị lỗi.Chiến lược chuyển đổi dự phòng máy chủ cơ sở dữ liệu EC2

Tôi đã hy vọng tôi có thể sử dụng IP đàn hồi trong chuỗi kết nối của mình. Tuy nhiên, các máy chủ web không thể truy cập/ping IP Đàn hồi. Tôi có một số ý tưởng bạo lực để giải quyết vấn đề. Tuy nhiên, tôi đang cố gắng tìm ra giải pháp thanh lịch nhất có thể.

Tôi đang sử dụng tất cả .Net và SQL Server. Các chuỗi kết nối của tôi được mã hóa.

Có ai có chiến lược không vượt qua một cá thể cơ sở dữ liệu trong EC2 sử dụng một số hình thức tự động hóa hoặc cấu hình DNS không?

Vui lòng cho tôi biết.

Trả lời

0

đã không được sử dụng EC2 nhưng chắc chắn bạn cần phải hoặc là:

(a) đưa front-end của bạn vào một số chế độ bảo trì tùy chỉnh, mà bạn xác định, trong khi bạn chuyển đổi IP qua; và có giao diện người dùng thực hiện các bước bắt buộc để quản lý toàn vẹn dữ liệu tiềm năng và các vấn đề mất dữ liệu liên quan đến máy chủ trước đó đi xuống và máy chủ mới sắp xuất hiện và rời khỏi chế độ bảo trì tùy chỉnh của bạn

HOẶC hệ thống thời gian:

(b) thiết kế hệ thống ở cấp độ đối tượng/quan hệ và giao dịch từ mặt đất lên để hỗ trợ không vượt thời gian thất bại. Nó không phải là một cái gì đó bạn có thể bolt trên quicjkly để chỉ bất kỳ ứng dụng.

(c) sử dụng một số hỗ trợ cơ sở dữ liệu để tự động chuyển đổi dự phòng. Tôi không biết liệu SQL Server hỗ trợ cho chuyển đổi dự phòng phù hợp cho ứng dụng của bạn tồn tại hay là thích hợp ở đây. Tôi khuyên bạn nên thêm thẻ "sql-server" vào câu hỏi để bắt đầu tìm kiếm đúng đối tượng.

Nếu IP đàn hồi không hoạt động (có vẻ kỳ lạ khi nói ít nhất - bạn không nên nói với EC2 về điều đó), bạn có thể hướng dẫn giao diện người dùng mà cơ sở dữ liệu IP mới sử dụng tại đồng thời khi yêu cầu nó chuyển từ chế độ bảo trì sang chế độ bình thường.

+0

Có thể đáng để đặt câu hỏi trên trang web chị em serverfault.com và/hoặc superuser.com ... – martinr

+0

cảm ơn câu trả lời của bạn. Tôi đã hỏi EC2 .. nhưng họ có hình thức thực sự xấu. Khá nhiều thời gian. (b) Tôi đã ở đó với ứng dụng. Tôi có một giao diện duy nhất để có được/thiết lập IP cho chuỗi kết nối. Vì vậy, tôi có thể thay đổi nó trên bay ... Tôi chỉ hy vọng ai đó đã có một giải pháp DNS thông minh. Tôi sẽ hỏi câu hỏi này trên serverfault.com và xem những gì tôi nhận được. – Dave

0

Nếu bạn sẵn sàng trả thêm một chút tiền, hãy xem công cụ Rightscale's; họ đã xây dựng hình ảnh máy chủ tùy chỉnh và các công cụ hỗ trợ xử lý chuyển đổi dự phòng cơ sở dữ liệu (trong số nhiều thứ khác). This link giải thích làm thế nào để làm điều đó với MySQL, vì vậy hy vọng sẽ cho bạn thấy một số nguyên tắc mặc dù nó không sử dụng SQL Server.

0

Tôi luôn luôn nghĩ là có khả năng này trong chuỗi connnection

này được thực hiện (nhưng chưa được kiểm tra) từ How to add Failover Partner to a connection string in VB.NET:

Nếu bạn kết nối với ADO.NET hoặc SQL Native Client đến một cơ sở dữ liệu được được nhân đôi, ứng dụng của bạn có thể tận dụng khả năng của trình điều khiển để tự động chuyển hướng kết nối khi xảy ra sự cố phản chiếu chuyển đổi dự phòng .Bạn phải chỉ định máy chủ và cơ sở dữ liệu chính ban đầu trong chuỗi kết nối và máy chủ đối tác chuyển đổi dự phòng .

Data Source=myServerAddress;Failover Partner=myMirrorServerAddress; 
Initial Catalog=myDataBase;Integrated Security=True; 

Có ofcourse nhiều cách khác để viết chuỗi kết nối sử dụng cơ sở dữ liệu phản ánh, đây chỉ là một ví dụ chỉ ra những failover chức năng. Bạn có thể kết hợp này với các chuỗi kết nối khác các tùy chọn có sẵn.

0

Để mở rộng câu trả lời của gareth, phần mềm quản lý đám mây thường giải quyết loại sự cố này. RightScale là một trong số họ, nhưng bạn có thể thử enStratus hoặc Scalr (từ chối trách nhiệm: Tôi làm việc tại Scalr). Những công cụ này cung cấp các giải pháp failover như:

  • sao lưu: bạn có thể lên lịch chụp tự động của khối lượng EBS chứa dữ liệu cơ sở dữ liệu
  • fault-tolerant: trong trường hợp thất bại, một nô lệ được đề bạt tổng thể và gắn kết lưu trữ sẽ được chuyển nếu tổng thể không thành thạo và bản gốc mới nằm trong cùng một AZ hoặc một ảnh chụp nhanh về khối lượng

Nếu bạn muốn xây dựng giải pháp của riêng mình, bạn có thể nhân rộng quy trình chi tiết bên dưới mà chúng tôi sử dụng tại Scalr:

  • Có nô lệ nào trong cùng một AZ không? Nếu có, hãy thúc đẩy nó, chuyển đổi EBS khối lượng (được giới hạn ở một AZ), chuyển đổi bất kỳ ElasticIP nào mà bạn có thể có, cấu hình lại bản sao của các nô lệ còn lại.
  • Nếu không, có một nô lệ được sao chép đầy đủ trong AZ khác không? Nếu có, hãy quảng bá nó, rồi làm như trên.
  • Nếu không có nô lệ trong cùng AZ, và không có nô lệ hoàn toàn sao chép trong AZ khác, sau đó tạo ảnh chụp nhanh từ khối lượng của chủ và sử dụng ảnh chụp nhanh này để tạo một ổ đĩa mới trong AZ nơi nô lệ đang chạy. Sau đó làm điều trên.
Các vấn đề liên quan