2011-01-19 26 views
5

Tôi có kịch bản này:kiến ​​trúc cho tính khả dụng cao

Bạn có một dây chuyền xử lý nhà máy chạy 24/7. Thời gian ngừng hoạt động cực kỳ tốn kém. Phần mềm kiểm soát tất cả các bộ phận khác nhau phải sử dụng hình thức lưu trữ cơ sở dữ liệu chung Lý do chính cho việc này là biết trạng thái của nhà máy. Ví dụ: một số sản phẩm có thể được trộn lẫn khi sử dụng cùng một bộ trang bị và các sản phẩm khác KHÔNG PHẢI .

yêu cầu:

  • Tôi muốn phần mềm có thể phát hiện rằng một lỗi trong một phần của nhà máy phải dẫn đến một số máy shutdown hơn sau đó 1 km. do đó, dữ liệu stoing trong plc không phải là một lựa chọn.
  • Cập nhật và nâng cấp lên môi trường nhà máy thường xuyên là
  • tải (theo thuật ngữ máy tính) sẽ rất thấp.

Hệ thống xử lý một vài bài tập hunderd một ngày để tính toán/kiểm tra được thực hiện theo hướng dẫn gửi cho máy của nhà máy. Hệ thống sẽ chán hầu hết thời gian. Yêu cầu quan trọng nhất là hệ thống máy tính trung tâm phải chính xác và luôn hoạt động.

Tôi đã suy nghĩ để sử dụng một cơ sở dữ liệu dựa dynamo (riak hoặc cassandra), nơi dữ liệu được ghi vào nhiều máy tính với mỗi máy có toàn bộ cơ sở dữ liệu

Khi một hệ thống đi xuống nó sẽ đi xuống unoticed. Một databse sql truyền thống có thể là nhiều hơn một nỗi đau để nâng cấp khi thay đổi bảng và nô lệ chủ này là khó khăn hơn để cấu hình.

Giải pháp của bạn là gì?

Mạng đã được thực hiện dự phòng và hầu hết các điểm khác không thành công. Hệ thống cơ sở dữ liệu là rất quan trọng vì thời gian ngừng hoạt động của db nghĩa là thời gian ngừng hoạt động cho toàn bộ nhà máy không chỉ là một trong các máy được chấp nhận.

  • Cách giải quyết sự cố trạng thái được chia sẻ.
  • sự phức tạp trong cơ sở dữ liệu sẽ không thành vấn đề. Tôi sẽ giống như một cửa hàng giá trị khóa đơn giản để có được dữ liệu mới nhất và chính xác nhất.
+2

đây có thể là câu hỏi hay hơn cho serverfault.com – msarchet

+0

Tôi bị chia nhỏ. Nếu bạn cảm thấy cần di chuyển, bỏ phiếu hoặc @Stephan có thể hỏi. – Will

Trả lời

3

Tôi không nghĩ đây là câu hỏi sql/nosql. Tất cả Postgres, MySQL và MS SQL Server đều có một số tùy chọn cluster hoặc hot standby.

Cấu hình là điều một lần, nhưng bất kỳ tùy chọn NoSQL nào cũng sẽ khiến bạn đau đầu từ đầu đến cuối mã, nếu bạn đang cố gắng làm một điều gì đó về cơ bản quan hệ trên nền tảng đã từ bỏ quan hệ mục đích chạy những thứ như Amazon hoặc Facebook. Cấu hình là một lần, mã hóa là mãi mãi.

Vì vậy, tôi sẽ nói với một giải pháp đã cố gắng và thực sự và nhận được bản sao nóng đó.

Điều này cũng cung cấp giải pháp để nâng cấp. Trình tự điển hình là "không thành công" sang chế độ chờ, nâng cấp bản gốc, lật lại chủ, nâng cấp chế độ chờ và tiếp tục lại. Với các chi tiết cụ thể cho tình hình của khóa học.

+0

Làm cách nào để nâng cấp nosql? Bạn có thể giải thích phần đau đầu không? – Stephan

+0

Nhức đầu nằm trong đoạn mã. NoSQL với Map/Reduce của nó là đặc biệt về các tài liệu, không có cấu trúc cố định cho các thuộc tính của chúng. Nếu bạn đang chạy một nhà máy gần như không thể tưởng tượng bạn đang làm một cái gì đó tài liệu theo định hướng. Thứ đó là quan hệ. Vì vậy, các cơn đau đầu đến trong cố gắng để buộc-phù hợp với một nhu cầu quan hệ vào một giải pháp tài liệu theo định hướng. –

2

Sử dụng một RDBMS thành lập để hỗ trợ những việc như vậy natively

Bạn có thực sự muốn chạy một hệ thống nhiệm vụ quan trọng 24/7 trên cái gì mà thể phù hợp tại bất kỳ thời điểm nào?

+1

RDBMS nào hỗ trợ những thứ như vậy? – Stephan

+0

Oracle, SQL Server, Sybase, không chắc chắn về postgres hoặc mysql – gbn

1

Bạn cần tránh các điểm lỗi duy nhất.

Tất cả những người chơi chính trong thế giới dbms của chúng tôi đều cung cấp ít nhất một cách để tránh làm cho cơ sở dữ liệu trở thành một điểm thất bại duy nhất. Tôi có thể đặt câu hỏi liệu họ có thể tuyên truyền các thay đổi đủ nhanh cho các quy trình sản xuất của bạn hay không. (Hoặc là dữ liệu cập nhật không thực sự là một vấn đề? Không thể thực sự nói từ câu hỏi của bạn.) Công việc db của tôi trong sản xuất được giới hạn trong xe hơi và công nghiệp hóa chất. Miligiây không quan trọng đối với họ.

Nhưng dbms không phải là thứ duy nhất có thể thất bại. "Luôn làm việc" có nghĩa là khách hàng phải luôn luôn làm việc. Phần cứng máy khách, các kết nối tới mạng, mạng và các máy chủ mạng đều có thể có một điểm lỗi. Máy chủ không thể chịu được nhiều nguồn cấp điện, nhiều NIC, v.v.

"Luôn hoạt động" thực sự tốn kém. Tôi có cảm giác rằng cơ sở dữ liệu không phải là vấn đề lớn nhất đối với công ty của bạn.

+0

thời gian chết của cơ sở dữ liệu hiện tại có nghĩa là thời gian chết cho toàn bộ nhà máy. mà cần phải được avioded. Các hệ thống trên 'cạnh' của hệ thống có thể giảm trong vài giờ. – Stephan

+0

Tôi hiểu về thời gian ngừng hoạt động của cơ sở dữ liệu. Tôi chỉ có nghĩa là phần cứng và truyền thông 24/7 có thể khó thực hiện hơn cơ sở dữ liệu 24/7. Hầu hết các doanh nghiệp cấp SQL dbms hỗ trợ hoạt động 24/7 ngay ra khỏi hộp ngày nay - nóng chờ, nhân rộng, cụm, các công cụ như thế. –