อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณสร้างฐานข้อมูลใน Microsoft SQL Server 2008 R2
-
คุณปรับปรุงชื่อตรรกะของฐานข้อมูล โดยใช้คําสั่ง ALTER DATABASE
-
คุณดําเนินการสํารองข้อมูลทั้งหมดของฐานข้อมูล หมายเหตุ ไฟล์สํารองฐานข้อมูลแบบเต็มจะถูกสร้างขึ้นหลังจากดําเนินการสํารองข้อมูล
-
คุณพยายามคืนค่าฐานข้อมูลจากแฟ้มสํารองฐานข้อมูล
ในสถานการณ์นี้ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
Msg 3234, Level 16, State 2, Line 1Logical file '<logical file name>' ไม่ได้เป็นส่วนหนึ่งของฐานข้อมูล '<ชื่อฐานข้อมูล>' ใช้ RESTORE FILELISTONLY เพื่อแสดงรายการชื่อไฟล์แบบลอจิคัลMsg 3013, ระดับ 16, สถานะ 1, บรรทัดที่ 1คืนค่าฐานข้อมูล สิ้นสุดลงอย่างผิดปกติ
หากคุณใช้คําสั่ง RESTORE FILELISTONLY เพื่อตรวจสอบไฟล์สํารอง คุณจะพบว่าชื่อไฟล์แบบลอจิคัลที่คุณอัปเดตเสียหาย อักขระตัวสุดท้ายของชื่อไฟล์แบบลอจิคัลจะถูกตัดทอน ตัวอย่างเช่น คุณพยายามปรับปรุงชื่อตรรกะสําหรับฐานข้อมูลเพื่อ DB_modified แต่จะมีการเปลี่ยนแปลงอย่างไม่ถูกต้องใน DB_modifie ในไฟล์สํารองหมายเหตุ ปัญหานี้จะไม่เกิดขึ้นถ้าคุณเริ่มการทํางานของบริการ SQL Server หลังจากอัปเดตชื่อไฟล์แบบลอจิคัล
การแก้ไข
ข้อมูลโปรแกรมอัปเดตสะสม
SQL Server 2008 R2
การแก้ไขสําหรับปัญหานี้ถูกนําออกใช้ครั้งแรกในการอัปเดตสะสม 6 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงสะสมสําหรับ SQL Server 2008 R2 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2489376 แพคเกจโปรแกรมปรับปรุงสะสม 6 สําหรับ SQL Server 2008 R2 หมายเหตุเนื่องจากรุ่นเป็นแบบสะสม แต่ละการเผยแพร่การแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่กับการเผยแพร่การแก้ไข 2008 R2 SQL Server R2 ก่อนหน้า เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
981356 รุ่น SQL Server 2008 R2 ที่เผยแพร่หลังจากเผยแพร่ SQL Server 2008 R2
ข้อมูลโปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งานแล้ว อย่างไรก็ตาม โปรแกรมแก้ไขด่วนนี้มุ่งหวังเพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น ใช้โปรแกรมแก้ไขด่วนนี้เฉพาะกับระบบที่พบปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณจะไม่ได้รับผลกระทบอย่างร้ายแรงจากปัญหานี้ เราขอแนะนําให้คุณรอการอัปเดตซอฟต์แวร์ถัดไปที่มีโปรแกรมแก้ไขด่วนนี้หากโปรแกรมแก้ไขด่วนพร้อมให้ดาวน์โหลดแล้ว จะมีส่วน "โปรแกรมแก้ไขด่วนพร้อมให้ดาวน์โหลด" ที่ด้านบนของบทความฐานความรู้นี้ หากส่วนนี้ไม่ปรากฏ ให้ติดต่อฝ่ายบริการลูกค้าของ Microsoft และฝ่ายสนับสนุนเพื่อขอรับโปรแกรมแก้ไขด่วน หมายเหตุ ถ้ามีปัญหาเพิ่มเติมเกิดขึ้น หรือถ้าการแก้ไขปัญหาใด ๆ ที่จําเป็น คุณอาจต้องสร้างการร้องขอบริการแยกต่างหาก ค่าใช้จ่ายในการสนับสนุนปกติจะใช้กับคําถามและปัญหาการสนับสนุนเพิ่มเติมที่ไม่มีคุณสมบัติสําหรับโปรแกรมแก้ไขด่วนนี้เฉพาะ สําหรับรายการทั้งหมดของหมายเลขโทรศัพท์ของฝ่ายบริการลูกค้าและฝ่ายสนับสนุนของ Microsoft หรือเมื่อต้องการสร้างคําขอรับบริการแยกต่างหาก โปรดไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
http://support.microsoft.com/contactus/?ws=supportหมายเหตุ ฟอร์ม "โปรแกรมแก้ไขด่วนที่พร้อมใช้งาน" แสดงภาษาที่มีโปรแกรมแก้ไขด่วน หากคุณไม่เห็นภาษาของคุณ เป็นเพราะโปรแกรมแก้ไขด่วนไม่พร้อมใช้งานสําหรับภาษานั้น
ข้อกำหนดเบื้องต้น
เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมี Microsoft SQL Server 2008 R2 ติดตั้งอยู่
ความต้องการในการเริ่มระบบใหม่
คุณไม่จําเป็นต้องเริ่มการทํางานของคอมพิวเตอร์ใหม่หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนนี้ไม่มีการแทนที่โปรแกรมแก้ไขด่วนอื่นใด
ข้อมูลไฟล์
โปรแกรมแก้ไขด่วนรุ่นภาษาอังกฤษนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่า) ซึ่งแสดงอยู่ในตารางต่อไปนี้ วันที่และเวลาสำหรับไฟล์เหล่านี้จะแสดงในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลไฟล์จะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC และเวลาท้องถิ่น ให้ใช้แท็บ โซนเวลา ในรายการ วันที่และเวลา ใน แผงควบคุม
อินสแตนซ์หลักของบริการฐานข้อมูล 2008 R2 SQL Server 32 บิต
|
ชื่อไฟล์ |
รุ่นของไฟล์ |
ขนาดไฟล์ |
วันที่ |
เวลา |
แพลตฟอร์ม |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
26464 |
24-ธ.ค.-10 |
0:33 |
x86 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
135520 |
24-ธ.ค.-10 |
0:33 |
x86 |
|
etwcls.mof |
ไม่สามารถใช้ได้ |
1116328 |
วันที่ 23 ธ.ค. 53 |
3:54 |
ไม่สามารถใช้ได้ |
|
instmsdb.sql |
ไม่สามารถใช้ได้ |
2241260 |
22-ธ.ค. 53 |
20:49 |
ไม่สามารถใช้ได้ |
|
mssqlsystemresource.ldf |
ไม่สามารถใช้ได้ |
524288 |
22-ธ.ค. 53 |
22:52 |
ไม่สามารถใช้ได้ |
|
mssqlsystemresource.mdf |
ไม่สามารถใช้ได้ |
63569920 |
22-ธ.ค. 53 |
22:52 |
ไม่สามารถใช้ได้ |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
13664 |
24-ธ.ค.-10 |
0:31 |
x86 |
|
sqlaccess.dll |
2009.100.1755.0 |
415584 |
24-ธ.ค.-10 |
0:29 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
367968 |
24-ธ.ค.-10 |
0:34 |
x86 |
|
sqlagent100_msdb_upgrade.sql |
ไม่สามารถใช้ได้ |
2371245 |
วันที่ 23 ธ.ค. 53 |
3:53 |
ไม่สามารถใช้ได้ |
|
sqlos.dll |
2009.100.1755.0 |
14688 |
24-ธ.ค.-10 |
0:22 |
x86 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
14688 |
24-ธ.ค.-10 |
0:21 |
x86 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4611424 |
24-ธ.ค.-10 |
0:21 |
x86 |
|
sqlservr.exe |
2009.100.1755.0 |
42904928 |
24-ธ.ค.-10 |
0:34 |
x86 |
|
sqsrvres.dll |
2009.100.1755.0 |
89952 |
24-ธ.ค.-10 |
0:21 |
x86 |
อินสแตนซ์หลักของบริการฐานข้อมูล 2008 R2 SQL Server 64 บิต
|
ชื่อไฟล์ |
รุ่นของไฟล์ |
ขนาดไฟล์ |
วันที่ |
เวลา |
แพลตฟอร์ม |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
31584 |
วันที่ 23 ธ.ค. 53 |
23:40 |
x64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
262496 |
วันที่ 23 ธ.ค. 53 |
23:40 |
x64 |
|
etwcls.mof |
ไม่สามารถใช้ได้ |
1116328 |
วันที่ 23 ธ.ค. 53 |
3:54 |
ไม่สามารถใช้ได้ |
|
instmsdb.sql |
ไม่สามารถใช้ได้ |
2241260 |
22-ธ.ค. 53 |
20:49 |
ไม่สามารถใช้ได้ |
|
mssqlsystemresource.ldf |
ไม่สามารถใช้ได้ |
524288 |
22-ธ.ค. 53 |
22:52 |
ไม่สามารถใช้ได้ |
|
mssqlsystemresource.mdf |
ไม่สามารถใช้ได้ |
63569920 |
22-ธ.ค. 53 |
22:52 |
ไม่สามารถใช้ได้ |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
14176 |
วันที่ 23 ธ.ค. 53 |
23:40 |
x64 |
|
sqlaccess.dll |
2009.100.1755.0 |
403296 |
วันที่ 23 ธ.ค. 53 |
23:38 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
428384 |
วันที่ 23 ธ.ค. 53 |
23:40 |
x64 |
|
sqlagent100_msdb_upgrade.sql |
ไม่สามารถใช้ได้ |
2371245 |
วันที่ 23 ธ.ค. 53 |
3:53 |
ไม่สามารถใช้ได้ |
|
sqlos.dll |
2009.100.1755.0 |
15712 |
วันที่ 23 ธ.ค. 53 |
23:37 |
x64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
15712 |
วันที่ 23 ธ.ค. 53 |
23:37 |
x64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4610912 |
วันที่ 23 ธ.ค. 53 |
23:37 |
x64 |
|
sqlservr.exe |
2009.100.1755.0 |
61957984 |
วันที่ 23 ธ.ค. 53 |
23:40 |
x64 |
|
sqsrvres.dll |
2009.100.1755.0 |
105824 |
วันที่ 23 ธ.ค. 53 |
23:37 |
x64 |
สถาปัตยกรรม Itanium SQL Server อินสแตนซ์หลักของบริการฐานข้อมูล 2008 R2
|
ชื่อไฟล์ |
รุ่นของไฟล์ |
ขนาดไฟล์ |
วันที่ |
เวลา |
แพลตฟอร์ม |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
63328 |
วันที่ 23 ธ.ค. 53 |
23:05 |
ia64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
477024 |
วันที่ 23 ธ.ค. 53 |
23:05 |
ia64 |
|
etwcls.mof |
ไม่สามารถใช้ได้ |
1116328 |
วันที่ 23 ธ.ค. 53 |
3:54 |
ไม่สามารถใช้ได้ |
|
instmsdb.sql |
ไม่สามารถใช้ได้ |
2241260 |
22-ธ.ค. 53 |
20:49 |
ไม่สามารถใช้ได้ |
|
mssqlsystemresource.ldf |
ไม่สามารถใช้ได้ |
524288 |
22-ธ.ค. 53 |
22:52 |
ไม่สามารถใช้ได้ |
|
mssqlsystemresource.mdf |
ไม่สามารถใช้ได้ |
63569920 |
22-ธ.ค. 53 |
22:52 |
ไม่สามารถใช้ได้ |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
19296 |
วันที่ 23 ธ.ค. 53 |
23:05 |
ia64 |
|
sqlaccess.dll |
2009.100.1755.0 |
392032 |
วันที่ 23 ธ.ค. 53 |
23:01 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
1205600 |
วันที่ 23 ธ.ค. 53 |
23:09 |
ia64 |
|
sqlagent100_msdb_upgrade.sql |
ไม่สามารถใช้ได้ |
2371245 |
วันที่ 23 ธ.ค. 53 |
3:53 |
ไม่สามารถใช้ได้ |
|
sqlos.dll |
2009.100.1755.0 |
22368 |
วันที่ 23 ธ.ค. 53 |
22:56 |
ia64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
20832 |
วันที่ 23 ธ.ค. 53 |
22:56 |
ia64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4617056 |
วันที่ 23 ธ.ค. 53 |
22:56 |
ia64 |
|
sqlservr.exe |
2009.100.1755.0 |
121762656 |
วันที่ 23 ธ.ค. 53 |
23:09 |
ia64 |
|
sqsrvres.dll |
2009.100.1755.0 |
188768 |
วันที่ 23 ธ.ค. 53 |
22:56 |
ia64 |
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ ให้ใช้หนึ่งในสองวิธีต่อไปนี้:
-
หลังจากชื่อไฟล์แบบลอจิคัลถูกปรับเปลี่ยน ให้เรียกใช้คําสั่งต่อไปนี้เพื่อเริ่มฐานข้อมูลใหม่:ALTER DATABASE <ชื่อฐานข้อมูล> SET OFFLINEALTER DATABASE <ชื่อฐานข้อมูล> SET ONLINE
-
เมื่อคุณปรับเปลี่ยนชื่อไฟล์แบบลอจิคัล ให้ผนวกอักขระช่องว่างดัมมีในชื่อตรรกะใหม่ ตัวอย่างเช่น ถ้าคุณต้องการเปลี่ยนชื่อตรรกะเป็น DB_modified ให้ใช้คําสั่งต่อไปนี้เพื่อปรับเปลี่ยนชื่อไฟล์แบบลอจิคัล:ALTER DATABASE <ชื่อฐานข้อมูล> MODIFY FILE (NAME=N'<ชื่อฐานข้อมูล>', NEWNAME='DB_modified ') -- ผนวก ' ' ไปยัง NEWNAME
อ้างอิง
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับคําสั่ง ALTER DATABASE Transact-SQL โปรดเยี่ยมชมเว็บไซต์ Microsoft Developer Network (MSDN) ต่อไปนี้:
ข้อมูลทั่วไปเกี่ยวกับคําสั่ง ALTER DATABASE Transact-SQLสําหรับข้อมูลเพิ่มเติมเกี่ยวกับคําสั่ง RESTORE FILELISTONLY Transact-SQL แวะไปที่เว็บไซต์ Microsoft Developer Network (MSDN) ต่อไปนี้:
ข้อมูลทั่วไปเกี่ยวกับคําสั่ง RESTORE FILELISTONLY Transact-SQL