นำเข้าไฟล์. bak ไปยังฐานข้อมูลในเซิร์ฟเวอร์ SQL


230

ฉันมีไฟล์ที่มี.bakนามสกุล

ฉันจะนำเข้าวันที่นี้ไปยังฐานข้อมูลใน SQL Server ได้อย่างไร


ฉันสมมติว่าคุณกำลังใช้ MSSQL นี่คือเธรดที่อธิบายถึงวิธีที่คุณสามารถกู้คืนได้
Andrew Keith

คุณสามารถสร้างฐานข้อมูลเปล่าและกู้คืนข้อมูลไปยังฐานข้อมูลเปล่าโดยใช้. bak
Michel Ayres

วิธีที่ง่ายที่สุดคือคำตอบที่ 3 คลิกขวาที่ฐานข้อมูลนำเข้าอุปกรณ์เลือกไฟล์. bak เสร็จแล้ว
Mafii

บางคนสามารถขยายคำตอบสำหรับโซลูชันอัตโนมัติที่เป็นมิตรได้หรือไม่ การใช้งาน UI และการคลิกหลายครั้งนั้นไม่ได้มีประสิทธิภาพมากนัก
L. Holanda

คำตอบ:


251

บนStudio จัดการเซิร์ฟเวอร์ SQL

  1. คลิกขวาที่ฐานข้อมูลที่บานหน้าต่างด้านซ้าย (Object Explorer)
  2. คลิกคืนค่าฐานข้อมูล ...
  3. เลือกอุปกรณ์คลิก...และเพิ่มไฟล์. bakของคุณ
  4. คลิกตกลงจากนั้นตกลงอีกครั้ง

เสร็จสิ้น


4
งานนี้มีเสน่ห์เหมือนกัน คำแนะนำเหล่านี้เป็นคำสั่งที่ง่ายมากและเป็นคำแนะนำเดียวกันจากลิงก์อย่างเป็นทางการของ Microsoft ที่ระบุไว้ในคำตอบที่ได้รับการโหวตมากที่สุดที่นี่
Leonardo Lopez

3
หากล้มเหลวคุณอาจต้องลบฐานข้อมูลที่มีอยู่
DigitalDesignDj

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

13
ไฟล์. BAK ของฉันอยู่ในไดเรกทอรี "ดาวน์โหลด" ซึ่งมีอยู่ใต้บัญชีผู้ใช้ของฉัน ฉันต้องย้ายไฟล์. BAK ไปที่รูทของ C: เพื่อให้เครื่องมือนี้เห็นและอนุญาตให้ฉันกู้คืนได้ ไฟล์ภายใต้ผู้ใช้ของฉันไม่เห็นด้วยเหตุผลบางประการ
jeremysawesome

6
สิ่งนี้ใช้ไม่ได้ ฉันคลิกขวาที่ "ฐานข้อมูล" แต่ไม่มี "กู้คืนฐานข้อมูล ... "
user34660

53

ไฟล์. bak เป็นการสำรองฐานข้อมูล คุณสามารถคืนค่าการสำรองข้อมูลด้วยวิธีการด้านล่าง:

วิธีการ: คืนค่าการสำรองฐานข้อมูล (SQL Server Management Studio)


8
สิ่งนี้ใช้ไม่ได้ บทความกล่าวว่า: "... 2) ขยายฐานข้อมูลเลือกฐานข้อมูลผู้ใช้หรือขยายฐานข้อมูลระบบจากนั้นเลือกฐานข้อมูลระบบ 3) คลิกขวาที่ฐานข้อมูลชี้ไปที่งานแล้วคลิก Restore." ไม่! คุณไม่สามารถคลิกขวาที่ฐานข้อมูลที่ไม่มีอยู่! คุณพยายามกู้คืนหรือนำเข้าฐานข้อมูลที่กำหนด คุณจะคลิกขวาที่ฐานข้อมูลที่ไม่ได้โหลดได้อย่างไร แปลกประหลาดของ MSDN และทำให้รุนแรงขึ้นที่คืนค่าการทำงานใน SSMS ระบุไว้ แต่ไม่ทำงาน ทำไม? โชคดีที่คำสั่ง SQL ที่คนอื่นให้การทำงานที่นี่
Nicholas Petersen

