ตระกูลสื่อบนอุปกรณ์เกิดขึ้นไม่ถูกต้อง SQL Server ไม่สามารถประมวลผลตระกูลสื่อนี้


31

ฉันพยายามกู้คืน. BAK ในเซิร์ฟเวอร์ SQL แต่ได้รับข้อผิดพลาดต่อไปนี้:

ข่าวสารเกี่ยวกับ 3241, ระดับ 16, สถานะ 7, สาย 1 ตระกูลสื่อบนอุปกรณ์ 'c: \ glyn \ JA.bak' เกิดขึ้นไม่ถูกต้อง SQL Server ไม่สามารถประมวลผลตระกูลสื่อนี้ ข่าวสารเกี่ยวกับ 3013 ระดับ 16 สถานะ 1 บรรทัด 1 ฐานข้อมูลการคืนค่าถูกยกเลิกอย่างผิดปกติ

ฉันได้ลองกู้คืนโดยใช้ 2012, 2008 และแม้กระทั่งปี 2005 แต่ไม่มีอะไรทำงานฉันได้ใช้แบบสอบถามต่อไปนี้และผ่านTasks >> Back upแต่ไม่มีอะไรทำงานนี่คือ SQL ของฉัน:

RESTORE DATABASE JA FROM DISK='c:\glyn\JA.bak'

ไม่มีใครมีข้อเสนอแนะใด ๆ ? ฉันได้อ่านแล้วว่าบักอาจเสียหายมันถูกส่งไปให้ฉันโดยผู้พัฒนาคนอื่นบน DVD ที่กำลังทำงานในโครงการ


ฉันพบวิธีแก้ปัญหาแล้วที่sqlbak.com/blog/media-family-on-device-is-incorrectly-formed

คำตอบ:


12

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

บันทึกไปยังไฟล์ -> ขั้นสูง -> ชนิดของข้อมูลไปยังสคริปต์ -> Schema และข้อมูล

นอกจากนี้ยังให้แน่ใจว่าจะScript สำหรับเซิร์ฟเวอร์รุ่น

นี่อาจเป็นตัวเลือกเดียวที่ได้รับการสนับสนุนหากคุณพยายามเปลี่ยนจาก SQL Server ที่ใหม่กว่าเป็นรุ่นเก่า

เกี่ยวข้อง: กู้คืนการสำรองข้อมูล SQL Server 2012 ไปยังฐานข้อมูล SQL Server 2008 หรือไม่


ดูเหมือนแฮ็ก แต่ฉันคิดว่านี่จะช่วยแก้ไขปัญหานี้ได้ในกรณีของฉัน
jpierson

7

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

และบล็อกนี้แสดงว่าคนอื่นแก้ไขปัญหาเดียวกันได้อย่างไร


8
"แสดงวิธีที่คนอื่นแก้ไขปัญหาเดียวกัน" โดยทั่วไปในไซต์เครือข่าย SE คุณควรโพสต์สิ่งที่เกี่ยวข้องเช่นบล็อกโพสต์ มันป้องกันการสลายตัวของการเชื่อมโยง
jcollum

6

ฉันมีปัญหาเดียวกันสคริปต์ของฉันระบุประเภทไฟล์ที่ไม่ถูกต้องฉันมี.bakและฉันกำลังระบุFILE = 2ว่าไฟล์ประเภท.trnใด

USE [master]
RESTORE DATABASE [MyNewDB] FROM
DISK = N'D:\MyOldDB.bak'
WITH
    FILE = 1, -- 1 = .bak, 2 = .trn type backup
    MOVE N'MyOldDB' TO N'd:\data\MyOldDB.mdf',
    MOVE N'MyOldDB_log' TO N'd:\data\MyOldDB_log.ldf',
    NOUNLOAD,
    STATS = 5    
GO

ฉันไม่แน่ใจว่าคำสั่ง RESTORE ตรวจพบอัตโนมัติหรือตั้งค่าเริ่มต้นสำหรับสิ่งนี้ ...


1
ข้อผิดพลาดหันไปรอบ ๆ ปัญหานี้คือเมื่อคุณใช้ GUI เพื่อกู้คืนฐานข้อมูล SQL Managment Studio ไม่ได้ให้ข้อมูลรายละเอียดแก่คุณ หากคุณพยายามกู้คืนโดยใช้สคริปต์ t-sql เซิร์ฟเวอร์ sql จะรายงานให้คุณใช้ตัวเลือก MOVE
dlopezgonzalez

5

เรียกใช้สคริปต์ต่อไปนี้บนเซิร์ฟเวอร์ SQL ต้นทางและปลายทางรุ่นควรตรงกันหรือปลายทางควรมี SQL Server รุ่นที่สูงกว่ามิฉะนั้นคุณจะไม่สามารถกู้คืนไฟล์. bak ได้

SELECT @@Version

1
จุดเกี่ยวกับเวอร์ชันซ้ำแล้วซ้ำอีกในคำตอบอื่น ๆ
Andriy M

1
@AndriyM คุณถูกต้อง แต่การปฏิบัติที่เป็นไปได้หายไป เราไม่ได้พูดถึงประวัติศาสตร์หรือภูมิศาสตร์คำสั่งหรือรหัสบางอย่างควรถูกกล่าวถึง
Shadi Namrouti


-4

ลบไฟล์ที่เสียหายและทำการสำรองข้อมูลอีกครั้ง


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