สร้างดัชนี SQL Server 2008 R2 ล้มเหลวด้วยความรุนแรง 17


12

ในบางครั้งระหว่างการบำรุงรักษาดัชนีของเรางานจะล้มเหลวพร้อมกับข้อผิดพลาด SEV 17 ที่ไม่สามารถจัดสรรพื้นที่ได้เพียงพอสำหรับวัตถุที่สร้างใหม่ ฐานข้อมูลถูกจัดวางเช่น:

Data_file1    PRIMARY    0 growth         0% free                Max Size UNLIMITED
Data_file2    PRIMARY    0 growth         0% free                Max Size UNLIMITED
Data_file3    PRIMARY    0 growth         Less than 1% free      Max Size UNLIMITED
Data_file4    PRIMARY    250 MB growth    Less than 1% free      Max Size UNLIMITED

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

SQL Server เวอร์ชันเต็มคือ 2008 R2 Enterprise, SP2 CU 4 (10.50.4270) เราใช้ Ola Hallengren เป็นสร้างสคริปต์ที่เราสร้างออนไลน์ tempdbแต่ไม่มีการจัดเรียงใน


มีการระบุขนาดไฟล์สูงสุดหรือไม่? เอกสารระบุว่าIf max_size is not specified, the file size will increase until the disk is full.ได้รับแล้วหากการเติบโตอัตโนมัติปิดอยู่ซึ่งไม่ควรพยายามจัดสรรจากไฟล์เหล่านั้น ( A value of 0 indicates that automatic growth is set to off and no additional space is allowed.) แต่อาจมีข้อผิดพลาดดังนั้นจึงไม่เจ็บที่จะลองดูหากยังไม่ได้ตั้งค่า
Jon Seigel

max_size isขณะนี้ตั้งค่าเป็นไม่ จำกัด แม้ในรายการที่เติบโต 0 ฉันกำลังตรวจสอบเรื่องนี้ในการทดสอบการทำสำเนาของฉันตอนนี้
Mike Fal

คุณกำลังบันทึกผลลัพธ์หรือไม่ หากคุณเก็บบันทึกประวัติข้อผิดพลาดเกิดขึ้นในดัชนีเดียวกันทุกครั้งที่มันล้มเหลว?
Cougar9000

ดัชนีมีคำถามกี่หน้า
Mark Wilkinson

นอกจากนี้นี่เป็นข้อผิดพลาดที่สร้างขึ้นโดยสคริปต์หรือข้อผิดพลาด SQL Server จริงหรือไม่ ฉันถามเพราะฉันสงสัยว่าบางทีคุณกำลังกดขีด จำกัด ขนาดบันทึกการทำธุรกรรมซึ่งตรงข้ามกับการ จำกัด ขนาดไฟล์ข้อมูลและสคริปต์จัดการข้อผิดพลาดอย่างไม่ถูกต้อง
Mark Wilkinson

คำตอบ:


1

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

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

มีบทความที่ดีคือhttp://technet.microsoft.com/en-us/library/ms179542(v=sql.105).aspx ซึ่งฉันต้องอ่านหลายครั้งเมื่อพบปัญหาเกี่ยวกับพื้นที่ดิสก์ที่มีดัชนี

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