14
มีบทความที่แตกต่างกันสำหรับการกู้คืนไปยังฐานข้อมูลใหม่ที่นี่: msdn.microsoft.com/en-us/library/ms186390(v=sql.90).aspx
Jon Schoning

35
RESTORE FILELISTONLY 
FROM DISK = 'D:\3.0 Databases\DB.bak' 

RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak' 

และคุณต้องย้ายไฟล์ mdf, ndf & ldf ที่เหมาะสมโดยใช้

 With Move 'primarydatafilename' To 'D:\DB\data.mdf', 
 Move 'secondarydatafile'To 'D:\DB\data1.ndf', 
 Move 'logfilename' To 'D:\DB\log.ldf'

1
สิ่งนี้มีประโยชน์มากสำหรับฉันเนื่องจากฉันต้องการกู้คืนไฟล์. bak ลงในคอนเทนเนอร์ Docker sql ที่มีโฮสต์ macOS โดยใช้ Azure Data Studio สิ่งที่ฉันต้องทำคือคัดลอก. bak ไปยังคอนเทนเนอร์ปรับเส้นทางและเปลี่ยนเป็น / และฉันสามารถกู้คืนได้สำเร็จ
andrewb

ดีใจที่มันช่วย @andrewb :)
RameshVel

30

คุณสามารถกู้คืนไฟล์สำรองฐานข้อมูลเหล่านี้ได้โดยใช้วิธีการดั้งเดิมของ SQL Server หรือคุณสามารถใช้เครื่องมือApexSQL Restoreเพื่อแนบไฟล์อย่างรวดเร็ว

คำเตือน: ฉันทำงานเป็นวิศวกรฝ่ายสนับสนุนผลิตภัณฑ์ที่ ApexSQL


18

แทนที่จะเลือกกู้คืนฐานข้อมูล ... ให้เลือกคืนค่าไฟล์และกลุ่มไฟล์ ...

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

(ชื่อตัวเลือกการคืนค่า SQL Server ไม่ง่ายสำหรับสิ่งที่ควรเป็นงานง่ายมาก)


นี่เป็นคำแนะนำที่ดีฉันทำอย่างนี้และรายงานว่าการคืนสภาพสำเร็จ แต่ยังมีปัญหาอยู่เล็กน้อย ... ฐานข้อมูลไม่ได้อยู่ในรายการใน Object explorer ฉันลอง "แนบ" และมันยังมีไฟล์. mdf ที่ถูกต้อง (ฉันถือว่าผลิตภัณฑ์ของการคืนค่า) ถ้าฉันพยายามแนบมันจะโยนข้อผิดพลาดที่มีการใช้งานแล้ว คุณมีเคล็ดลับสำหรับด่านนี้ไหม?
AlanSE

อย่าลืมรีเฟรชในตอนท้ายเพื่อดูฐานข้อมูลใหม่ของคุณ นี่อาจเป็นทางออกที่รวดเร็วที่สุดในการเริ่มต้นใช้งาน
demongolem

นี่คือตัวเลือกที่ทำงานสำหรับฉันเมื่อต้องการนำเข้า.
db

7
  1. เชื่อมต่อกับเซิร์ฟเวอร์ที่คุณต้องการจัดเก็บฐานข้อมูลของคุณ
  2. คลิกขวาที่ฐานข้อมูล
  3. คลิกคืนค่า
  4. เลือกปุ่มตัวเลือกอุปกรณ์ใต้ส่วนแหล่งที่มา
  5. คลิกเพิ่ม
  6. นำทางไปยังเส้นทางที่เก็บไฟล์. bak ให้เลือกแล้วคลิกตกลง
  7. ป้อนปลายทางของฐานข้อมูลของคุณ
  8. ป้อนชื่อที่คุณต้องการเก็บฐานข้อมูลของคุณ
  9. คลิกตกลง

