.Bak dosyasını SQL sunucusundaki bir veritabanına alma


230

.bakUzantılı bir dosyam var.

Bu tarihi SQL Server'daki bir veritabanına nasıl alabilirim?


MSSQL kullandığınızı varsayıyorum, burada geri yükleyebileceğiniz birkaç yolu açıklayan bir iş parçacığı .
Andrew Keith

Eğer .bak kullanarak, boş bir veritabanı oluşturmak ve boş veritabanına verileri geri yükleyebilirsiniz
Michel Ayres

En kolay yolu 3. yanıttır, Sağ Tıklama veritabanları, içe aktarma, cihaz, .bak dosyasını seçin, bitti.
Mafii

Birisi otomasyon dostu bir çözümün cevabını genişletebilir mi? Kullanıcı arayüzünden geçmek ve birkaç tıklama yapmak çok verimli değildir.
L.Holanda

Yanıtlar:


251

On SQL Server Management Studio

  1. Sol bölmedeki Veritabanlarına sağ tıklayın (Nesne Gezgini)
  2. Veritabanını Geri Yükle ... seçeneğini tıklayın .
  3. Cihaz'ı seçin , tıklayın ...ve .bak dosyanızı ekleyin
  4. Click Tamam , o zaman tamam tekrar

Bitti.


4
Bu bir cazibe gibi çalışır. Bunlar mükemmel basitleştirilmiş talimatlardır ve aslında burada en çok oylanan cevapta belirtilen resmi Microsoft bağlantısından aynı talimatlardır.
Leonardo Lopez

3
Bu başarısız olursa, muhtemelen varolan bir veritabanını silmeniz gerekir.
DigitalDesignDj

3
Bu benim için çalışmıyor. Doğru klasörü işaret ediyorum ve dosyaları bile görmüyor. Tam dosya adını iletişim kutusuna yapıştırıyorum ve dosyanın mevcut olmadığını söylüyor. Ayrıca, iletişim kutusu sunucumda olmayan bir sürücü görür. Veritabanı son yedeklemenin konumunu hatırlıyor mu ve yalnızca bu noktadan itibaren geri yüklemeyi kabul edecek mi? Geri yüklemek için bir yedekleme dosyası seçemiyorum çok garip buluyorum.
James

13
.BAK dosyam kullanıcı hesabımın altında bulunan "İndirilenler" dizinindeydi. Bu aracın görmesi ve ondan geri yüklememe izin vermesi için .BAK dosyasını C: köküne taşımak zorunda kaldım. Kullanıcımın altındaki dosyalar herhangi bir nedenle görülmedi.
jeremysawesome

6
Bu çalışmıyor. "Veritabanları" na sağ tıklıyorum ama "Veritabanını Geri Yükle ..." yok.
user34660

53

.bak dosyaları veritabanı yedekleridir. Yedeklemeyi aşağıdaki yöntemle geri yükleyebilirsiniz:

Nasıl yapılır: Veritabanı Yedeklemesini Geri Yükleme (SQL Server Management Studio)


8
Bu çalışmıyor. Makale şöyle diyor: "... 2) Veritabanları'nı genişletin. Veritabanına bağlı olarak, bir kullanıcı veritabanı seçin veya Sistem Veritabanları'nı genişletin ve ardından bir sistem veritabanı seçin. 3) Veritabanını sağ tıklatın, Görevler'in üzerine gelin ve sonra Özellikler'i tıklatın. Onarmak." DEĞİL! Varolmayan bir veritabanını sağ tıklatamazsınız! Daha sonra, verilen veritabanını geri yüklemeye veya içe aktarmaya çalışıyorsunuz. Yüklü olmayan bir veritabanını nasıl sağ tıklatabilirsiniz? MSDN tuhaftır ve SSMS'deki geri yükleme işlevselliğinin artırılması belirtilmiştir, ancak çalışmaz. Neden? Neyse ki, burada başkalarının verdiği SQL komutları çalışır.
Nicholas Petersen

14
Burada bulunan yeni bir veritabanına geri yükleme için farklı bir makale var: 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' 

ve uygun mdf, ndf ve ldf dosyalarını

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

1
Azure Data Studio'yu kullanarak bir macOS ana bilgisayarıyla bir sql Docker kapsayıcısına bir .bak dosyasını geri yüklemek istediğim için bu benim için çok yararlı oldu. Tek yapmam gereken .bak'i konteynere kopyalamak, yolu ayarlamak ve / olarak değiştirmekti ve başarıyla geri yükleyebildim.
andrewb

Sevindim @andrewb yardımcı oldu :)
RameshVel

30

Bu veritabanı yedekleme dosyalarını yerel SQL Server yöntemlerini kullanarak geri yükleyebilir veya ApexSQL Geri Yükleme aracını kullanarak dosyaları hızla sanal olarak ekleyebilir ve tam olarak geri yüklenen veritabanları olarak erişebilirsiniz.

