SQL Server เทียบเท่ากับการทำงานของ Oracle RAC? [ปิด]


11

ฉันทำ Googling แล้วและไม่สามารถหาคำตอบสำหรับคำถามนี้ได้เมื่อไม่กี่ปีที่ผ่านมาดังนั้นฉันจึงคิดว่าฉันจะถาม ฟีเจอร์ RAC ของออราเคิลนำเสนอการทำโหลดบาลานซ์สำหรับทั้งการอ่านและการเขียนธุรกรรมรวมถึงการเพิ่มขนาดและความพร้อมใช้งานสูงโดยไม่ต้องหยุดทำงาน (อย่างน้อยที่สุดเท่าที่ฉันเข้าใจ) - เรากำลังจะปรับใช้ฐานข้อมูลแรกของเราที่ใช้ RAC จะดูว่ามันจะไป)

มีชุดคุณลักษณะของ SQL Server (หรือส่วนประกอบของบุคคลที่สามที่คุณสามารถติดตั้งด้านบน) ที่ให้ฟังก์ชันการทำงานที่เทียบเท่าหรือไม่ เรามักจะใช้การทำคลัสเตอร์ Windows ซึ่งเหตุการณ์ที่เกิดความล้มเหลวเป็นสาเหตุของการหยุดทำงานของ SQL ประมาณ 20-30 วินาทีซึ่งสามารถทนได้ แต่ไม่เหมาะ ขณะนี้ด้วย AlwaysOn ใน SQL 2012, SQL Server จะลดขนาดลงเหลือประมาณ 15 วินาทีและเพิ่มแนวคิดของฐานข้อมูลแบบอ่านอย่างเดียวรอง แต่พวกเขายังต้องการให้การเขียนธุรกรรมถูกสำลักผ่านจุดเชื่อมต่อจุดเดียว (ปรับปรุงมากเนื่องจากธุรกรรมจำนวนมาก เพิ่งอ่าน แต่ยังไม่โหลดสมดุลจริง ๆ ) และในกรณีที่โหนดล้มเหลวหรือจำเป็นต้องแก้ไขยังมีการหยุดทำงาน

ฉันคิดว่ามันเป็นความอยากรู้อยากเห็นมากขึ้น - ฉันรู้สึกว่านี่เป็นพื้นที่เดียวที่ SQL Server อยู่หลัง Oracle (อย่างน้อยก็ในบรรดาคุณสมบัติที่ฉันเคยเห็นมาก่อน) ฉันต้องการดูว่ามีตัวเลือกอะไรบ้างที่จะปิดช่องว่างนั้นและอาจปรับปรุงการปรับใช้ SQL Server ของเราเองในขณะที่เรารอให้คุณสมบัติที่เทียบเท่าของ Microsoft ถูกเพิ่มเข้ามาหรืออาจเป็นใน SQL 2014/2015


1
ฉันไม่แน่ใจว่า SQL Server กำลังล้มเหลวหลัง Oracle อย่างมาก ใช่แล้วมันมีคุณสมบัติ SQL Server ที่ไม่ได้ แต่ให้แน่ใจว่าได้ทบทวนหัวข้อนี้อีกครั้งหลังจากที่คุณใช้งานมาสองสามเดือนและแจ้งให้เราทราบว่าเป็นกุหลาบทั้งหมดหรือไม่ :-) ฉันไม่เคยมีประสบการณ์กับมัน แต่เพื่อนร่วมงานที่ไม่เคยมีสิ่งดีๆที่จะพูดเกี่ยวกับมัน
แอรอนเบอร์ทรานด์ด์

2
นอกจากนี้ฉันหวังว่าคุณจะไม่คาดหวังการเก็งกำไรที่ถูกต้องเกี่ยวกับคุณสมบัติใน SQL Server เวอร์ชันในอนาคต ผู้ที่รู้ว่ามีคุณสมบัติดังกล่าวในช่วงการวางแผนไม่สามารถบอกคุณได้ ผู้ที่ไม่สามารถบอกคุณได้เช่นกัน :-)
Aaron Bertrand

1
@AaronBertrand: ยุติธรรมพอฉันไม่ได้คาดหวังว่าจะมีการเก็งกำไรเกี่ยวกับฟีเจอร์ใด ๆ เพราะฉันรู้ว่ามันไม่แม่นยำเลย ในขณะที่ AlwaysOn เป็นการปรับปรุง (ในบางกรณี) ฉันหวังว่ามันจะทำซ้ำการทำงานของ RAC และปิดช่องว่างนั้น MSSQL ทำสิ่งต่าง ๆ ได้ดีกว่า Oracle ในความคิดของฉัน แต่นี่เป็นสิ่งหนึ่งที่ Oracle ถือกระบองในความคิดของฉัน
SqlRyan

1
@rwmnau อีกครั้งฉันขอแนะนำให้คุณชม RAC ที่เปล่งประกายของคุณจนกว่าคุณจะนำไปใช้และใช้งานมาสองสามเดือน :-) คุณอาจพูดถูก มันอาจเป็นทุกอย่างที่มันสัญญาและทำงานอย่างสมบูรณ์แบบสำหรับคุณ แต่คุณอาจถูกลวงด้วยประกายแวววาวบนกล่อง :-)
แอรอนเบอร์ทรานด์

