นิยามปัญหา
ผู้ใช้ของเราต้องการความสามารถในการสืบค้นฐานข้อมูลที่เป็นปัจจุบัน ข้อมูลสามารถค้างได้นานถึง 24 ชั่วโมงและเป็นที่ยอมรับ อะไรคือแนวทางต้นทุนที่ต่ำที่สุดในการรับและรักษาฐานข้อมูลที่สองด้วยข้อมูลการผลิต มีวิธีที่ฉันไม่ได้คิดหรือไม่?
จำนวนงาน
เรามีแอปพลิเคชันของบุคคลที่สามที่เราใช้ในการตรวจสอบกิจกรรมการซื้อขายหุ้น ในระหว่างวันมีการเปลี่ยนแปลงเล็กน้อยมากมายเกิดขึ้นเนื่องจากเป็นส่วนหนึ่งของกระบวนการทำงานที่หลากหลาย (ใช่การแลกเปลี่ยนนี้ใช้ได้ถูกต้องไม่เป็นที่น่าสงสัย ฯลฯ ) ในเวลากลางคืนเราดำเนินการตามชุดใหญ่ (โหลดการซื้อขายของวันก่อนหน้า)
วิธีแก้ปัญหาและปัญหาปัจจุบัน
เราใช้ประโยชน์จากภาพรวมฐานข้อมูล เวลา 22.00 น. เราจะส่งและสร้างภาพรวม การประมวลผล ETL จะเริ่มขึ้น นี่คือการเก็บภาษีบนดิสก์ของเรา แต่ช่วยให้ผู้ใช้ของเราสามารถสืบค้นฐานข้อมูลโดยไม่ต้องล็อกฐานข้อมูล (พวกเขาใช้ Access Front End) พวกเขาใช้มันในตอนกลางคืนและตอนเช้าเพื่อที่พวกเขาจะสังเกตเห็นการหยุดทำงาน
ปัญหาด้วยวิธีนี้คือสองเท่า อย่างแรกคือในกรณีที่การประมวลผลทุกคืนล้มเหลวและนั่นไม่ใช่เรื่องแปลกมากเราได้รับการกู้คืนฐานข้อมูลซึ่งส่งผลให้สแนปช็อตถูกทิ้ง ปัญหาอื่นคือเวลาในการดำเนินการของเราลดลงผ่าน SLA ของเรา เราพยายามที่จะแก้ไขปัญหานี้ด้วยการทำงานร่วมกับผู้จัดจำหน่ายหลังจากพบคำค้นหาที่เขียนไม่ดีและไม่มีการจัดทำดัชนี สแนปชอตของฐานข้อมูลยังเป็นตัวการสำคัญในการชะลอตัวนี้ซึ่งเห็นได้จากความแตกต่างของความเร็วเมื่อมันปรากฏขึ้นเมื่อเทียบกับที่ไม่ใช่ --- น่าตกใจฉันรู้
แนวทางการพิจารณา
การจัดกลุ่ม
เราเปิดใช้งานการจัดกลุ่มฐานข้อมูลแล้ว แต่ไม่ได้ตอบสนองความต้องการในการทำให้ข้อมูลพร้อมใช้งานและโดยทั่วไปแล้วซับซ้อนชีวิตของผู้ดูแลระบบ มันถูกปิด
การจำลองแบบเซิร์ฟเวอร์ SQL
เราเริ่มดูการจำลองแบบเมื่อสัปดาห์ที่แล้ว ทฤษฎีของเราคือเราสามารถทำให้แคตตาล็อกที่สองโดดเด่นและประสานกับฐานข้อมูลการผลิต ก่อนการเริ่มต้น ETL เราจะตัดการเชื่อมต่อและเปิดใช้งานอีกครั้งเมื่อกระบวนการ ETL เสร็จสิ้น
ผู้ดูแลระบบเริ่มต้นด้วยการจำลองแบบ Snapshotแต่เขากังวลว่าต้องใช้เวลาหลายวันในการใช้งาน CPU สูงเพื่อสร้างสแนปชอตรวมถึงปริมาณการใช้ดิสก์ที่ต้องการ เขาระบุว่าดูเหมือนว่าจะเขียนข้อมูลทั้งหมดไปยังไฟล์จริงก่อนที่จะส่งไปยังผู้สมัครสมาชิกดังนั้นฐานข้อมูล. 6TB ของเราจะเสียค่าใช้จ่าย 1.8TB ในค่าใช้จ่ายในการจัดเก็บ นอกจากนี้หากใช้เวลาหลายวันในการสร้างสแน็ปอินก็จะไม่พอดีกับ SLA ที่ต้องการ
หลังจากอ่านบทความที่ดีดูเหมือนว่า Snapshot อาจเป็นวิธีการเริ่มต้นสมาชิก แต่เราต้องการเปลี่ยนเป็นTransactional Replicationเพื่อซิงค์ในภายหลัง ฉันถือว่าการเปิด / ปิดการจำลองแบบของทรานแซคชันจะไม่บังคับให้มีการเริ่มต้นใหม่ มิฉะนั้นเราจะระเบิดหน้าต่างเวลาของเรา
การทำมิเรอร์ฐานข้อมูล
ฐานข้อมูลของเราอยู่ในโหมดการกู้คืนแบบเต็มดังนั้นฐานข้อมูลการมิเรอร์เป็นตัวเลือก แต่ฉันรู้น้อยกว่าการจำลองแบบ ฉันค้นหาคำตอบ SOที่ระบุว่า "การทำมิเรอร์ฐานข้อมูลป้องกันไม่ให้เข้าถึงข้อมูลได้โดยตรงข้อมูลที่ทำมิเรอร์นั้นสามารถเข้าถึงได้ผ่านทางสแน็ปช็อตฐานข้อมูลเท่านั้น"
บันทึกการจัดส่ง
ดูเหมือนว่าการจัดส่งบันทึกอาจเป็นตัวเลือก แต่นี่เป็นอีกสิ่งหนึ่งที่ฉันไม่รู้อะไรเลย มันจะเป็นวิธีแก้ปัญหาต้นทุนที่ต่ำกว่า (การติดตั้งและบำรุงรักษา) มากกว่าสิ่งอื่นใดหรือไม่ ตามความเห็นของ Remus "บันทึกการจัดส่งอนุญาตการเข้าถึงแบบจำลองการอ่านอย่างเดียว แต่จะตัดการเชื่อมต่อผู้ใช้ทั้งหมดเมื่อใช้บันทึกการสำรองข้อมูลถัดไปที่ได้รับ (เช่นทุก ๆ 15-30 นาที)" ฉันไม่แน่ใจว่าการหยุดทำงานจะแปลเป็นเวลานานเท่าใดเพื่อให้ผู้ใช้รู้สึกไม่สบายใจ
MS Sync
ฉันเพิ่งได้ยินเกี่ยวกับการใช้Syncในสุดสัปดาห์ที่ผ่านมาและยังไม่ได้ทำการตรวจสอบ ฉันเกลียดที่จะแนะนำเทคโนโลยีใหม่สำหรับสิ่งที่มีทัศนวิสัยสูงเช่นปัญหานี้ แต่ถ้าเป็นแนวทางที่ดีที่สุด
SSIS
เราทำมากมายของ SSIS ที่นี่เพื่อสร้างไม่กี่ร้อยแพคเกจ SSIS เพื่อให้ตรงกันรองเป็นตัวเลือกสำหรับเราแม้ว่าน่าเกลียดอย่างใดอย่างหนึ่ง ฉันไม่ได้เป็นแฟนของการทำเช่นนี้เพราะเป็นค่าบำรุงรักษาจำนวนมากที่ฉันต้องการให้ทีมของฉันไม่ทำ
ภาพรวมของ "magic" SAN
ในอดีตฉันเคยได้ยินผู้ดูแลระบบของเราใช้เทคโนโลยี SAN บางอย่างเพื่อทำการสำรองข้อมูลดิสก์ทั้งหมดทันที บางทีอาจมีเวทมนตร์ EMC บางอย่างที่สามารถใช้ทำสำเนา uberquick ของ mdf / ldf และจากนั้นเราสามารถแยก / แนบฐานข้อมูลเป้าหมายได้
สำรองและเรียกคืน
ฉันคิดว่าเราใช้การสำรองข้อมูลเต็มรูปแบบสัปดาห์ละครั้งส่วนต่างทุกคืนและบล็อกข้อมูลทุก ๆ 15 นาที หากผู้ใช้สามารถใช้งานได้กับการหยุดทำงานนาน 3-4 ชั่วโมงสำหรับการกู้คืนแบบเต็มฉันคิดว่านี่อาจเป็นแนวทาง
ข้อ จำกัด
Windows 2008 R2, SQL Server 2008 R2 (Enterprise Edition), VMWare v5 Enterprise Edition, ที่เก็บข้อมูล EMC SAN พร้อมไดรฟ์ที่แมปไปยังไฟล์ vmdk, การสำรองข้อมูลการจัดการ commvault และ. 6TB ของข้อมูลในแค็ตตาล็อกแหล่งที่มา นี่เป็นแอปพลิเคชันบุคคลที่สามที่เราโฮสต์อยู่ภายใน การปรับเปลี่ยนโครงสร้างของพวกเขาโดยทั่วไปจะขมวดคิ้ว ผู้ใช้ไม่สามารถไปได้โดยไม่ต้องสอบถามฐานข้อมูลและปฏิเสธที่จะถูก จำกัด โดยการระบุตารางที่พวกเขาตรวจสอบเพื่อทำงานของพวกเขาในเชิงรุก
DBA ของเราเป็นผู้รับเหมาอย่างหมดจดในขณะนี้ ผู้จับเวลาเต็มได้ออกเดินทางและเรายังไม่ได้แทนที่ ผู้ดูแลระบบของแอปพลิเคชันนั้นไม่เชี่ยวชาญในเรื่องของ SQL Server และเรามีทีมงานของผู้ดูแลระบบ / VM ที่สามารถช่วย / ขัดขวางความพยายามนี้ ทีมพัฒนาไม่ได้เกี่ยวข้องในขณะนี้ แต่สามารถเกณฑ์ตามวิธีการ ดังนั้นวิธีที่ง่ายกว่าในการนำไปใช้และบำรุงรักษาโซลูชันจะดีกว่า
ฉันฉันอยู่ด้านการพัฒนาของ hosue เพื่อให้ฉันสามารถเสนอแนวทางและไม่ต้องจัดการกับด้านการบริหารจัดการของสิ่งต่าง ๆ ดังนั้นเมื่อไม่มีเวลาในการดูแลของผู้ดูแลระบบฉันลังเลที่จะพูดว่าวิธีการหนึ่งจะดีกว่าวิธีอื่น --- มันทั้งหมดดูดีตามเอกสาร ฉันเต็มใจที่จะดำเนินการทุกทิศทางที่ทุกคนแนะนำเพราะอย่างที่ฉันเห็นมันเป็นเพียงการทำให้ฉันมีค่ามากขึ้นในฐานะมืออาชีพ DB ฉันมีสาลี่ แต่ไม่มีเสื้อคลุมหายนะใช้ได้
คำถามที่เกี่ยวข้อง
/programming/525637/what-are-the-scenarios-for-using-mirroring-log-shipping-replication-and-cluste
/programming/4303020/sync-databases-mirroring-replication-log-shipping
/programming/4303020/sync-databases-mirroring-replication-log-shipping
http://nilebride.wordpress.com/2011/07/24/log-shipping-vs-mirroring-vs-replication/
การแก้ไข
หากต้องการตอบคำถามของ @ onpnt
การยอมรับความล่าช้าของข้อมูล
ขณะนี้ผู้ใช้ดูข้อมูลที่ช้ากว่า 24 ชั่วโมง ข้อมูลเป็นเพียงปัจจุบัน ณ 2200
จำนวนข้อมูลที่เปลี่ยนแปลงในนาทีชั่วโมงและวันที่กำหนดไม่แน่ใจว่าจะหาปริมาณได้อย่างไร เวลาทำการอาจมีการเปลี่ยนแปลงหลายร้อยครั้งต่อชั่วโมง ประมวลผลทุกคืนหลายล้านแถวต่อวันทำการ
เชื่อมต่อกับสายรอง
เครือข่ายภายในแยกโฮสต์เสมือนและพื้นที่เก็บข้อมูลเฉพาะ
อ่านข้อกำหนดในอินสแตนซ์รอง
กลุ่ม Windows จะมีการอ่านเพื่อเข้าถึงตารางรองทั้งหมด
เวลาของอินสแตนซ์รอง
ไม่มีคำจำกัดความที่ชัดเจนของข้อกำหนดด้านเวลา ผู้ใช้ต้องการให้ใช้งานได้ตลอดเวลา แต่พวกเขายินดีจ่ายสำหรับสิ่งนั้นอาจไม่มาก ตามจริงแล้วฉันจะบอกว่า 23 ชั่วโมงต่อวันก็เพียงพอแล้ว
การเปลี่ยนแปลงคีมาที่มีอยู่และวัตถุทั้งหมด
การปรับเปลี่ยนไม่บ่อยนักอาจเป็นหนึ่งในสี่ต่อไตรมาสสำหรับวัตถุตาราง อาจจะเดือนละครั้งสำหรับวัตถุรหัส
ความปลอดภัย
ไม่ต้องการความปลอดภัยเป็นพิเศษ สิทธิ์การผลิตจะตรงกับการอนุญาตของสำเนา แม้ว่าที่ฉันคิดเกี่ยวกับมันเราสามารถเพิกถอนผู้ใช้อ่านการเข้าถึงเพื่อแยงและอนุญาตให้พวกเขาอ่านสำเนา ... ไม่ต้องการ
@ ช่องแคบดาริน
การย้อนกลับไปที่สแนปชอตอาจเป็นตัวเลือก แต่ฉันคิดว่ามีเหตุผลบางอย่างที่พวกเขาไม่ได้ติดตาม ฉันจะตรวจสอบกับผู้ดูแลระบบ
@cfradenburg
ข้อสันนิษฐานของฉันคือเราใช้เพียงหนึ่งในวิธีการเหล่านี้ แต่นั่นเป็นจุดที่ดีที่การกู้คืนจะทำให้เทคโนโลยีการซิงค์ "อื่น ๆ " เสียหาย พวกเขากำลังตรวจสอบว่ากำลังทำอะไรโดยใช้เวทมนตร์ของ EMC ดังที่ผู้ดูแลระบบอธิบายไว้พวกเขาจะถ่ายภาพในเวลา 1900 และย้ายภาพไปยังโซนที่สอง ที่ควรจะเสร็จสมบูรณ์โดย 2,200 และจากนั้นพวกเขาจะดำเนินการแยกออกและติดตั้งใหม่ของฐานข้อมูลรอง
สรุป
2012-10-29 เราได้ประเมิน EMC snapshot magic และตัวเลือกการจำลองอื่น ๆ แต่ DBA ตัดสินใจว่าพวกเขาสามารถหา Mirroring ได้ดีที่สุด โหวตคำตอบเพราะพวกเขาทุกคนช่วยเหลือและให้ทางเลือกมากมายแก่ฉันรวมถึง "การบ้าน" เพื่อตรวจสอบ