SQL Server tương đương với chức năng của Oracle RAC? [đóng cửa]


11

Tôi đã làm một số Google và không thể tìm thấy câu trả lời cho câu hỏi này gần đây hơn một vài năm trước, vì vậy tôi nghĩ tôi đã hỏi. Tính năng RAC của Oracle cung cấp tính năng cân bằng tải cho cả giao dịch đọc và ghi, cũng như mở rộng quy mô và tính sẵn sàng cao mà không có thời gian chết (ít nhất, như tôi hiểu - chúng tôi sắp triển khai cơ sở dữ liệu đầu tiên sử dụng RAC, vì vậy chúng tôi Tôi sẽ xem mọi thứ diễn ra như thế nào).

Có bộ tính năng SQL Server nào (hoặc thành phần bên thứ ba mà bạn có thể cài đặt ở trên cùng) mang lại chức năng tương đương không? Chúng tôi đã luôn sử dụng phân cụm Windows, trong đó một sự kiện chuyển đổi dự phòng gây ra khoảng 20-30 giây thời gian chết SQL - luôn có thể chấp nhận được, nhưng không lý tưởng. Giờ đây, với Luôn luôn trong SQL 2012, SQL Server thu nhỏ khoảng 15 giây và thêm khái niệm cơ sở dữ liệu chỉ đọc, nhưng họ vẫn yêu cầu các giao dịch ghi bị bóp nghẹt thông qua một điểm kết nối duy nhất (được cải thiện nhiều, vì nhiều giao dịch được chỉ đọc, nhưng vẫn không thực sự cân bằng tải), và trong trường hợp lỗi nút hoặc cần phải vá, vẫn còn thời gian chết.

Tôi cho rằng nó chỉ gây tò mò hơn - tôi cảm thấy như đây là lĩnh vực duy nhất mà SQL Server đứng sau Oracle (ít nhất là trong số các tính năng mà cá nhân tôi từng thấy sử dụng). Tôi muốn xem liệu có bất kỳ tùy chọn nào ngoài đó để thu hẹp khoảng cách đó và có thể cải thiện việc triển khai SQL Server của chúng tôi hay không trong khi chúng tôi chờ tính năng tương đương của Microsoft được thêm vào - có thể trong SQL 2014/2015?


1
Tôi không chắc SQL Server thực sự thua xa Oracle. Vâng, vâng, nó có một tính năng mà SQL Server không có, nhưng hãy chắc chắn xem lại chủ đề này sau khi bạn đã chạy nó được vài tháng và cho chúng tôi biết nếu đó là tất cả hoa hồng hay không. :-) Tôi cũng không có kinh nghiệm với nó, nhưng những đồng nghiệp không phải lúc nào cũng có những điều tốt đẹp để nói về nó.
Aaron Bertrand

2
Ngoài ra, tôi hy vọng bạn không mong đợi bất kỳ suy đoán chính xác nào về các tính năng trong các phiên bản SQL Server trong tương lai. Những người biết có hay không có bất kỳ tính năng nào như vậy trong giai đoạn lập kế hoạch không thể cho bạn biết; những người không thể nói với bạn. :-)
Aaron Bertrand

1
@AaronBertrand: Đủ công bằng, tôi không thực sự mong đợi bất kỳ suy đoán tính năng nào, vì tôi nhận ra rằng nó sẽ không chính xác chút nào. Mặc dù Luôn luôn là một cải tiến (trong một số trường hợp), tôi đã hy vọng cao hơn rằng nó sẽ sao chép chặt chẽ hơn chức năng của RAC và thu hẹp khoảng cách đó. MSSQL thực hiện một số điều tốt hơn so với Oracle, theo ý kiến ​​của tôi, nhưng đây là một lĩnh vực mà Oracle giữ dùi cui, theo ý kiến ​​của tôi.
SqlRyan