2
@AaronBertrand: ฮาจุดยึด ฉันได้ยินเสียงวิพากษ์วิจารณ์หลายอย่างเช่นมันไวเกินไปเกี่ยวกับเวลาแฝงของเครือข่ายและมันรวดเร็วในการขับไล่โหนดและสิ่งเหล่านี้ดังนั้นฉันจึงต้องตัดสินใจอย่างเต็มที่จนกระทั่งหลังจากที่เราเผยแพร่ออกมาและฉันใช้มันโดยตรง . SQL Server ในขณะที่มีตัวเลือก HA จำนวนมากดูเหมือนจะไม่ได้ย้ายเข้าไปในพื้นที่ "หลายส่วนหน้าเขียนได้" บางทีฉันอาจจะค้นพบเหตุผลว่าทำไม :)
SqlRyan

คำตอบ:


8

ไม่ไม่มีอะไรใน SQL Server ที่สามารถให้สิ่งเดียวกันกับคุณได้

ปัจจุบันมีเพียงเทคโนโลยี SQL Server ที่ช่วยให้การเขียนพร้อมกันในหลายโหนดคือการจำลองแบบ Peer-to-Peer โปรดทราบว่าฉันไม่ได้พูดว่า "write scale-out" เพราะมันทำงานในลักษณะที่ระบบทั้งหมดมีความสามารถในการเขียนเพียงโหนดเดียว ย่อหน้าเกริ่นนำของหน้านั้นมีการใช้คำอย่างระมัดระวังเพื่อรวมคำว่า "การขยาย" โดยไม่พูดว่า Yay สำหรับการตลาดพูด

จากสิ่งที่ฉันได้อ่าน Oracle RAC ก็เหมือนกันในแง่นั้น ในทางปฏิบัติสิ่งเดียวที่ขาดหายไปจาก SQL Server ในการกำหนดค่านี้คือโซลูชันการปรับสมดุลโหลดซึ่งเป็นทั้งข้อดี (คุณสามารถใช้งานได้ตามที่คุณต้องการ) และเป็นข้อเสีย (ไม่ได้อยู่ในกล่องหรือรองรับโดย Microsoft) เมื่อ เปรียบเทียบกับผลิตภัณฑ์คู่แข่ง

ตรงกันข้าม Oracle RAC ไม่ได้ให้คุณเป็นสิ่งเดียวกับ SQL Server ออกจากกล่องอย่างใดอย่างหนึ่ง ตัวอย่างเช่นแนะนำให้ RAC นำไปใช้กับโหนดภายในระยะทาง 100 กม. เนื่องจากความหน่วงแฝงของเครือข่ายเรียลไทม์ในขณะที่การจำลองแบบ Peer-to-Peer ไม่มีข้อ จำกัด ดังกล่าว (ฉันไม่ได้บอกว่าทางออกหนึ่งดีกว่าอีกโซลูชัน: ฉันแค่ชี้ให้เห็นว่าพวกเขาแตกต่างธุรกิจควรเลือกโซลูชันที่เหมาะสมกับความต้องการเฉพาะของพวกเขามากที่สุด)


1
เหตุผลหลักสำหรับสิ่งที่ 100km เป็นเพราะ Oracle ยังคงเป็นไปตาม ACID ข้ามโหนด - พวกเขาจำเป็นต้องสื่อสารกับแต่ละอื่น ๆ ผ่านการเชื่อมต่อความเร็วสูงและความเร็วของแสงกลายเป็นปัญหา SQL Server ในการกำหนดค่าที่คล้ายคลึงกันเผยแพร่การเปลี่ยนแปลงและคุณสามารถรับข้อขัดแย้งในระดับแถวได้หากสองโหนดอัปเดตแถวเดียวกันภายในระยะเวลาหนึ่ง - ไม่ใช่ ACID - ไม่ใช่ฐานข้อมูลเดียว ชุดของอินสแตนซ์ RAC เป็นฐานข้อมูลเดียวนั่นคือความแตกต่าง
ฟิลิป

@ ฟิล: ใช่นั่นคือประเด็นของฉัน - พวกเขาแตกต่างกัน
Jon Seigel

6

ฉันเป็น DBA ที่สนับสนุนทั้ง SQL 2000-2012, Oracle 11g และ Oracle 11g RAC

