ไม่สามารถจัดสรรหน้าใหม่สำหรับฐานข้อมูลเนื่องจากมีพื้นที่ดิสก์ไม่เพียงพอ


13

การใช้ตัวช่วยสร้างการนำเข้าและส่งออกเซิร์ฟเวอร์ SQL ฉันได้รับข้อผิดพลาดนี้:

ข้อผิดพลาด 0xc0202009: งานการไหลของข้อมูล 1: รหัสข้อผิดพลาด SSIS DTS_E_OLEDBERROR
มีข้อผิดพลาด OLE DB เกิดขึ้น รหัสข้อผิดพลาด: 0x80004005
ไม่สามารถจัดสรรหน้าใหม่สำหรับฐานข้อมูล 'ฐานข้อมูล' เนื่องจากพื้นที่ดิสก์ไม่เพียงพอในกลุ่มไฟล์ 'หลัก' สร้างพื้นที่ที่จำเป็นโดยการวางวัตถุในกลุ่มไฟล์เพิ่มไฟล์เพิ่มเติมไปยังกลุ่มไฟล์หรือการตั้งค่าอัตโนมัติในไฟล์ที่มีอยู่ในกลุ่มไฟล์

ฉันพยายามอัปโหลดไฟล์ขนาด 2GB และในขณะที่โหลดไฟล์ลำดับที่ 4 ฉันยังคงได้รับข้อความแสดงข้อผิดพลาดข้างต้นแม้หลังจากไปที่คุณสมบัติฐานข้อมูล> ไฟล์และเปลี่ยน autogrowth ของ Filegroup เป็น 2,500 MB และไม่ จำกัด ขนาดสูงสุด

วิธีแก้ปัญหาที่ดีที่สุดคืออะไร ในที่สุดข้อมูลนี้จะใช้เวลาประมาณ 60-80GB


1
คุณใช้ SQL Server เวอร์ชันใดอยู่ มีพื้นที่ว่างบนไดรฟ์ที่จัดเก็บไฟล์ข้อมูลสำหรับ "ฐานข้อมูล" เท่าใด
nabrond

2
ข้อความแสดงข้อผิดพลาดบอกให้คุณทราบ "วิธีแก้ปัญหาที่ดีที่สุด": สร้างพื้นที่ที่จำเป็นโดยการวางวัตถุในกลุ่มไฟล์เพิ่มไฟล์เพิ่มเติมไปยังกลุ่มไฟล์หรือตั้งค่าการ autogrowth สำหรับไฟล์ที่มีอยู่ในกลุ่มไฟล์ ฉันไม่แน่ใจว่าเราสามารถบอกคุณได้มากกว่านี้

1
Brandon, SQL SERVER 2012 พื้นที่ว่าง 760GB บนไดรฟ์ที่เก็บไฟล์ข้อมูลสำหรับฐานข้อมูล Ken, ฉันเปิดใช้ autogrowth, autogrowth เพิ่มขึ้น 2,500 MB และไม่ จำกัด ขนาดสูงสุด ฉันจะยังคงพบปัญหานี้หรือไม่ เป็นไปได้ไหมว่ามีออโต้โควต์หลายตัวที่ต้องเปิดใช้งาน

1
คุณพยายามที่จะเติบโตฐานข้อมูลด้วยตนเอง?

1
เป็นไปได้ไหมที่ autogrow ทำงานระหว่างองค์ประกอบและเม็ดมีดหนึ่งอันเกินขีด จำกัด ได้หรือไม่? จะเป็นเดิมพันของฉัน - ถ้าการแทรก 20000gb ล้มเหลวบน autogrow 2500gb .... สามารถมีได้ฟรี 900mb และการแทรกล้มเหลว
TomTom

คำตอบ:


11

ฐานข้อมูลด่วนของ SQL จะอยู่ที่ 10g ฉันเชื่อว่านี่คล้ายกับข้อความแสดงข้อผิดพลาดที่คุณได้รับ

ฉันพบปัญหานี้ครั้งหนึ่งที่ลูกค้าและใช้เวลาพอสมควรที่จะคิดออก

sql รุ่นใดที่คุณใช้อยู่


1
วิธีนี้ช่วยฉันได้! ฉันใช้เวอร์ชัน Express และอัปเกรดเป็น Dev
อิสราเอล Rodriguez

7

คุณแน่ใจว่ามันเป็น

ไม่สามารถจัดสรรหน้าใหม่สำหรับฐานข้อมูล 'ฐานข้อมูล' เนื่องจากพื้นที่ดิสก์ไม่เพียงพอในกลุ่มไฟล์ 'หลัก'

