กลุ่มไฟล์หลักคือ SQL Server 2008 แบบเต็ม


15

ฉันมีตารางขนาดใหญ่ (~ 50 ล้านแถว) ฉันพยายามแทรกจำนวนมากลงใน SQL Server และฉันได้รับข้อผิดพลาด:

ไม่สามารถจัดสรรพื้นที่สำหรับวัตถุ 'myDB' ในฐานข้อมูล 'I 3 Stroke' ได้เนื่องจากกลุ่มไฟล์ 'หลัก' เต็ม สร้างพื้นที่ดิสก์โดยการลบไฟล์ที่ไม่ต้องการวางวัตถุในกลุ่มไฟล์เพิ่มไฟล์เพิ่มเติมไปยังกลุ่มไฟล์หรือการตั้งค่าอัตโนมัติสำหรับไฟล์ที่มีอยู่ในกลุ่มไฟล์

มีตารางอื่นในฐานข้อมูลที่มีประมาณ 25 ล้านแถว ฐานข้อมูลนี้จะใช้ในเครื่องเดียวเท่านั้นและจะได้รับการออกแบบมาเพื่อขุดข้อมูลที่มีอยู่แล้วและจะไม่มีการเติบโตเกินขนาดปัจจุบัน

สำหรับสถานการณ์เช่นนี้เป็นวิธีที่ดีที่สุดในการแก้ไขปัญหานี้ดังนั้น SQL Server จะไม่บ่นอะไร การแก้ปัญหาสำคัญหรือไม่ที่ฐานข้อมูลนี้จะไม่ถูกเปิดเผยต่อผู้ใช้หลายคน?


2
คุณต้องเพิ่มพื้นที่เพิ่มเติมในฐานข้อมูลหรือลบวัตถุที่ไม่ได้ใช้ คำถามของคุณคืออะไร?
Gordon Linoff

@GordonLinoff เมื่อฐานข้อมูลถูกสร้างขึ้น filegroup ได้รับการออกแบบให้มีการเติบโตที่ไม่ จำกัด และยังฉันกำลังทำงานกับปัญหานี้ ฉันหวังว่าจะหาวิธีป้องกันไม่ให้เกิดเหตุการณ์เช่นนี้อีก
wootscootinboogie

1
คุณมีพื้นที่ดิสก์ทางกายภาพเพิ่มเติมหรือไม่ ถ้าเป็นเช่นนั้นตรวจสอบบันทึกข้อผิดพลาด SQL Server และดูว่ามีข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่ autogrowth ล้มเหลว
Kevin

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

1
บางทีคุณอาจกดขีด จำกัด ขนาด db ของ sql express edition
บรูโน่มาร์ติเนซ

คำตอบ:


17

ทำตามขั้นตอนเหล่านี้:

  1. ระบุจำนวนพื้นที่ที่คุณต้องการเพิ่มลงในการจัดสรรที่เก็บฐานข้อมูล:
    1. เปิด windows explorer
    2. คลิกขวาที่ดิสก์ไดรฟ์ที่มีไฟล์ฐานข้อมูลอยู่
    3. เลือกคุณสมบัติ
    4. ตรวจสอบว่ามีพื้นที่ว่างในดิสก์มากน้อยเพียงใดและตัดสินใจว่าคุณต้องการจัดสรรให้กับฐานข้อมูลเท่าใด
      ( คำแนะนำ: ปล่อยพื้นที่ว่างในดิสก์ไว้อย่างน้อย 20% ถ้าคุณเก็บไฟล์ฐานข้อมูลไว้ในดิสก์เดียวกับ OS { Sub-Suggestion : Don ทำเช่นนี้สร้าง / ย้ายข้อมูลของคุณไปยังดิสก์ของตัวเองคุณกำลังขันตัวเองบน I / O.} และปล่อยให้ดิสก์ข้อมูลบริสุทธิ์อย่างน้อย 8% ตัวเลขเหล่านี้เป็นค่าประมาณของสิ่งที่ฉันคิดว่าเป็นเปอร์เซ็นต์คำแนะนำจริง คือ. )
  2. อัพเดตการจัดสรรหน่วยเก็บสำหรับฐานข้อมูล
    1. เปิด SSMS
    2. คลิกแท็บ "มุมมอง"
    3. เลือก "Object Explorer"
    4. ขยายโฟลเดอร์ "ฐานข้อมูล"
    5. คลิกขวาที่ฐานข้อมูลที่คุณพยายามแทรกจำนวนมาก
    6. เลือก "Properties"
    7. คลิกตัวเลือกรายการ "ไฟล์" จากพื้นที่ "เลือกหน้า" ที่ด้านซ้ายของหน้าต่างคุณสมบัติ
    8. ค้นหาแถว "ไฟล์ฐานข้อมูล" ด้วย "Filegroup" เป็น "หลัก"
    9. เพิ่มจำนวนเมกะไบต์ใด ๆ ที่คุณต้องการเพิ่มลงในการจัดสรรฐานข้อมูลลงในหมายเลข "ขนาดเริ่มต้น (MB)"
    10. กด "ตกลง"
      ( คุณอาจต้องการพิจารณาค่า "Autogrowth" ของคุณในขณะที่คุณอยู่ที่นี่ )

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


