พูดถึงเรื่อง SQL Server ก็มักจะมีคำถามว่าทำอย่างไรถึงจะทำให้ SQL Server มี high availability คำตอบแรกๆ และง่ายๆ ก็จะเป็นทำ Cluster วันนี้เราจะมีดูกันว่าต้องมีอะไรบ้างครับ

Hardware
1) เครื่องคอมพิวเตอร์ 2 เครื่อง — แน่ล่ะสิทำ cluster ก็ต้องเป็น 2 เครื่อง active กะ stand-by
2) share storage — อันนี้ยากแล้ว ถ้าจะให้ดีประสิทธิภาพสูงก็หนีไม่พ้น SAN หรือถ้าอยากได้ของถูก iSCSI ก็ได้นะ แต่คุณภาพสู้ไม่ได้แน่นอน
3) ระบบ Active Directory — เนื่องจากทุก advanced solution ต้องพึ่ง AD ดังนั้น SQL Cluster ก็เช่นกัน

Software
1) Windows Server 2008 R2 Enterprise Edition 2 licenses — ขอย้ำว่า Enterprise นะ เพราะต้องทำ Microsoft Fail Over Cluster
2) Microsoft SQL Server 2008 R2 Standard Editon 2 license — ถ้าทำแค่ cluster 2 node ใช้แค่ standard ก็พอครับ แต่หากอยากได้มากกว่านั้น ก็คงต้องกัดฟันจ่ายเงินเพิ่มเป็น Enterprise Edition สำหรับของฟรี Express Edition หมดสิทธิ์กับงาน cluster ครับ
3) SQL CALs ตามจำนวน client ถ้าข้อที่แล้วซื้อเป็น processor license ก็ข้ามได้ครับ

วิธีการแบบคร่าวๆ
1) ติดตั้ง Windows Server ลงบนทั้ง 2 เครื่อง และ patch ต่างๆ
2) ติดตั้ง Fail Over Cluster ลงบน Windows ทั้ง 2 เครื่องก่อน (แนะนำว่าควรจะมี share storage สำหรับ quorum disk ด้วย) ขั้นตอนนี้ต้องเตรียม IP เผื่อสำหรับ Virtual IP ของ Fail Over Cluster ด้วยนะครับ
3) ติดตั้ง SQL Cluster โหนดแรก โดยเลือกจาก New SQL Server Failover Cluster Installation ในหน้า Install Wizard ของ SQL
4) ติดตั้ง SQL Cluster โหนดที่สอง คราวนี้เลือก Add node to a SQL Server failover cluster แทนครับ
5) ติดตั้ง service pack และ hotfix อันนี้พิศดารนิดนึง สมัย SQL 2005 ทำที่ active node แล้วมันจะส่งมาที่ passive node ให้เอง แต่พอ SQL 2008 เป็นต้นมา เราต้องทำที่ passive node ก่อน แล้ว failover แล้วค่อยกลับไปทำที่ active node ที่กลายเป็น passive ไปแล้วแทน แม้ว่าจะยุ่งยากขึ้น แต่ downtime ลดลงนะครับ

ปล. High Availability กับ SQL server ไม่ได้มีแค่ Cluster นะครับ ที่พูดกันเยอะเพราะทำง่ายสุดครับ เพราะยังมีหลายทางเลือกเช่น Replication, Log Shipping, Mirroring หรือแม้แต่ Virtualization ก็มีครับ

Advertisement