การแก้ไข: แฟ้มข้อมูลของฐานข้อมูลอาจจะไม่ถูกทำเครื่องหมายเป็นห่าง ใน SQL Server 2008 R2 หรือ ใน SQL Server 2008 แม้ว่าแฟ้มมีอยู่จริงถูกทำเครื่องหมายเป็นไม่ห่างในระบบแฟ้ม

นำไปใช้กับ: SQL Server 2008 R2 DeveloperSQL Server 2008 R2 EnterpriseSQL Server 2008 R2 Express

Microsoft กระจาย Microsoft SQL Server 2008 R2 หรือ Microsoft SQL Server 2008 แก้ไขเป็นแฟ้มหนึ่งแฟ้มที่สามารถดาวน์โหลดได้ เนื่องจากการแก้ไขเป็นแบบสะสม แต่ละรุ่นใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับ SQL Server 2008 R2 ก่อนหน้าหรือ SQL Server 2008 แก้ไขนำออกใช้

อาการ


Microsoft SQL Server 2008 R2 หรือ Microsoft SQL Server 2008 อาจทำเครื่องหมายแฟ้มข้อมูลของฐานข้อมูลเป็นห่างแม้ว่าแฟ้มมีอยู่จริงถูกทำเครื่องหมายเป็นไม่ห่างในระบบแฟ้ม

หมายเหตุ
  • เพื่อตรวจสอบว่า แฟ้มฐานข้อมูลถูกทำเครื่องหมายเป็นห่างในข้อมูลเมตาของ SQL Server เรียกใช้คำสั่งต่อไปนี้ และตรวจสอบว่า คอลัมน์Is_Sparseถูกตั้งค่าเป็นศูนย์ในชุดผลลัพธ์:
    Use 
    <database name>
    select is_sparse , physical_name from sys.database_files
  • สามารถสอบถามสถานะของแฟ้มมีอยู่จริงในระบบแฟ้ม เรียกใช้คำสั่งต่อไปนี้ของ Windows หลังจากที่ฐานข้อมูลแบบออฟไลน์:
    fsutil sparse queryflag 
    <files path>\<database file>
    ถ้าคุณได้รับผลลัพธ์ต่อไปนี้ แฟ้มถูกทำเครื่องหมายเป็นห่างในระบบแฟ้ม:
    แฟ้มนี้ถูกตั้งค่าเป็นห่าง
  • ข้อมูลเมตาของ SQL Server และระบบแฟ้มข้อมูลเมตาทั้งต้องทำเครื่องหมายเป็นห่างสำหรับเฉพาะแฟ้มฐานข้อมูลข้อมูลที่เป็นส่วนหนึ่งของ snapshot ของฐานข้อมูล

สาเหตุ


ปัญหานี้เกิดขึ้นเนื่องจากระบบแฟ้มทำเครื่องหมายแฟ้มข้อมูลฐานข้อมูลทั้งหมดเป็นห่างอย่างไม่ถูกต้องหลังจากการส่งกระแสข้อมูลสำรองที่ถูกทำเครื่องหมายไว้ตั้งแต่ต้นว่าห่างถูกเอาออก กระแสข้อมูลสำรองจะถูกเอาออกเมื่อสิ้นสุดคำสั่งDBCC CHECKDB

หมายเหตุ
  • การใช้ Snapshot ของฐานข้อมูลภายในจะมีคุณลักษณะ NTFS ที่ถูกใช้ โดยตระกูลของคำสั่งDBCC CHECKDB เมื่อคุณเรียกใช้คำสั่งDBCC , database engine สร้างกระแสสำรอง snapshot ของฐานข้อมูล และนำข้อมูลนั้นไปยังสถานะทรานแซคชันที่สอดคล้องกัน คำสั่งDBCCรันการตรวจสอบเทียบกับกระแสข้อมูลสำรอง กระแสข้อมูลอื่นหลุดหลังจากคำสั่งDBCCเสร็จเรียบร้อยแล้ว
  • การออกแบบที่เป็นสาเหตุของปัญหานี้ถูกนำมาใช้ใน Windows Server 2003 ที่ใช้สำรองข้อมูลระดับเสียงของ Windows เพื่อสำรองข้อมูลแฟ้มฐานข้อมูล ข้อมูลเมตาของ SQL Server เก็บสำเนาของแอตทริบิวต์ห่างสำหรับแฟ้มข้อมูลในตารางระบบ อย่างไรก็ตาม SQL Server ไม่ปรับปรุงข้อมูลIs_Sparseหลังจากแอตทริบิวต์ห่างจะถูกเอาออกจากระบบแฟ้ม
  • นอกจากนี้ปัญหานี้เกิดขึ้นหลังจากที่คุณย้ายฐานข้อมูลจาก Windows Server 2003 เป็นระบบปฏิบัติการ Windows รุ่นที่ใหม่กว่า

    ตัวอย่างเช่น คุณโยกย้ายฐานข้อมูลจาก Windows Server 2003 เพื่อ Windows Server 2008 หรือ Windows Server 2008 R2

