ฉันพยายามกู้คืนไฟล์สำรองของ SQL Server สำหรับฐานข้อมูลของฉัน แต่มีข้อผิดพลาดเกิดขึ้นดังนี้:
ชุดการสำรองข้อมูลจะทำการสำรองข้อมูลของฐานข้อมูลอื่นนอกเหนือจากที่มีอยู่
ฐานข้อมูลของฉันใน SQL Server 2008 และไฟล์สำรองอยู่ในปี 2005
มีปัญหาอะไรบ้าง?
ฉันพยายามกู้คืนไฟล์สำรองของ SQL Server สำหรับฐานข้อมูลของฉัน แต่มีข้อผิดพลาดเกิดขึ้นดังนี้:
ชุดการสำรองข้อมูลจะทำการสำรองข้อมูลของฐานข้อมูลอื่นนอกเหนือจากที่มีอยู่
ฐานข้อมูลของฉันใน SQL Server 2008 และไฟล์สำรองอยู่ในปี 2005
มีปัญหาอะไรบ้าง?
คำตอบ:
ฉันก็เจอปัญหานี้เช่นกัน
สารละลาย :
.bak
ไฟล์ไปยังมันทั้ง:
1) ใช้WITH REPLACE
ในขณะที่ใช้RESTORE
คำสั่ง (หากใช้ GUI จะพบได้ในตัวเลือก -> เขียนทับฐานข้อมูลที่มีอยู่ ( WITH REPLACE
)
2) Delete
ฐานข้อมูลเก่าซึ่งขัดแย้งและกู้คืนอีกครั้งโดยใช้RESTORE
คำสั่ง
ตรวจสอบลิงค์เพื่อดูรายละเอียดเพิ่มเติม
ขั้นแรกให้สร้างฐานข้อมูลเปล่าที่มีชื่อเดียวกัน จากนั้นไปที่ตัวเลือกการคืนค่า
ภายใต้ตัวเลือกในบานหน้าต่างด้านซ้ายอย่าลืมเลือก
แค่นั้นแหละ
ประสบปัญหาเดียวกันและพบวิธีแก้ปัญหาด้วยการใช้ SSMS 2014
- เพียงแค่เลือกตัวเลือกเขียนทับฐานข้อมูลที่มีอยู่ (ด้วยการแทนที่)
USE [master];
GO
CREATE DATABASE db;
GO
CREATE DATABASE db2;
GO
BACKUP DATABASE db TO DISK = 'c:\temp\db.bak' WITH INIT, COMPRESSION;
GO
RESTORE DATABASE db2
FROM DISK = 'c:\temp\db.bak'
WITH REPLACE,
MOVE 'db' TO 'c:\temp\db2.mdf',
MOVE 'db_log' TO 'c:\temp\db2.ldf';
ง่าย ๆ 3 ขั้นตอน:
1- คลิกขวาที่ฐานข้อมูล→งาน→กู้คืน→ฐานข้อมูล
2- ตรวจสอบDevice
แหล่งที่มาและค้นหาไฟล์. bak (หรือซิป. bak)
3- ในบานหน้าต่างด้านซ้ายคลิกoptions
และ:
ตัวเลือกอื่น ๆ เป็นตัวเลือกจริงๆ (และที่สำคัญแน่นอน)!
มันเป็นเพราะ.mdf
และ.ldf
ไฟล์จากต้นฉบับDb
ถูกค้นหาที่อาจจะc:\programFile\....
และข้อมูลนี้จะถูกบันทึกไว้ในการสำรองข้อมูล!
หากคุณสร้างฐานข้อมูลเดียวกันบน SQL Server อื่นที่มีการติดตั้งc:\program Files (x86)\ ....
คุณไม่สามารถกู้คืนได้ตามปกติ คุณต้องย้ายที่ตั้ง.mdf
และ.ldf
ไฟล์
ดังนั้น:
สร้างฐานข้อมูลเปล่าบนเซิร์ฟเวอร์ใหม่
คลิกขวาที่ว่างเปล่า Db> งาน> กู้คืน> ฐานข้อมูล> คลิกอุปกรณ์เลือก.bak
ไฟล์ของคุณ> เลือก Db เพื่อกู้คืน
ทำ!
หวังว่ามันจะช่วย!
วันนี้ฉันเจอปัญหาที่คล้ายกัน พยายามแก้ไขปัญหาทั้งหมดข้างต้น แต่ไม่ได้ผล ดังนั้นโพสต์โซลูชันของฉันที่นี่
อย่าลืมยกเลิกการเลือกการสำรองข้อมูลหางยาวก่อนที่จะกู้
หวังว่ามันจะช่วยคนอื่นด้วย!
หากคุณใช้วิธีสคริปต์และมีข้อผิดพลาดเกี่ยวกับไฟล์ LDF และ MDF คุณสามารถค้นหาไฟล์สำรองสำหรับชื่อโลจิคัล (และรายละเอียดอื่น ๆ ) ของไฟล์ในชุดสำรองโดยใช้ข้อมูลต่อไปนี้:
-- Queries the backup file for the file list in backup set, where Type denotes
-- type of file. Can be L,D,F or S
-- info: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql
RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak'
GO
คุณจะได้ผลลัพธ์ที่คล้ายกับที่แสดงต่อไปนี้:
จากนั้นคุณสามารถใช้ชื่อโลจิคัลเหล่านั้นในเคียวรี:
-- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario
RESTORE DATABASE DB
FROM DISK='C:\Temp\DB_backup.bak'
WITH REPLACE,
MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above
MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.ldf'; -- "DB_log" is LDF logical name from query above
ข้อมูลเพิ่มเติมเกี่ยวกับสามารถพบได้จากเอกสารของRESTORE FILELISTONLY
SQL Server
สิ่งสำคัญคือต้องแน่ใจว่าชื่อฐานข้อมูลของคุณตรงกับชื่อฐานข้อมูลในการสำรองข้อมูลที่คุณพยายามกู้คืน หากไม่ตรงกันคุณจะได้รับข้อผิดพลาดเดียวกัน
ก่อนทำสิ่งอื่นใดให้ยืนยันว่าข้อมูลสำรองของคุณเต็มหรือต่างกัน หากคุณพยายามสร้างฐานข้อมูลใหม่จากการสำรองข้อมูลส่วนต่างไม่ว่าคุณจะทำอย่างไรคุณจะพบข้อผิดพลาด
system.data.sqlclient.sqlerror: ชุดการสำรองข้อมูลจะเก็บข้อมูลสำรองของฐานข้อมูลอื่นนอกเหนือจากฐานข้อมูล 'Dbname' ที่มีอยู่
ฉันได้พบเจอ soultion แล้ว
อย่าสร้างฐานข้อมูลด้วยชื่อเดียวกันหรือชื่อฐานข้อมูลอื่น! สำคัญ
คลิกขวาที่ฐานข้อมูล | ภารกิจ> กู้คืน> ฐานข้อมูล
ภายใต้ "แหล่งที่มาสำหรับการคืนค่า" เลือก "จากอุปกรณ์"
เลือกไฟล์. bak
เลือกช่องทำเครื่องหมายสำหรับฐานข้อมูลใน gridview ด้านล่าง
ไปยังฐานข้อมูล: "ที่นี่คุณสามารถพิมพ์ชื่อฐานข้อมูลใหม่" (เช่น: DemoDB)
อย่าเลือกฐานข้อมูลที่มีอยู่จาก DropDownlist
ตอนนี้คลิกที่ปุ่มตกลงมันจะสร้าง Databse ใหม่และกู้คืนข้อมูลทั้งหมดจากไฟล์. bak ของคุณ
คุณสามารถขอความช่วยเหลือจากลิงค์นี้ได้
หวังว่ามันจะช่วยในการแยกแยะปัญหาของคุณ ...
สาเหตุนี้มักเกิดจากความเข้ากันไม่ได้ของรุ่น ทำตามขั้นตอนเหล่านี้เพื่อแก้ไข:
ขั้นตอนที่ 1: สร้างฐานข้อมูลด้วยชื่อที่คุณต้องการ (ในกรณีของเรา AdventureWorks)
ขั้นตอนที่ 2: เขียนคลิกที่ฐานข้อมูลและคลิกที่งาน >> คืนค่า >> ฐานข้อมูล ...
ขั้นตอนที่ 3: บนหน้าจอการคืนค่าไปที่ตัวเลือกที่สามของตัวเลือก ตอนนี้เลือกช่องทำเครื่องหมาย“ เขียนทับฐานข้อมูลที่มีอยู่ (With REPLACE)”
ขั้นตอนที่ 4: คลิกตกลง มันควรจะคืนค่าฐานข้อมูลได้สำเร็จ
หมายเหตุ: เมื่อคุณกู้คืนฐานข้อมูลด้วย REPLACE จะเป็นการเขียนทับฐานข้อมูลเก่า
ปัญหาเดียวกันกับฉันวิธีแก้ปัญหาสำหรับฉันคือ:
ฉันแค่พยายามแก้ไขปัญหานี้
ฉันพยายามทุกอย่างตั้งแต่การทำงานเป็นผู้ดูแลไปจนถึงข้อเสนอแนะที่พบที่นี่และที่อื่น ๆ ; สิ่งที่แก้ไขให้ฉันในท้ายที่สุดคือการตรวจสอบตัวเลือก "ย้ายไฟล์" ในแท็บคุณสมบัติไฟล์
หวังว่านี่จะช่วยคนอื่นได้
ฉันต้องสร้างฐานข้อมูลใหม่ในพื้นที่ของฉันเพื่อทำการทดสอบ & ฉันได้สำรองข้อมูลจากการทดสอบของฉัน ฉันสร้าง db ก่อนและพยายามรัน BAK ที่ด้านบนของ db ใหม่ซึ่งสร้างข้อผิดพลาดนี้ให้ฉัน ฉันลบ db และกู้คืนในขณะที่จัดหาชื่อ db ใหม่ในหน้าจอการคืนค่าเอง db ถูกสร้างขึ้นโดยอัตโนมัติเมื่อกู้คืน
บางท่านมีความซับซ้อนสูงกว่านี้ ฉันพบว่ามันง่ายมาก
1) สร้างฐานข้อมูลด้วยชื่อเดียวกับชื่อฐานข้อมูลไฟล์. bak ของคุณสำคัญ!
2) คลิกขวาที่ฐานข้อมูล | ภารกิจ> กู้คืน> ฐานข้อมูล
3) ภายใต้ "Source for restore" เลือก "จากอุปกรณ์"
4) เลือกไฟล์. bak
5) เลือกช่องทำเครื่องหมายสำหรับฐานข้อมูลใน gridview ด้านล่าง
6) ภายใต้ "เลือกหน้า" ทางด้านขวาเลือก "ตัวเลือก"
7) เลือกช่องทำเครื่องหมายที่มีข้อความ "เก็บรักษาการตั้งค่าการจำลองแบบ (ด้วย KEEP_REPLICATION)
ตอนนี้กลับไปที่หน้าทั่วไปแล้วคลิกตกลงเพื่อคืนค่าฐานข้อมูล ...
ฉันทำงานเสร็จผ่านทางเลือกโดยใช้สคริปต์สร้าง ที่ทำงานให้ฉันเป็น Backup-Restore ไม่ได้ช่วยแก้ไขปัญหาเนื่องจากข้อผิดพลาดเดียวกัน
ในตัวเลือกเปลี่ยนชื่อไฟล์ "Restore As" เป็น mdf ฐานข้อมูลใหม่และ ldf มันคือการอ้างอิงไฟล์. mdf และ. ldf ฐานข้อมูลต้นทาง
คุณสามารถกู้คืนไปยังฐานข้อมูลใหม่ตรวจสอบไวยากรณ์ชื่อไฟล์มันจะอยู่ในล็อกไฟล์สำหรับ SQL เวอร์ชันใหม่จะเป็นคำต่อท้าย "_log"
โฆษณาตรวจสอบการเขียนทับธงฐานข้อมูลที่มีอยู่ในแท็บตัวเลือก
ฟาบิโอ
ฉันแน่ใจว่าปัญหานี้เกี่ยวข้องกับการอนุญาตของไฟล์และโฟลเดอร์
ฉันพยายามกู้คืนฐานข้อมูลการผลิตไปยังฐานข้อมูลการจัดเตรียมบนเซิร์ฟเวอร์เดียวกัน
สิ่งเดียวที่ทำงานในกรณีของฉันคือคืนค่าฐานข้อมูลว่างเปล่าใหม่ สิ่งนี้ใช้งานได้ดีอย่าพยายามเขียนทับไฟล์ที่ใช้งานจริง (ซึ่งถ้าหากคุณเพียงแค่กู้คืนไฟล์สำรองข้อมูลการผลิตไปยังฐานข้อมูลการแสดงละครที่มีอยู่) จากนั้นลบฐานข้อมูลเก่าและเปลี่ยนชื่อ - ไฟล์จะเก็บชื่อ temp ใหม่ไว้ แต่ในกรณีของฉันก็ใช้ได้
(หรือลบฐานข้อมูลการ staging ก่อนจากนั้นคุณสามารถคืนค่าฐานข้อมูลใหม่ที่มีชื่อเดียวกับฐานข้อมูล staging)
แทนที่จะคลิกที่Restore Databaseคลิกที่ Restore File and Filegroups ..
ทำงานบนเซิร์ฟเวอร์ sql ของฉัน
สิ่งนี้ช่วยให้ฉันนำเข้าไฟล์สำรองจากไดรฟ์ระบบ
WITH MOVE
WITH REPLACE, MOVE