.bak dosyası, SSMS'deki herhangi bir dizinde görünmüyor


46

Bugün SSMS 2008 R2 aracılığıyla manuel olarak oluşturulan bir başkası tarafından oluşturulan bir .bak dosyam var. Veritabanını el ile geri yüklemeye çalışıyorum, göz attığımda ne yazık ki dosya görünmüyor.

Geri yükleme işlemini kodlayabilirim, ancak bu sorunu daha önce gördüm ve .bak'ın görünmemesine neden olandan emin değilim.


Geri yükleme için bir komut dosyası yazacağım, sadece neye neden olduğunu bilmek istiyorum. Kesinlikle bir .bak, bir .bak.txt veya başka bir şey değil.
Sean Long,

Peki dosyanın bildiğiniz klasöre göz atabiliyorsunuz ve görünmüyor mu? Yoksa klasöre göz atamıyor musunuz?
Aaron Bertrand

Klasöre göz atabilirim, sadece .bak dosyalarından hiçbirini göremiyorum. SSMS ile çalıştığım kullanıcının izinlerini kontrol ettim, yerel bir yönetici ve dosya "gizli" olarak işaretlenmemiş.
Sean Long,

Windows Explorer’ın klasör ve SSMS’nin görünümünü gösteren bir ekran görüntüsü yayınlayabilir misiniz? Ayrıca soruda, bu adıma ulaşmak için kullandığınız süreci de açıklayın.
Aaron Bertrand

1
(Ayrıca, SQL Server hizmet hesabı çok izinlerine sahip olması değil, sadece ssms kullanıcıyı Not olsa onlarla bir şey yapmadan önce listede gösterilmesini dosyaları .bak engel olmamalıdır..)
Aaron Bertrand

Yanıtlar:


39

Bugün aynı sorunu yaşadık. Diğer cevapların bazılarında gösterildiği gibi bir izin sorunu olduğu ortaya çıktı. Aradaki fark, eklememiz gereken hesabın olmasıdır NT SERVICE\MSSQLSERVER.

Ekran görüntüsü

Varsayılan SQL Yedekleme klasörü izinlerinin yedekleme dosyasını içeren klasörün izinlerini karşılaştırarak hesabı tanımladım.

Hizmet hesabını eklemek göründüğü kadar basit değildir. İşte benim için çalıştı. (Sunucu 2012 R2)

  1. Sunucuya giriş yapın. (Değişikliğin bir ağ paylaşımından değil gerçek sunucuda yapılması gerekir.)
  2. Değişim Konumları yerel sunucu ismine.
  3. Yazın NT SERVICE\MSSQLSERVERadı kutusunda. (Adları Kontrol Et'e tıklamayın)
  4. Tamam'a tıklayın. Ardından eşleşen servis hesaplarının bir listesini göreceksiniz. MSSQLSERVER'ı seçin ve seçimi kabul etmek için Tamam'ı tıklayın.

görüntü tanımını buraya girin

görüntü tanımını buraya girin

Güvenlik ayarlarında listelenen servis hesabını görmelisiniz ve izinleri buna göre ayarlayabilirsiniz.

İzinleri ekledikten (varsayılan SQL Yedekleme klasörüyle eşleştirmek için Tam Denetim ekledim) ve SQL Server Yönetim Konsolunu yeniden başlattıktan sonra, yedekleme dosyamı seçip geri yükleyebildim.


superuser.com/questions/248315/… , bize kullanıcı hesaplarının bir bilgisayarda nasıl listeleneceğini anlatır. Herhangi bir hizmet için , hizmet bu hesap altında çalışmasa bile, sadında bir sanal hesap vardır NT Service\s.
Tahir Hassan

2
NT Service\MSSQL$SQLSERVER2014SQLSERVER2014
Eklemem

16

Bunu bugün aldım.

Dosya paylaşımını kapattım, indeksledim ve açık oturumları (yedekleri kopyalamak için giriş yapmış kişiler) temizledim, ancak sorun çözülmedi.

Windows Gezgini'ne gittim, yedekleri başka bir klasöre kopyaladım ve Management Studio aracılığıyla bu dosyaya göz attım ve orada görebildim.

Orijinal klasörü silindi ve yeniden yarattı, içerikleri tekrar kopyaladı ve .bakdosyalara göz attı ve normale döndü.

Umarım bu birine yardımcı olur.


1
yardım etti! :)
Peter PitLock

5

Bu sorunla birkaç kez karşılaştım. Sorun SQL Server ile değil, klasörün Windows İzni ile ilgili. .Bak dosyasını kopyaladığınız klasöre uygun bir izin vermeniz gerekir (sanırım System Networkrolüm).

En kolay çözüm, dosyayı Program Dosyaları'ndaki varsayılan yedekleme klasörüne taşımaktır. Gerekli tüm izinlere sahip. SQL Server 2012 için bu

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup

Bu harika bir çözüm çünkü biri sadece bir dosyayı geri yüklemek için bilgisayarındaki potansiyel güvenlik açıklarını açmıyor.
Michael Potter

Politikalar ve malzeme için gerek yok büyük çalışıyor
Marin

3

Ben de bugün aynı konuya rastladım. Geri yüklemek için bir yedekleme dosyası verildi ancak tarama sırasında bana görünmedi. Ancak dosya sisteminde ancak geri yükleme sihirbazını kullanarak erişebildim SQL Server management Studio.

Bazılarını harcadıktan sonra bunun izin sorunu olduğunu keşfettim. SQL Server Hizmeti kullanıyor Network Serviceancak Network Servicehesabın klasöre erişim iznine sahip değil. İçin izinleri verdikten sonra Network Service. Yedek dosya geri yüklemek için görülebilir.

Ayrıntılar için lütfen Blog’a bakın .


2

Windows Gezgini'nde bulabilirseniz, sizin RESTORE DATABASEiçin bulabilmek için clunky GUI'ye güvenmek yerine bir komut yazmalısınız . Orada hangi kodun olup bittiğini ve neden dosyayı bulamadığını kim bilebilir - üzgünüm sadece bir geçici çözüm var ve bir çözüm bulamadım.

Ayrıca dosyanın aslında birşey.bak olduğundan ve bir şey.bak.txt olmadığından emin olun (Windows, uzantıyı sizden gizlemekle "yardımcı olabilir" olabilir. Bu varsayılan davranıştan nefret ediyorum.)


1

Bu, bugün dev kutumda başıma geldi. Benim durumumda, servis hesabının klasöre izinleri vardı, fakat kullanıcı hesabım yoktu. Klasöre hesap izinlerimi verdikten sonra .BAK dosyalarını görebildim.

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.