Saya melakukan beberapa Googling dan tidak dapat menemukan jawaban untuk pertanyaan ini lebih baru daripada beberapa tahun yang lalu, jadi saya pikir saya akan bertanya. Fitur RAC Oracle menawarkan load-balancing untuk transaksi baca dan tulis, serta skala dan ketersediaan tinggi tanpa downtime (setidaknya, seperti yang saya mengerti - kami akan menggunakan basis data pertama kami yang menggunakan RAC, jadi kami akan lihat bagaimana kelanjutannya).
Apakah ada set fitur SQL Server (atau komponen pihak ketiga yang dapat Anda instal di atas) yang memberikan fungsionalitas yang setara? Kami selalu menggunakan pengelompokan Windows, di mana acara failover menyebabkan sekitar 20-30 detik downtime SQL - selalu dapat ditoleransi, tetapi tidak ideal. Sekarang, dengan AlwaysOn di SQL 2012, SQL Server mengecilkan itu menjadi sekitar 15 detik dan menambahkan konsep database read-only-secondary, tetapi mereka masih mengharuskan transaksi tulis tersendat melalui titik koneksi tunggal (lebih ditingkatkan, karena banyak transaksi baru saja membaca, tetapi masih belum benar-benar memuat balancing), dan dalam kasus kegagalan simpul atau kebutuhan untuk menambal, masih ada downtime.
Saya kira itu hanya lebih penasaran - Saya merasa seperti ini adalah satu-satunya area yang SQL Server tertinggal dari Oracle (setidaknya di antara fitur yang saya pribadi lihat digunakan). Saya ingin melihat apakah ada opsi di luar sana untuk menutup celah itu dan mungkin meningkatkan penyebaran SQL Server kami sendiri sementara kami menunggu fitur setara Microsoft ditambahkan - mungkin dalam SQL 2014/2015?
Jawaban:
Tidak, tidak ada dalam SQL Server yang dapat memberi Anda hal yang sama di luar kotak .
Saat ini, satu-satunya teknologi SQL Server yang memungkinkan penulisan simultan di banyak node adalah replikasi Peer-to-Peer . Perhatikan bahwa saya tidak mengatakan "write scale-out," karena ia berfungsi sedemikian rupa sehingga seluruh sistem hanya memiliki kapasitas menulis satu simpul saja. Paragraf pengantar dari halaman tersebut ditulis dengan hati-hati untuk memasukkan istilah "skala-out" tanpa mengatakan "skala-tulis". Yay untuk berbicara pemasaran.
Dari apa yang saya baca , Oracle RAC adalah sama dalam hal itu. Secara fungsional, satu-satunya hal yang hilang dari SQL Server dalam konfigurasi ini adalah solusi load-balancing, yang merupakan keuntungan (Anda dapat mengimplementasikannya dengan cara apa pun yang Anda inginkan) dan kerugian (tidak ada di dalam kotak atau didukung oleh Microsoft) saat membandingkan dengan produk pesaing.
Sebaliknya, Oracle RAC tidak memberikan hal yang sama seperti SQL Server di luar kotak baik. Sebagai contoh, RAC direkomendasikan untuk diimplementasikan dengan node dalam jarak 100 km satu sama lain karena latensi jaringan waktu nyata, sedangkan replikasi Peer-to-Peer tidak memiliki batasan seperti itu. (Saya tidak mengatakan satu solusi lebih baik dari solusi yang lain: Saya hanya menunjukkan bahwa mereka berbeda. Bisnis harus memilih solusi yang paling sesuai dengan kebutuhan spesifik mereka.)
sumber
Saya seorang DBA yang mendukung SQL 2000-2012, Oracle 11g, dan Oracle 11g RAC.
IMO, Grup Ketersediaan Selalu Aktif di SQL 2012 datang sangat dekat dengan ketersediaan dan skalabilitas RAC dengan biaya yang jauh lebih sedikit dalam dolar dan kompleksitas. Anda dapat mengurangi pembacaan dengan kueri terhadap mirror, tetapi Anda ingin mengarahkan semua DML ke server utama (Mirror SQL Server tidak dapat diperbarui). Jika SQL Server utama crash, failover ke salah satu mirror hampir instan. RAC mengalami jeda yang sama jika sebuah simpul macet karena transaksi yang tidak terikat pada simpul yang gagal diputar kembali oleh simpul yang masih hidup.
Keuntungan terbesar (IMHO) dari SQL 2012 AAAG atas RAC adalah bahwa itu adalah arsitektur shared-nothing. RAC membagikan penyimpanan. Jika itu gagal, seluruh kluster turun. Itu adalah SPOF besar dalam RAC yang tampaknya dilupakan oleh semua orang. Jika Anda ingin melindungi diri dari hal itu, Anda harus menyiapkan server siaga. Jika Anda ingin itu menjadi RAC, biaya semakin diperparah.
sumber
Jawaban langsung untuk pertanyaan Anda adalah tidak, SQL Server tidak memiliki fungsi yang setara. Ada beberapa aspek dari SQL Server yang memberikan Anda toleransi kegagalan yang Anda inginkan (bahkan sejauh SQL Server 2005 saat menggunakan DB mirroring dan aplikasi mirror-aware), tetapi tidak ada 1: 1 dengan Oracle RAC.
sumber
Perbandingan yang lebih baik dari AlwaysOn adalah fitur Penjaga Data Oracle. Pengelompokan aktif-pasif. (ya, Anda dapat membaca dari standby, tetapi hanya baca, jadi masih hanya satu simpul yang aktif ")
Oracle RAC adalah hewan yang sama sekali berbeda, dan pengelompokan aktif-aktif. Saya tidak melihat langkah apa pun jika Microsoft ingin menerapkannya.
sumber
SQL Server 2012/2014 dengan AlwaysOn menambahkan banyak kemampuan yang membuat Anda dekat dengan Oracle RAC - dan dalam beberapa kasus meningkatkannya. (Ingatlah bahwa dengan RAC, Anda harus menggunakan server aplikasi Oracle, weblogic, dan JDBC - plus yang beroperasi di pusat data tunggal dan aplikasi dapat terhubung ke hanya satu cluster RAC - penyimpanan bersama berarti RAC tidak berfungsi di cloud) .
Dengan AlwaysOn Anda mendapatkan sekunder hanya-baca (4 dalam 12, 8 dalam 14) dan dukungan failover otomatis. Namun ada beberapa hal yang menantang - AlwaysOn tidak mendukung load balancing - kecuali Anda menulis skrip, itu akan selalu menarik server pertama dalam daftar. Failover juga memengaruhi aplikasi - tidak transparan sehingga aplikasi mungkin harus dimulai ulang.
Pengungkapan penuh - Saya bekerja untuk perusahaan yang membuat perangkat lunak yang menambah AlwaysOn. Bagian depan perangkat lunak penyeimbang beban basis data kami berakhir dengan SQL Server - ia melakukan split baca / tulis atas nama aplikasi, melakukan penyeimbangan beban berdasarkan waktu respons yang mencakup pusat data, dan antrian penulisan / transaksi selama failover sehingga aplikasi tidak melihat kesalahan . Lihat bagaimana Microsoft, Dell, Quicken Loans, dan perusahaan lain menggunakan perangkat lunak ScaleArc untuk menambah SQL Server AlwaysOn dan mendapatkan kemampuan seperti RAC tanpa perubahan aplikasi.
sumber