การบำรุงรักษาฐานข้อมูล 24x7 เป็นหัวข้อที่ค่อนข้างใหญ่และมีตัวเลือกให้เลือกมากมาย หัวข้อกว้าง ๆ นี้มีหลายสิ่งที่ต้องพิจารณา แต่เราสามารถลองและสัมผัสกับจุดสูงสุดบางอย่าง
สิ่งแรกที่คุณจะต้องระบุก็คือในขณะที่การดำเนินการจำนวนมากเป็น 24x7 มักจะมีกิจกรรมต่ำ คุณสามารถใช้ประโยชน์จากเวลาเหล่านี้ในการบำรุงรักษาเพื่อลดการรบกวนที่คุณมีในฐานข้อมูล อย่างที่สองคือคุณจะต้องจองเวลาสำหรับการหยุดทำงานที่สมบูรณ์ (สำหรับเซอร์วิสแพ็คหรือการย้ายฐานข้อมูล) ดังนั้นคุณจะต้องเจรจากับหน้าต่างการบำรุงรักษาแบบเต็มรูปแบบกับฝ่ายบริหารของคุณ สำหรับรายการเฉพาะคุณจะต้องพิจารณาและวางแผนสำหรับแต่ละรายการรวมถึงใช้ประโยชน์จากเครื่องมือของคุณอย่างเหมาะสม สิ่งสำคัญคือคุณต้องวางแผนแต่ละสิ่งเหล่านี้ตัวอย่างใด ๆ ที่ฉันให้นั้นมีมาก "ไมล์ของคุณอาจแตกต่าง"
การสำรองข้อมูล
โดยทั่วไปการสำรองข้อมูลจะไม่ส่งผลกระทบอย่างมากต่อปริมาณงาน แต่ต้องคำนึงถึงเนื่องจากสามารถใช้งาน I / O ได้จำนวนมาก คุณจะต้องการกำหนดเวลาเหล่านี้อย่างเหมาะสมและติดตามเวลาที่ใช้ในการดำเนินการให้เสร็จสมบูรณ์ อุปสรรค์ที่ใหญ่ที่สุดในที่นี้คือในการดำเนินการตลอด 24 ชั่วโมงทุกวันคุณจะไม่สามารถทำการสำรองข้อมูลเต็มรูปแบบทุกคืนของสัปดาห์ คุณจะต้องวางแผนเมื่อไหร่ที่คุณสามารถทำ fulls เมื่อคุณรับส่วนต่างและระยะเวลาการเก็บรักษาทั้งสองอย่างนี้ร่วมกับการสำรองข้อมูลบันทึกของคุณ
ตัวอย่างเช่นฉันรันการสำรองข้อมูลเต็มรูปแบบของฐานข้อมูลทั้งหมดของฉันในคืนวันอาทิตย์ (กิจกรรมต่ำสุด) ส่วนต่างของคืนอื่น ๆ (วันจันทร์ถึงวันเสาร์) ฉันเก็บ fulls สองสัปดาห์สุดท้ายและ diffs บนดิสก์บันทึกสองวันสุดท้าย สิ่งนี้ทำให้ฉันมีความยืดหยุ่นเพียงพอสำหรับการกู้คืน แต่ฉันอาจต้องกู้คืนสำเนาสำรองจากเทปหากจำเป็น
การบำรุงรักษาดัชนี / สถิติ
นี่เป็นประเภทการบำรุงรักษาทั่วไปที่คุณต้องจัดการด้วย คุณไม่สามารถหลีกเลี่ยงได้ แต่คุณสามารถลดผลกระทบได้ กฎเริ่มต้นง่ายๆคือคุณควรทำการบำรุงรักษาเฉพาะวัตถุที่จำเป็นเท่านั้น หลักเกณฑ์ทั่วไปที่จะสร้างเพียงดัชนีที่มีมากกว่า 30% แยกส่วนและมีขนาดใหญ่กว่า 1,000 หน้า หากคุณมีสถิติการอัปเดตอัตโนมัติสิ่งนี้จะจัดการการบำรุงรักษาสถิติส่วนใหญ่ของคุณ แต่งานประจำคืนเพื่อให้ข้อมูลต่าง ๆ ตรงกันไม่ใช่ความคิดที่ไม่ดี
หากคุณมี Enterprise Edition คุณยังสามารถเข้าถึงตัวเลือกอื่น ๆ สำหรับจัดการการบำรุงรักษา สำคัญที่สุดคือการสร้างดัชนีออนไลน์ซึ่งจะช่วยให้คุณสามารถสร้างดัชนีใหม่ได้ในขณะที่ยังคงมีการใช้งานอยู่ (โดยพื้นฐานแล้วมันจะสร้างดัชนีดัชนีแบบเคียงข้างกัน นอกจากนี้คุณยังสามารถใช้ประโยชน์จากการแบ่งพาร์ติชันสำหรับตาราง "ใหญ่" เพื่อลดระยะเวลาการสร้างใหม่ที่จำเป็น
ทางออกที่ดีที่สุดของคุณสำหรับประเภทของการบำรุงรักษานี้ถ้าคุณไม่ได้มีสคริปต์ที่กำหนดเองที่จัดการปฏิบัติที่ดีที่สุดเหล่านี้คือการใช้Ola Hallengren ของสคริปต์การบำรุงรักษา สิ่งเหล่านี้ค่อนข้างง่ายต่อการติดตั้งและกำหนดค่าและมีแนวทางเหล่านี้มากมาย
การตรวจสอบความสอดคล้องของ DBCC
ขึ้นอยู่กับปริมาณงานโดยรวมของคุณคุณอาจพบว่าการตรวจสอบ DBCC เป็นอุปสรรคต่อการทำงานของคุณ มีวิธีทั่วไปสองวิธีในการลดผลกระทบ DBCC สำหรับฐานข้อมูลของคุณ:
PHYSICAL_ONLY- การรันตัวเลือกนี้จะตรวจสอบฐานข้อมูลของคุณในระดับหน้าทางกายภาพและหลีกเลี่ยงการตรวจสอบแบบเต็มรูปแบบยิ่งขึ้น สิ่งนี้จะครอบคลุมถึงการระบุประเภทของการทุจริตที่เป็นไปได้มากที่สุด
- การตรวจสอบสำเนาที่คืนค่า - หากคุณมีพื้นที่คุณสามารถคืนค่าฐานข้อมูลไปยังอินสแตนซ์อื่นและเรียกใช้การตรวจสอบ DBCC เทียบกับสำเนาที่คืนค่า สิ่งนี้จะบอกเล่าเรื่องราวเดียวกันเกี่ยวกับฐานข้อมูลสดของคุณ แต่แน่นอนว่าคุณจะไม่เข้าไปยุ่งกับกิจกรรม ทางเลือกอื่น ๆ ที่นี่กำลังเรียกใช้ DBCC เทียบกับสำเนาที่จัดส่งมาหรือ db ที่มิร์เรอร์
โพสต์บล็อกนี้ให้รายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกของคุณ
งานแบทช์ / ETL
สิ่งนี้เกิดขึ้นกับวิธีที่คุณออกแบบกระบวนการของคุณ ETL ของคุณสามารถแทรกแซงตาราง OLTP แบบสดๆ (เช่นเดียวกับแอปพลิเคชันอื่น ๆ ) เสมอดังนั้นควรคำนึงถึงคีย์บางอย่าง:
- กำหนดเวลาทำงานดังกล่าวเกี่ยวกับการบำรุงรักษาอื่น ๆ ของคุณและในช่วงเวลากิจกรรมต่ำ
- ปรับขนาดงานให้ถูกต้องสำหรับทั้งประสิทธิภาพและเพื่อให้ชุดงานไม่ใหญ่จนล็อคตารางของคุณได้นานหลายชั่วโมง ตัวอย่างของการสิ้นสุดของสเปกตรัม: แถวต่อแถวทนทุกข์ทรมาน (RBAR) เมื่อเทียบกับลบล้านแถวเดียว
- ใช้ตารางเวทีและออฟไลน์การประมวลผลข้อมูลของคุณตามความเหมาะสม สัมผัสเฉพาะรายการสดเมื่อจำเป็นจริงๆ
ข้อสรุป
อีกครั้งมีพื้นที่มากมายที่จะครอบคลุมที่นี่ นี่ไม่ใช่คู่มือที่ครอบคลุม แต่เป็นภาพรวมระดับสูงของวิธีการบางอย่าง ฉันยังไม่ได้กล่าวถึงตัวเลือกความพร้อมใช้งานสูง (เช่นกลุ่มความพร้อมใช้งานและการทำคลัสเตอร์ล้มเหลว) คุณจะต้องตรวจสอบแต่ละรายการและสร้างแผนสำหรับวิธีการจัดการ ในหลาย ๆ วิธีคุณจะต้องทำซ้ำและปรับแต่งงานของคุณเมื่อคุณก้าวไปข้างหน้า
แหล่งข้อมูลเพิ่มเติม:
SQL Skills VLDB แนวทางปฏิบัติที่ดีที่สุดในการบำรุงรักษา