วิธีการแยกดัชนีจากการสำรองข้อมูลใน SQL Server 2008


19

การสำรองข้อมูล (และความแตกต่างเป็นระยะ ๆ ) ทุกคืนของเรามีขนาดค่อนข้างใหญ่เนื่องจากปริมาณดัชนีในตารางของเรา ขนาดการสำรองข้อมูลประมาณครึ่งหนึ่งประกอบด้วยดัชนี

เรากำลังใช้โมเดลการกู้คืนอย่างง่ายสำหรับการสำรองข้อมูลของเรา

มีวิธีใดบ้างที่FileGroupsจะแยกดัชนีออกจากการสำรองข้อมูลโดยใช้หรือวิธีการแบ่งพาร์ติชันไฟล์อื่น ๆ

มันจะดีถ้าสิ่งนี้สามารถขยายไปยังแคตตาล็อกข้อความแบบเต็มเช่นกัน

คำตอบ:


15

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

จากนั้นคุณซวนเซการสำรองข้อมูลของคุณเพื่อให้คุณทำการสำรองข้อมูลไฟล์ของกลุ่มหลักทุกคืนและการสำรองข้อมูลบันทึกธุรกรรมทุก X นาที

เมื่อเกิดภัยพิบัติคุณจะคืนค่ากลุ่มไฟล์หลักด้วยตัวเอง ข้อมูลออนไลน์โดยฉับพลัน แต่ดัชนีไม่ได้ อย่างไรก็ตามเพื่อกลับสู่สภาวะปกติคุณจะต้องส่งออกข้อมูลไปยังฐานข้อมูลใหม่ที่สะอาดและเพิ่มดัชนีจากที่นั่น คุณไม่สามารถนำฐานข้อมูลออนไลน์ได้อย่างสมบูรณ์โดยไม่ต้องกู้คืนกลุ่มไฟล์ทั้งหมดและคุณไม่สามารถพูดว่า "ฉันไม่ต้องการกลุ่มไฟล์อื่น ๆ อีกต่อไป"

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานตรวจสอบวิดีโอสอนของฉันในการคืนค่ากลุ่มไฟล์


Hehe ฉันย้ายดัชนีที่ไม่ใช่คลัสเตอร์ไปยังกลุ่มไฟล์ของตนเอง โมเดลการกู้คืนง่ายทำให้ฉันสมบูรณ์ ดัชนีมีขนาดใหญ่กว่าข้อมูลจริง ๆ แล้วมันเป็นวิธีที่ล้อเลียนฉัน! โอ้ดีบางทีบางบุคคลที่ 3 จะปล่อย bullet มายากลคำใบ้คำใบ้ :)
Jarrod Dixon

1
และบางทีคุณอาจจะได้รับใบอนุญาตฟรี ;-)
Brent Ozar

5

จริงๆแล้วคุณไม่ต้องการทำสิ่งนี้แม้ว่าคุณจะเอาชนะปัญหาอื่น ๆ ที่คนอื่นยกมาที่นี่

เมื่อคุณคืนค่าการสำรองข้อมูลในกรณีฉุกเฉินคุณไม่ต้องการรอให้ดัชนีสร้างใหม่และคุณจะได้รับประสิทธิภาพที่น่ารังเกียจจนกระทั่งคุณทำ

ฉันไม่สามารถนึกถึงสถานการณ์ที่คุณต้องการกู้คืนการสำรองข้อมูลโดยไม่มีดัชนีดังนั้นในทุกกรณีคุณจะต้องสำรองข้อมูลพร้อมกัน

คุณอาจต้องค้นหาวิธีแก้ไขปัญหาอื่น ๆ ...

อดัม


1
"คุณไม่ต้องการที่จะรอให้ดัชนีที่จะสร้าง" สันนิษฐานมาก IMO
เจฟฟ์แอด

2
ใช่ แต่โปรดจำไว้ว่าฉันพูดคุยทั่วไปที่นี่ ฉันไม่ได้มั่นใจว่ามีสถานการณ์มากกว่าที่จะทิ้งดัชนีและสร้างใหม่ดีกว่ามีสถานการณ์ที่ดีกว่าในการสำรองดัชนีและหลีกเลี่ยงการสร้างใหม่ กล่าวอีกนัยหนึ่งกรณีทั่วไปดีกว่าและถ้ามีสถานการณ์เฉพาะเรียกร้องให้มีใครควรทำผิดพลาดในด้านของการสำรองข้อมูล ที่ถูกกล่าวว่าทุกสถานการณ์แตกต่างกัน ฉันอยากรู้ว่าต้องใช้เวลานานเท่าใดในการสร้างดัชนี SO ขึ้นมาใหม่และประสิทธิภาพของเว็บไซต์ที่ได้รับความเดือดร้อนจนกว่าจะเสร็จสิ้น (สมมติว่าเป็นช่วงที่สร้างใหม่)
Adam Davis

การสำรองข้อมูลเก็บถาวรระยะยาวเป็นกรณีการใช้งานเฉพาะที่ฉันกำลังดูในตอนนี้ ฉันมีโครงการที่เสร็จสมบูรณ์และไม่ต้องการให้ฐานข้อมูลออนไลน์อีกต่อไป แต่ก็ไม่จำเป็นที่จะทำให้ไดรฟ์เครือข่ายของเรามีไฟล์สำรองข้อมูลขนาดใหญ่เกินความจำเป็น ฉันไม่ต้องการที่จะสูญเสียคำจำกัดความของดัชนี แต่ไม่คิดที่จะสร้างใหม่หากฉันจำเป็นต้องกู้คืนสิ่งนี้อีกครั้ง
richardtallent