1
@rwmnau một lần nữa, tôi khuyên bạn nên giữ lời khen ngợi rực rỡ về RAC cho đến khi bạn thực hiện nó và đã sử dụng nó trong một vài tháng. :-) Bạn có thể đúng; nó có thể là tất cả mọi thứ nó hứa và làm việc hoàn hảo cho bạn. Nhưng bạn có thể bị xáo trộn bởi ánh sáng lấp lánh trên hộp. :-)
Aaron Bertrand

2
@AaronBertrand: Ha, lấy điểm. Tôi đã nghe một số lời chỉ trích, như là nó quá nhạy cảm về độ trễ của mạng và nhanh chóng để loại bỏ các nút và như vậy, vì vậy tôi chắc chắn giữ toàn bộ phán quyết cho đến khi chúng tôi sử dụng nó và tôi đã sử dụng nó trước . SQL Server, trong khi nó có một số tùy chọn HA, dường như không chuyển sang không gian "nhiều mặt trước có thể ghi". Có lẽ tôi sắp khám phá lý do tại sao :)
SqlRyan

Câu trả lời:


8

Không, không có gì trong SQL Server có thể cung cấp cho bạn điều tương tự ngoài hộp .

Hiện tại, công nghệ SQL Server duy nhất cho phép ghi đồng thời tại nhiều nút là sao chép ngang hàng . Lưu ý rằng tôi không nói "ghi tỷ lệ", vì nó hoạt động theo cách sao cho toàn bộ hệ thống có khả năng ghi chỉ một nút. Đoạn giới thiệu của trang đó được diễn đạt cẩn thận để bao gồm cụm từ "scale-out" mà không cần nói "write scale-out". Yay cho tiếp thị-nói.

Từ những gì tôi đã đọc , Oracle RAC cũng giống như vậy. Về mặt chức năng, điều duy nhất còn thiếu của SQL Server trong cấu hình này là giải pháp cân bằng tải, vừa là lợi thế (bạn có thể thực hiện theo bất kỳ cách nào bạn muốn) vừa là nhược điểm (không có trong hộp hoặc được Microsoft hỗ trợ) khi so sánh với các sản phẩm cạnh tranh.

Ngược lại, Oracle RAC không cung cấp cho bạn những điều tương tự như SQL Server ra khỏi hộp hoặc. Ví dụ, RAC được khuyến nghị triển khai với các nút trong phạm vi 100km với nhau do độ trễ mạng thời gian thực, trong khi sao chép ngang hàng không có hạn chế như vậy. (Tôi không nói một giải pháp nào tốt hơn giải pháp kia: Tôi chỉ chỉ ra rằng chúng khác nhau. Doanh nghiệp nên chọn giải pháp phù hợp nhất với nhu cầu cụ thể của họ.)


1
Lý do chính cho điều 100km là do Oracle vẫn tuân thủ ACID giữa các nút - họ cần liên lạc với nhau qua kết nối tốc độ cao và tốc độ ánh sáng trở thành một vấn đề. SQL Server trong một cấu hình tương tự truyền các thay đổi và bạn có thể nhận được xung đột ở cấp hàng nếu hai nút cập nhật cùng một hàng trong một khoảng thời gian nhất định - không phải ACID - không phải là một cơ sở dữ liệu. Một tập hợp các thể hiện RAC là một cơ sở dữ liệu duy nhất, đó là điểm khác biệt.
Philᵀᴹ

@Phil: Đúng, đó là quan điểm của tôi - chúng khác nhau.
Jon Seigel

6

Tôi là một DBA hỗ trợ cả SQL 2000-2012, Oracle 11g và Oracle 11g RAC.