1
เราทุกคนไม่ต้องการ DIsK ที่ใหญ่กว่าใช่ไหม : P
Santa

12

Express Edition 2014 มีขีด จำกัด 10 GB ต่อฐานข้อมูล หากการเติบโตของฐานข้อมูลอัตโนมัติกระทบกับจุดนั้น SQL Server จะแสดงข้อความแสดงข้อผิดพลาด (obscure?) ไม่พูดถึงข้อ จำกัด สิทธิ์การใช้งาน อาจมีพื้นที่ว่างบนดิสก์มากมาย แต่คุณยังคงเห็นข้อความนี้

แก้ไขหากการออกแบบอนุญาตให้ใช้หลายฐานข้อมูลภายใต้ใบอนุญาตนี้


1

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

คุณอาจต้องกู้คืนพื้นที่จากไฟล์บันทึก . . สามารถล้างได้ แต่ยังคงใช้พื้นที่

อย่างไรก็ตามคุณควรถามคำถามนี้กับ DBA ที่อาจเสนอวิธีแก้ไขปัญหาเพิ่มเติม


นี่ไม่ใช่ปัญหาของการเติบโตของบันทึกที่ล้มเหลว การเติบโตของข้อมูลล้มเหลว
usr

@usr . . พวกเขาอาจครอบครองพื้นที่ดิสก์ต้นแบบเดียวกัน ปัญหาคือพื้นที่ดิสก์ไม่เพียงพอ
Gordon Linoff

เขาบอกว่ามีพื้นที่ว่างในดิสก์ ฉันถามอย่างชัดเจนเพราะฉันสงสัยเช่นกัน
usr

มีพื้นที่ว่างในดิสก์ / ว่างเท่าใด ขนาดปัจจุบันของไฟล์ทั้งหมดในกลุ่มไฟล์หลักคืออะไรและตั้งค่าการเติบโตอย่างไร เป็นไปได้ว่าการเพิ่มขึ้นของการเติบโตนั้นใหญ่กว่าพื้นที่ว่างที่มีอยู่
user9164

1

จากประสบการณ์ของฉันข้อความนี้เกิดขึ้นเมื่อไฟล์หลัก (.mdf) ไม่มีพื้นที่ในการบันทึกข้อมูลเมตาของฐานข้อมูล ไฟล์นี้รวมตารางระบบและบันทึกข้อมูลลงในไฟล์เท่านั้น

ทำให้มีที่ว่างในไฟล์และคำสั่งใช้งานได้อีกครั้ง นั่นคือทั้งหมดที่เพลิดเพลิน


0

เพื่อแก้ปัญหากลุ่มไฟล์หลักเป็นข้อผิดพลาดเต็มรูปแบบไปที่ฐานข้อมูลที่เหมาะสม -> ไฟล์ -> ไฟล์ฐานข้อมูล -> กลุ่มไฟล์ "หลัก" -> Autogrowth / Maxsize และเปลี่ยน Filegroup Database_Name ในหน่วยเมกะไบต์ถึง 1, ขนาดไฟล์สูงสุด

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