Feragatname: ApexSQL'de Ürün Destek Mühendisi olarak çalışıyorum


18

Veritabanını Geri Yükle ... 'yi seçmek yerine Dosyaları ve Dosya Gruplarını Geri Yükle ...' yi seçin .

Ardından bir veritabanı adı girin, kaynak olarak .bak dosya yolunuzu seçin, geri yükleme onay kutusunu işaretleyin ve Tamam'ı tıklayın. .Bak dosyası geçerliyse çalışır.

(SQL Server geri yükleme seçenek adları çok basit bir görev için sezgisel değildir.)


Bu iyi bir tavsiye, bunu yaptım ve geri yüklemenin başarılı olduğunu bildirdi. Ancak bir sorun hala var ... veritabanı nesne gezgininde listelenmiyor. Ben "eklemek" denemek, ve hatta doğru .mdf dosyası var (geri yükleme bir ürün olduğunu varsayalım). Eklemeye çalışırsam, zaten kullanımda olduğu bir hata atar. Bu aşama için herhangi bir ipucunuz var mı?
AlanSE

Yeni veritabanınızı görmek için sonunda bir yenileme yaptığınızdan emin olun. Bu, çalışmaya başlamak için en hızlı çözüm olabilir.
demongolem

Bu, aynı veritabanı
.bak'ı

7
  1. DB'nizi depolamak istediğiniz bir sunucuya bağlanın
  2. Veritabanı'na sağ tıklayın
  3. Geri Yükle'yi tıklayın
  4. Kaynak bölümün altındaki Cihaz radyo düğmesini seçin
  5. Ekle'yi tıklayın.
  6. .Bak dosyanızın depolandığı yola gidin, dosyayı seçin ve Tamam'ı tıklayın.
  7. DB'nizin hedefini girin
  8. DB'nizi saklamak istediğiniz adı girin
  9. Tamam'ı tıklayın

Bitti


4

Basitçe kullanın

sp_restoredb 'Veritabanı Adınız', 'Geri yüklemek istediğiniz konum'

Örnek: sp_restoredb 'omDB', 'D: \ abc.bak'


msdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspx'dekiRESTORE DATABASE gibi ve bunun arasındaki fark nedir?
unhammer

1
Geri yükleme veritabanı, yalnızca DB'nizin yapısı yedekleme dosyasıyla aynı olduğunda geri yükleme işlemi gerçekleştirir, ancak sp_restoredbveritabanınızı farklı bir yapıya sahip veya tamamen boş (yeni) olsa bile geri yükleme gerçekleştirin.
Omprakash tomar

3
  1. Yedek .bak dosyanızı bilgisayarınızın aşağıdaki konumuna kopyalayın: C: \ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA
  2. DB'nizi depolamak istediğiniz bir sunucuya bağlanın
  3. Veritabanı'na sağ tıklayın
  4. Geri Yükle'yi tıklayın
  5. Kaynak bölümün altındaki Cihaz radyo düğmesini seçin
  6. Ekle'yi tıklayın.
  7. .Bak dosyanızın depolandığı yola gidin, dosyayı seçin ve Tamam'ı tıklayın.
  8. DB'nizin hedefini girin
  9. DB'nizi saklamak istediğiniz adı girin
  10. Tamam'ı tıklayın

Yukarıdaki çözümler yedek (.bak) dosyanızı nerede tutacağınızı kaçırdı. Bu hile yapmalı. Benim için çalıştı.


1

Geliştirme sürecinde veritabanlarını sık sık geri yüklemeniz gerekiyorsa, düğüm paketini kullanabilirsiniz.

Yüklemek:

npm install -g sql-bak-restore

Kullanımı:

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

Argümanlar:

  • dosya yolu, göreceli veya mutlak dosya yolu
  • dbName, hangi veritabanının geri yükleneceği (!! bu adda veritabanı mevcutsa silinecektir !!)
  • oldDbName, veritabanı adı (bilmiyorsanız, bir şey belirtin ve çalıştırın, çalıştırdıktan sonra kullanılabilir veritabanlarını göreceksiniz.)
  • sahibi, kullanıcıAdı yapmak ve ona db_owner yetkileri vermek (şifre "1")

!! sqlcmd komut satırı yardımcı programı PATH değişkeninizde olmalıdır.

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


1

Microsoft SQL Server Management Studio 2019'da:

resim açıklamasını buraya girin

Veritabanını Geri Yükle penceresinde:

  1. Cihaz Seçin

  2. Hedef dosya ekle'yi seçin ve seçin

  3. Onaylamak için tamam

  4. Geri yüklemeyi onaylamak için Tamam

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.