การแก้ปัญหา


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

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

ข้อมูลการปรับปรุงสะสม

SQL Server 2008 Service Pack ที่ 3

ก่อนการแก้ไขสำหรับปัญหานี้ถูกออกในแพคเกจโปรแกรมปรับปรุงสะสม 1 สำหรับ SQL Server 2008 Service Pack 3 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงนี้ คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2617146 Cumulative ปรับปรุงแพคเกจ 1 สำหรับ SQL Server 2008 Service Pack 3
หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับ SQL Server 2008 ก่อนหน้านี้แก้ไขการนำออกใช้ Microsoft ขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2629969ใน SQL Server 2008 สร้างที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 Service Pack 3
โปรแกรมแก้ไขด่วนของ Microsoft SQL Server 2008 จะถูกสร้างขึ้นสำหรับ SQL Server service packs เฉพาะ คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2008 Service Pack 3 เมื่อต้องการการติดตั้ง SQL Server 2008 Service Pack 3 โดยค่าเริ่มต้น โปรแกรมแก้ไขด่วนใด ๆ ที่มีให้ในเซอร์วิสแพ็ค SQL Server จะรวมอยู่ใน service pack ถัดไปของ SQL Server

SQL Server 2008 Service Pack ที่ 1

ก่อนการแก้ไขสำหรับปัญหานี้ถูกออกในแพคเกจโปรแกรมปรับปรุงสะสม 16 สำหรับ SQL Server 2008 Service Pack 1 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงนี้ คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2582282 Cumulative ปรับปรุงแพคเกจ 16 สำหรับ SQL Server 2008 Service Pack 1
หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับ SQL Server 2008 ก่อนหน้านี้แก้ไขการนำออกใช้ Microsoft ขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
970365ใน SQL Server 2008 สร้างที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 Service Pack 1
โปรแกรมแก้ไขด่วนของ Microsoft SQL Server 2008 จะถูกสร้างขึ้นสำหรับ SQL Server service packs เฉพาะ คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2008 Service Pack 1 เพื่อการติดตั้ง SQL Server 2008 Service Pack 1 โดยค่าเริ่มต้น โปรแกรมแก้ไขด่วนใด ๆ ที่มีให้ในเซอร์วิสแพ็ค SQL Server จะรวมอยู่ใน service pack ถัดไปของ SQL Server

SQL Server 2008 Service Pack ที่ 2

ก่อนการแก้ไขสำหรับปัญหานี้ถูกออกในแพคเกจโปรแกรมปรับปรุงสะสม 6 สำหรับ SQL Server 2008 Service Pack 2 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงนี้ คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2582285 Cumulative ปรับปรุงแพคเกจ 6 สำหรับ SQL Server 2008 Service Pack 2
หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับ SQL Server 2008 ก่อนหน้านี้แก้ไขการนำออกใช้ Microsoft ขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2402659ใน SQL Server 2008 สร้างที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 Service Pack 2
โปรแกรมแก้ไขด่วนของ Microsoft SQL Server 2008 จะถูกสร้างขึ้นสำหรับ SQL Server service packs เฉพาะ คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2008 Service Pack 2 กับการติดตั้ง SQL Server 2008 Service Pack 2 โดยค่าเริ่มต้น โปรแกรมแก้ไขด่วนใด ๆ ที่มีให้ในเซอร์วิสแพ็ค SQL Server จะรวมอยู่ใน service pack ถัดไปของ SQL Server

CU9 R2 2008 เซิร์ฟเวอร์ SQL

ก่อนการแก้ไขสำหรับปัญหานี้ถูกออกในแพคเกจโปรแกรมปรับปรุงสะสม 9 สำหรับ SQL Server 2008 R2 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงนี้สำหรับ SQL Server 2008 R2 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2567713 Cumulative ปรับปรุงแพคเกจ 9 สำหรับ SQL Server 2008 R2
หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับการก่อนหน้า SQL Server 2008 R2 รุ่นที่แก้ไข เราขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
981356ใน SQL Server 2008 R2 สร้างที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 R2