IMO, กลุ่มความพร้อมใช้งานตลอดเวลาใน SQL 2012 มาใกล้เคียงกับความพร้อมใช้งานและความสามารถในการปรับขนาดของ RAC ในราคาที่ถูกลงทั้งในสกุลเงินดอลลาร์และความซับซ้อน คุณสามารถขยายการอ่านโดยการสอบถามมิเรอร์ แต่คุณต้องการนำ DML ทั้งหมดไปยังเซิร์ฟเวอร์หลัก (มิเรอร์ SQL Server ไม่สามารถอัปเดตได้) หาก SQL Server หลักขัดข้องการเฟลโอเวอร์ไปยังหนึ่งในมิรเรอร์เกือบจะทันที RAC ประสบกับการหยุดที่คล้ายกันหากโหนดหยุดทำงานเนื่องจากการทำธุรกรรมที่ไม่ได้รับการยอมรับบนโหนดที่ล้มเหลวจะถูกย้อนกลับโดยโหนดที่ยังมีชีวิต

ข้อได้เปรียบที่ใหญ่ที่สุด (IMHO) ของ SQL 2012 AAAG บน RAC คือมันเป็นสถาปัตยกรรมที่ไม่มีอะไรแชร์ RAC แบ่งปันที่เก็บข้อมูล หากล้มเหลวคลัสเตอร์ทั้งหมดจะหยุดทำงาน นั่นคือ SPOF ขนาดใหญ่ใน RAC ที่ทุกคนดูเหมือนจะลืม หากคุณต้องการป้องกันตนเองจากสิ่งนั้นคุณต้องตั้งค่าเซิร์ฟเวอร์สแตนด์บาย หากคุณต้องการให้เป็น RAC ค่าใช้จ่ายก็จะเพิ่มขึ้นเรื่อย ๆ


1
ข้อดีของ SPOF ของ RAC
StanleyJohns

5

คำตอบสำหรับคำถามของคุณคือไม่ SQL Server ไม่มีฟังก์ชันการทำงานที่เทียบเท่า มีแง่มุมต่าง ๆ ของ SQL Server ที่ให้ความอดทนกับความล้มเหลวที่คุณต้องการ (แม้จะย้อนกลับไปถึงSQL Server 2005 เมื่อใช้การมิเรอร์ DBและแอพพลิเคชั่นที่รับรู้ถึงมิเรอร์ ) แต่ไม่มี Oracle RAC 1: 1


1

การเปรียบเทียบ AlwaysOn ที่ดีกว่าจะเป็นคุณสมบัติ Data Guard ของ Oracle การทำคลัสเตอร์แบบ Active-Passive (ใช่คุณสามารถอ่านได้จากโหมดสแตนด์บาย แต่เป็นแบบอ่านอย่างเดียวดังนั้นยังมีเพียงโหนดเดียวที่เปิดใช้งานอยู่ ")

Oracle RAC เป็นสัตว์ที่แตกต่างอย่างสิ้นเชิงและการทำคลัสเตอร์ที่แอ็คทีฟอยู่ ฉันไม่เห็นการเคลื่อนไหวใด ๆ หาก Microsoft จะต้องการใช้สิ่งนั้น


-2

SQL Server 2012/2014 พร้อม AlwaysOn เพิ่มความสามารถมากมายที่จะทำให้คุณใกล้ชิดกับ Oracle RAC และในบางกรณีก็ปรับปรุงให้ดีขึ้น (จำได้ว่าเมื่อใช้ RAC คุณจะต้องใช้เซิร์ฟเวอร์แอป Oracle, เว็บบล็อก, และ JDBC - บวกกับการดำเนินงานในศูนย์ข้อมูลเดียวและแอปสามารถเชื่อมต่อกับคลัสเตอร์ RAC เพียงคลัสเตอร์เดียว - ที่เก็บข้อมูลที่ใช้ร่วมกันหมายความว่า RAC ไม่ทำงานในระบบคลาวด์) .

ด้วย AlwaysOn คุณจะได้รับแบบอ่านอย่างเดียว (4 ใน 12, 8 ใน 14) และรองรับการรองรับความล้มเหลวอัตโนมัติ มีบางสิ่งที่ท้าทาย - AlwaysOn ไม่รองรับการปรับสมดุลโหลด - เว้นแต่คุณจะเขียนสคริปต์มันจะวาดเซิร์ฟเวอร์แรกในรายการเสมอ ความล้มเหลวส่งผลกระทบต่อแอพ - มันไม่โปร่งใสดังนั้นแอพอาจต้องรีสตาร์ท

การเปิดเผยแบบเต็ม - ฉันทำงานให้กับ บริษัท ที่สร้างซอฟต์แวร์ที่เพิ่ม AlwaysOn เราโหลดฐานข้อมูลสมดุลซอฟต์แวร์ส่วนหน้า SQL Server - มันไม่อ่าน / เขียนแยกในนามของแอปไม่โหลดตามการตอบสนองเวลาสมดุลที่ศูนย์ข้อมูลครอบคลุมและคิวขาเข้าการเขียน / การทำธุรกรรมระหว่างความล้มเหลวดังนั้นปพลิเคชันที่ไม่เห็นข้อผิดพลาด . ดูว่า Microsoft, Dell, Quicken Loans และองค์กรอื่น ๆใช้ซอฟต์แวร์ ScaleArc เพื่อเพิ่ม SQL Server AlwaysOn และรับความสามารถคล้าย RAC ได้อย่างไรโดยไม่ต้องเปลี่ยนแอพ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.