เสร็จสิ้น


4

เพียงใช้

sp_restoredb 'ชื่อฐานข้อมูลของคุณ', 'ตำแหน่งจากที่คุณต้องการกู้คืน'

ตัวอย่าง: sp_restoredb 'omDB', 'D: \ abc.bak'


สิ่งที่แตกต่างระหว่างนี้และRESTORE DATABASEในขณะที่msdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspx ?
unhammer

1
กู้คืนฐานข้อมูลดำเนินการกู้คืนเฉพาะในกรณีที่โครงสร้างของฐานข้อมูลของคุณเหมือนกับไฟล์สำรอง แต่sp_restoredbดำเนินการกู้คืนแม้ฐานข้อมูลของคุณจะมีโครงสร้างที่แตกต่างกันหรือว่างเปล่าโดยสิ้นเชิง (ใหม่)
Omprakash tomar

3
  1. คัดลอกแฟ้ม. bak สำรองของคุณในตำแหน่งที่ตั้งต่อไปนี้ของพีซีของคุณ: Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL
  2. เชื่อมต่อกับเซิร์ฟเวอร์ที่คุณต้องการจัดเก็บฐานข้อมูลของคุณ
  3. คลิกขวาที่ฐานข้อมูล
  4. คลิกคืนค่า
  5. เลือกปุ่มตัวเลือกอุปกรณ์ใต้ส่วนแหล่งที่มา
  6. คลิกเพิ่ม
  7. นำทางไปยังเส้นทางที่เก็บไฟล์. bak ให้เลือกแล้วคลิกตกลง
  8. ป้อนปลายทางของฐานข้อมูลของคุณ
  9. ป้อนชื่อที่คุณต้องการเก็บฐานข้อมูลของคุณ
  10. คลิกตกลง

โซลูชันด้านบนพลาดที่เก็บไฟล์สำรอง (.bak) ของคุณ สิ่งนี้ควรทำเคล็ดลับ มันใช้งานได้สำหรับฉัน


1

คุณสามารถใช้แพ็คเกจแพ็กเกจหากคุณต้องการกู้คืนฐานข้อมูลในกระบวนการพัฒนา

ติดตั้ง:

npm install -g sql-bak-restore

การใช้งาน:

sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>

อาร์กิวเมนต์:

  • bakpath ญาติหรือเส้นทางที่แน่นอนไปยังไฟล์
  • dbName ซึ่งจะเรียกคืนฐานข้อมูล (!! ฐานข้อมูลที่มีชื่อนี้จะถูกลบหากมีอยู่ !!)
  • oldDbName ชื่อฐานข้อมูล (หากคุณไม่ทราบให้ระบุบางสิ่งและเรียกใช้คุณจะเห็นฐานข้อมูลที่พร้อมใช้งานหลังจากเรียกใช้)
  • เจ้าของชื่อผู้ใช้เพื่อสร้างและมอบสิทธิ์ db_owner ให้กับเขา (รหัสผ่าน "1")

!! ยูทิลิตี้บรรทัดคำสั่งsqlcmdควรอยู่ในตัวแปร PATH ของคุณ

https://github.com/vladimirbuskin/sql-bak-restore/


1

บน Microsoft SQL Server Management Studio 2019:

ป้อนคำอธิบายรูปภาพที่นี่

ในหน้าต่าง Restore Database:

  1. เลือกอุปกรณ์

  2. เลือกเพิ่มและเลือกไฟล์เป้าหมาย

  3. ตกลงเพื่อยืนยัน

  4. ตกลงเพื่อยืนยันการคืนค่า

ป้อนคำอธิบายรูปภาพที่นี่

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