SQL Server 2008 R2 Service Pack 1 CU2

ก่อนการแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ในแพคเกจโปรแกรมปรับปรุงสะสม 2 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงนี้สำหรับ SQL Server 2008 R2 SP1 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2567714 Cumulative ปรับปรุงแพคเกจ 2 สำหรับ SQL Server 2008 R2 Service Pack 1
หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับการก่อนหน้า SQL Server 2008 R2 SP1 รุ่นที่แก้ไข เราขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2567616ใน SQL Server 2008 R2 สร้างที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 R2 Service Pack 1

ข้อมูลโปรแกรมแก้ไขด่วน

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

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

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

ข้อกำหนดเบื้องต้น

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมี SQL Server 2008 R2 ติดตั้ง

ข้อกำหนดการรีสตาร์ท

คุณไม่ต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วนนี้

ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนนี้ไม่ได้ใช้แทนโปรแกรมแก้ไขด่วนที่มีการนำออกใช้ก่อนหน้านี้

ข้อมูลแฟ้ม

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

ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
Sqlservr.exe2009.100.1800.0121,829,21608-Jul-201111:55IA-64
Sqlservr.exe2009.100.1800.062,027,61608-Jul-201112:28x64
Sqlservr.exe2009.100.1800.042,911,58408-Jul-201113:22x86

สถานะ


Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"

ข้อมูลเพิ่มเติม


ตารางต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์หรือเครื่องมือที่ตรวจสอบโดยอัตโนมัติสำหรับเงื่อนไขนี้ ในของอินสแตนซ์ของ SQL Server และ ในรุ่นของผลิตภัณฑ์ SQL Server ที่กฎจะถูกประเมิน
ซอฟต์แวร์ของกฎชื่อเรื่องของกฎคำอธิบายกฎรุ่นผลิตภัณฑ์ที่กฎจะถูกประเมิน
โปรแกรมช่วยแนะนำ system Centerแฟ้มฐานข้อมูล SQL Server ที่ทำเครื่องหมายเป็นแฟ้มห่าง
โปรแกรมช่วยแนะนำ system Center ตรวจสอบหากอินสแตนซ์ของ SQL Server นี้ประกอบด้วยแฟ้มฐานข้อมูลที่ถูกทำเครื่องหมายเป็นห่าง ควรทำเครื่องหมายเฉพาะแฟ้ม snapshot ของฐานข้อมูลเป็นแฟ้ม ถ้าแฟ้มฐานข้อมูลปกติจะถูกทำเครื่องหมายเป็นห่าง โปรแกรมช่วยแนะนำสร้างข้อความแจ้งเตือน โปรแกรมช่วยแนะนำอาศัยคอลัมน์ is_sparse ใน sys.master_files การดูแค็ตตาล็อก ตรวจทานรายละเอียดที่มีอยู่ในส่วน "การเก็บรวบรวมข้อมูล" ของการแจ้งเตือนโปรแกรมช่วยแนะนำ และตรวจสอบสถานะห่างในระดับระบบปฏิบัติการสำหรับแฟ้มได้รับผลกระทบ หลังจากที่คุณล้างสถานะห่าง OS คุณสามารถใช้โปรแกรมแก้ไขด่วนอธิบายไว้ในบทความนี้เพื่อรีเฟรชข้อมูลเมตาของ SQL Server และทำข้อมูลให้ตรงกับการตั้งค่าระบบปฏิบัติการ

SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

ข้อมูลอ้างอิง


สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง DBCC แวะไปเว็บไซต์ MSDN ต่อไปนี้:สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งFsutilแวะไปเว็บไซต์ MSDN ต่อไปนี้:สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้ใน Windows Server 2003 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
973886คุณไม่สามารถคืนค่าแฟ้มขนาดใหญ่ในระบบไฟล์ NTFS เมื่อสตรีมข้อมูลทั้งหมดที่มีแอตทริบิวต์ห่างจะถูกลบออก ในรุ่น 64 บิตของ Windows XP SP2 หรือ Windows Server 2003 SP2
932021ข้อผิดพลาดเมื่อคุณเรียกใช้คำสั่ง "chkdsk" พร้อมด้วยการ " / v " สลับบนคอมพิวเตอร์ที่ใช้ Windows Server 2003: "Correcting แฟ้มห่างระเบียนเซ็กเมนต์ <ตัวเลข >"