และไม่

ไม่สามารถจัดสรรหน้าใหม่สำหรับฐานข้อมูล 'tempdb' เนื่องจากพื้นที่ดิสก์ไม่เพียงพอในกลุ่มไฟล์ 'หลัก'

?

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

หากมันไม่ได้[tempdb]อยู่ในข้อความแสดงข้อผิดพลาดฉันจะจินตนาการว่า "การอัปโหลด" ของประเภทนี้จะได้ผล[tempdb]ค่อนข้างยาก คือ[tempdb]บนดิสก์เดียวกัน / LUN เป็น'database'? ถ้าเป็นเช่นนั้นคุณอาจทำให้ปัญหาของคุณแย่ลงด้วยการพยายามขยายไฟล์หลายครั้ง (ในหลายฐานข้อมูล) ดังนั้นในขณะที่คุณกำลังทำสิ่งนี้ "อัปโหลด" ให้แน่ใจว่าคุณกำลังตรวจสอบอยู่[tempdb]เช่นกัน

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

USE master;
GO
ALTER DATABASE [database]
MODIFY FILE
    (
    NAME = datafile,
    SIZE = 60GB,
    FILEGROWTH = 5GB
);
GO

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

USE master;
GO
ALTER DATABASE [database]
MODIFY FILE 
(
    NAME = logfile, 
    SIZE = 8000MB
);
GO

ALTER DATABASE [database]
MODIFY FILE 
(
    NAME = logfile, 
    SIZE = 16000MB
);
GO

ALTER DATABASE [database]
MODIFY FILE 
(
    NAME = logfile, 
    SIZE = 24000MB
);
GO
...

จนกว่าคุณจะได้ขนาดที่ต้องการแล้ว ลองเรียกมันว่า 80GB ที่คุณจะตั้งค่าการเติบโตของคุณเป็นขนาดที่เฉพาะเจาะจง ฉันใช้ค่าที่แนะนำโดยPaul RandalและKimberly Tripp

ALTER DATABASE [database]
MODIFY FILE 
(
    NAME = logfile, 
    SIZE = 80000MB,
    FILEGROWTH = 8000MB
);

6

ลองปลูกด้วยตนเอง:

1. ใน Object Explorer เชื่อมต่อกับอินสแตนซ์ของโปรแกรมฐานข้อมูลเซิร์ฟเวอร์ SQL แล้วขยายอินสแตนซ์นั้น

2. ขยายฐานข้อมูลคลิกขวาที่ฐานข้อมูลเพื่อเพิ่มแล้วคลิกคุณสมบัติ

3. ในคุณสมบัติฐานข้อมูลเลือกหน้าไฟล์

4. ในการเพิ่มขนาดไฟล์ที่มีอยู่ให้เพิ่มค่าในคอลัมน์ขนาดเริ่มต้น (MB) สำหรับไฟล์ คุณต้องเพิ่มขนาดของฐานข้อมูลอย่างน้อย 1 เมกะไบต์

5. หากต้องการเพิ่มขนาดของฐานข้อมูลโดยการเพิ่มไฟล์ใหม่ให้คลิกเพิ่มจากนั้นป้อนค่าสำหรับไฟล์ใหม่ สำหรับข้อมูลเพิ่มเติมดูเพิ่มข้อมูลหรือไฟล์บันทึกลงในฐานข้อมูล

6. คลิกตกลง

จาก: MSDN


4
การขยายด้วยตนเองนั้นดีเพราะอาจบอกรายละเอียดเพิ่มเติม ในกรณีของฉันฉันได้รับ: "สร้างฐานข้อมูลหรือแก้ไขฐานข้อมูลล้มเหลวเนื่องจากขนาดฐานข้อมูลสะสมที่ได้นั้นจะเกินขีด จำกัด ลิขสิทธิ์ของคุณที่ 10240 MB ต่อฐานข้อมูล" ซึ่งเป็นการอธิบายตนเอง
user824276

1

คุณยังสามารถใช้สคริปต์ต่อไปนี้เพื่อเพิ่มพื้นที่ว่างจากฐานข้อมูล:

DELETE FROM STActionLog
where id in (SELECT TOP 100000 id
             FROM STActionLog
             ORDER BY actionDate ASC)

delete from STActionLog
where actionDate < '2019-08-01'

สิ่งเหล่านี้ช่วยฉันด้วยข้อผิดพลาด :) ตรวจสอบให้แน่ใจว่าเรามีพื้นที่ดิสก์เพียงพอในคอมพิวเตอร์

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