3

ดูเหมือนว่านี่ไม่ได้รับการสนับสนุน จากข้อมูลรายงานข้อผิดพลาดนี้:

มีความสนใจอย่างมากในเรื่องนี้ดังนั้นฉันจะพูดถึงรายละเอียดเพิ่มเติมเล็กน้อยเกี่ยวกับสิ่งที่เกิดขึ้นเบื้องหลังและสิ่งที่มีความหมายในการใช้ฟังก์ชันนี้ หน้าดัชนีบางประเภทจะถูกแยกออกเป็นหน่วยการจัดสรรแยกต่างหากในขณะที่หน้าอื่น ๆ จะถูกผสมกับหน้าข้อมูล ตอนนี้เราจะดูบิตแมปการจัดสรรเพื่อดูว่ามีการจัดสรรขอบเขตหรือไม่ตอนนี้เราจะต้องเข้าไปและตีความสิ่งที่เก็บไว้ในแต่ละหน่วยการจัดสรร นอกจากนี้ตอนนี้เราจะไม่สามารถทำการสแกนเชิงเส้นของไฟล์ข้อมูลที่คัดลอกข้อมูลเราจะข้ามไปรอบ ๆ ในไฟล์ การตีความทั้งหมดของโครงสร้างข้อมูลนี้จะทำให้การสำรองข้อมูลช้าลงอย่างมาก การคืนค่าจะน่าสนใจยิ่งขึ้นเนื่องจากมีโครงสร้างจำนวนมากที่จะต้องแก้ไขโดยคำนึงถึงช่องโหว่ในการสำรองข้อมูล มิฉะนั้นคุณจะมีแผนที่การจัดสรรชี้ไปยังหน้าที่ไม่ได้สำรองไว้และมีขยะในนั้น ฯลฯ ฯลฯ ดังนั้นการใช้สิ่งนี้หมายความว่าเราจะบันทึกข้อมูลน้อยลงใช้เวลานานขึ้นและใช้เวลามาก กู้คืนอีกต่อไป อีกแง่มุมที่ต้องพิจารณาคือต้องใช้ความพยายามด้านวิศวกรรมเป็นจำนวนมากเพื่อให้ถูกต้อง ในขณะที่ไม่ใช่ปัญหาของคุณบนพื้นผิวลองพิจารณาว่านั่นหมายความว่าคุณสมบัติอื่น ๆ ที่คุณอาจต้องการเห็นจะไม่ถูกสร้างขึ้น


สิ่งนี้จะไม่เป็นปัญหาสำหรับดัชนีข้อความแบบเต็มหรือไม่ พวกนั้นมักจะค่อนข้างใหญ่
Michael Teper

1

อาจเป็นความคิดที่บ้า แต่นี่ไป

  1. ปล่อยดัชนีที่ไม่ใช่คลัสเตอร์ของคุณซึ่งใช้พื้นที่มาก
  2. ทำสำรอง
  3. สร้างดัชนีที่คุณทำใหม่อีกครั้ง

แน่นอนคุณสามารถทำได้จริง ๆ ถ้าฐานข้อมูลของคุณอนุญาตสำหรับบางเวลาในวัน

นอกจากนี้อย่าปล่อยดัชนีคลัสเตอร์ของคุณเป็น SQL Server จะเสียเวลามากในการแปลงเป็นฮีป

การซื้อพื้นที่ดิสก์เพิ่มเติมดูเหมือนจะเป็นวิธีที่ง่ายกว่าหรือไม่

คุณพิจารณาทำการสำรองข้อมูลที่บีบอัดไว้หรือไม่ นี่คือคุณสมบัติใหม่ของปี 2008 มันอาจเป็นตัวเลือกสำหรับคุณ


ใช่เราได้เปิดการบีบอัดสำหรับการสำรองข้อมูลแล้ว แต่การบีบอัดในตัวไม่ได้ยอดเยี่ยม จริงๆแล้วเรามีการสำรองข้อมูลที่ไม่ได้บีบอัดในช่วงสิ้นสัปดาห์และจากนั้น 7zip ให้เรา devs เพื่อนำมาลง; ขนาดประมาณ 1/3 แต่ใช้เวลาพอสมควร!
Jarrod Dixon

สำหรับการหยุดทำงานของฐานข้อมูลเราสามารถอยู่ได้โดยปราศจากทั้งserverfault.comและstackoverflow.comมากที่สุดเท่าที่จะเป็นไปได้หรือไม่? ฉันตัวสั่นที่คิดว่า :)
Jarrod Dixon

ฉันไม่ได้ทดสอบด้วยตัวเอง แต่ฉันสงสัยมาก มันไม่สามารถกำหนดค่าได้มาก หากคุณยังคงมองหาการบีบอัดเป็นตัวเลือกลองดู SQL Lightspeed (แพง แต่เจ๋งมาก แต่ราคานั้นต่อรองได้มาก ) และการสำรองข้อมูล SQL ของ RedGate ผลลัพธ์ที่ยอดเยี่ยมและกำหนดค่าได้มาก
Nick Kavadias
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.