IMO, Các nhóm luôn sẵn sàng trong SQL 2012 rất gần với tính khả dụng và khả năng mở rộng của RAC với chi phí thấp hơn nhiều về cả đô la và độ phức tạp. Bạn có thể mở rộng quy mô đọc bằng cách truy vấn các máy nhân bản, nhưng bạn muốn hướng tất cả DML đến máy chủ chính (máy chủ SQL Server không thể được cập nhật). Nếu máy chủ SQL chính gặp sự cố, chuyển đổi dự phòng sang một trong các máy nhân bản là gần như tức thời. RAC gặp phải tình trạng tạm dừng tương tự nếu một nút gặp sự cố khi các giao dịch không được cam kết trên nút bị lỗi được quay lại bởi nút còn sống.

Ưu điểm lớn nhất (IMHO) của SQL 2012 AAAG so với RAC là nó là một kiến ​​trúc không chia sẻ. RAC chia sẻ lưu trữ. Nếu thất bại, toàn bộ cụm bị hỏng. Đó là một SPOF khổng lồ trong RAC mà mọi người dường như quên mất. Nếu bạn muốn tự bảo vệ mình trước điều đó, bạn cần thiết lập một máy chủ dự phòng. Nếu bạn muốn đó là RAC, chi phí sẽ tăng thêm.


1
Điểm tốt trên SPOF của RAC.
StanleyJohns

5

Câu trả lời thẳng cho câu hỏi của bạn là không, SQL Server không có chức năng tương đương. Có những khía cạnh của SQL Server cung cấp cho bạn loại dung sai thất bại mà bạn muốn (thậm chí xa như SQL Server 2005 khi sử dụng phản chiếu DB và ứng dụng nhận biết gương), nhưng không có tỷ lệ 1: 1 với Oracle RAC.


1

Một so sánh tốt hơn về Luôn luôn sẽ là tính năng Data Guard của Oracle. Phân cụm chủ động-thụ động. (vâng, bạn có thể đọc từ chế độ chờ, nhưng nó chỉ được đọc, do đó vẫn chỉ có một nút được kích hoạt ")

Oracle RAC là một động vật hoàn toàn khác biệt và phân cụm hoạt động tích cực. Tôi đã không thấy bất kỳ động thái nào nếu Microsoft muốn thực hiện điều đó.


-2

SQL Server 2012/2014 với Luôn luôn bổ sung rất nhiều khả năng giúp bạn đến gần với Oracle RAC - và trong một số trường hợp, hãy cải thiện nó. (Nhắc lại rằng với RAC, bạn cần sử dụng máy chủ ứng dụng Oracle, weblogic và JDBC - cộng với hoạt động trong một trung tâm dữ liệu duy nhất và ứng dụng chỉ có thể kết nối với một cụm RAC - lưu trữ được chia sẻ có nghĩa là RAC không hoạt động trong đám mây) .

Với Luôn luôn, bạn nhận được các thư mục thứ hai chỉ đọc (4 trong 12, 8 trong 14) và hỗ trợ chuyển đổi dự phòng tự động. Mặc dù vậy, vẫn có một vài điều khó khăn - Luôn luôn không hỗ trợ cân bằng tải - trừ khi bạn viết một tập lệnh, nó sẽ luôn vẽ máy chủ đầu tiên trong danh sách. Failover cũng tác động đến ứng dụng - nó không minh bạch nên các ứng dụng có thể phải được khởi động lại.

Tiết lộ đầy đủ - Tôi làm việc cho một công ty sản xuất phần mềm luôn luôn gia tăng. Phần mềm cân bằng tải cơ sở dữ liệu của chúng tôi kết thúc SQL Server - nó phân chia đọc / ghi thay mặt cho ứng dụng, cân bằng tải dựa trên thời gian đáp ứng kéo dài trung tâm dữ liệu và hàng đợi ghi / giao dịch trong khi chuyển đổi dự phòng để ứng dụng không gặp lỗi . Xem cách Microsoft, Dell, Quicken Loans và các doanh nghiệp khác đang sử dụng phần mềm ScaleArc để tăng cường SQL Server Luôn luôn và có được các khả năng giống như RAC mà không có thay đổi ứng dụng.

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.