Yedekleme cihazı açılamıyor. İşletim Sistemi hatası 5


139

.bakVeritabanımı yedeklemek (oluşturmak ) için kullandığım sorgu aşağıdadır .

Ancak, her çalıştırdığımda, her zaman bu hata iletisini alıyorum:

Msg 3201, Seviye 16, Durum 1, Satır 1
'C: \ Users \ Me \ Desktop \ Backup \ MyDB.Bak' yedekleme cihazı açılamıyor. İşletim sistemi hatası 5 (Erişim reddedildi.).

Msg 3013, Seviye 16, Durum 1, Satır 1
YEDEKLEME VERİTABANI anormal olarak sona eriyor.

Bu benim sorgu:

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

Hata mesajı oldukça açık, değil mi? Program hangi kullanıcı olarak çalışıyor? Bak dosyası var mı? Manuel olarak erişebiliyor musunuz?
Pekka

1
Ürünü etiketlere veya başlığa koymadığınız için bunun dosya yolundan SQL Server için olduğunu varsaymalıyız?
Powerlord

Herhangi bir yardım yaparsa dizüstü bilgisayarımı yeniden biçimlendirmeden önce bu sorguyu çalıştırabildim. Bu SQL Server 2008 ve yönetici olarak çalışıyorum. Bu sorgu ile oluşturma işlemi üzerinde olduğum için bak dosyası yok.
Smiley

@Smiley Face: SQL dosyasını ağ üzerinden değil yerel olarak okumalısınız. Bu, SQL dosyasını önce ağdan yerel sürücünüze taşımanız ve geri yüklemeniz gerektiği anlamına gelir.
mrjimoy_05

Yanıtlar:


235

Evet, sadece bunu attım.

Windows Hizmetlerine bakın. Başlat> Yönetim> Hizmetler

Listedeki hizmeti bulun: SQL Server (MSSQLSERVER) "Farklı Oturum Aç" sütununu arayın (listede yoksa eklemeniz gerekir).

Bu, dizine izin vermeniz gereken hesaptır, explorer> properties> Paylaşımlar (Ve Güvenlik)

NOT : Ağ üzerinden gidiyorsanız, gerçek dizine VE paylaşıma izin vermeyi unutmayın.

Uygulayın ve izinlerin dağıtılmasını bekleyin, yedeklemeyi tekrar deneyin.

NOT 2 : ağ üzerinden yedekleme yapıyorsanız ve SQL'iniz "Yerel Hizmet" olarak çalışıyorsa, sorun yaşarsınız ... izinleri atamayı deneyebilir veya SQL Server dışından yerel olarak yedeklemeyi ve xcopy'yi ( bir saat sonra).

NOT 3 : Ağ hizmeti olarak çalışıyorsanız, SOMETIMES uzak makine SQL Server'ınızdaki ağ hizmetini tanımaz. Bu durumda, gerçek bilgisayarın kendisi için izinler eklemeniz gerekir. MyServer $.


20
İzinler / add / advanced kullanıcı listede bulamadı, ancak "NT Service \ MSSQLSERVER" yapıştırıldı ve bir şampiyon gibi çalıştı.
Mark A

3
Bir klasöre 'herkes' izni eklemek bunu kapsıyor mu?
DevDave

3
Bağımlı, eğer gerçek anlamda kamu kimliği doğrulanmamışsa, o zaman evet. "Herhangi bir doğrulanmış" ise, uzak bir makinedeki YEREL HİZMET genellikle uygun olmaz ... ama gerçekten herkese erişim vermek istiyor musunuz, bu bizim için neredeyse işlenemez bir suçtur.
Robin Vessey

1
Benim için çalışmadı ve ben sadece C: \ temp \ 'a yedekliyorum. Klasör İzinleri ekranı NT @ \ MSSQLSERVER hizmeti tarafından kullanılan Oturum Açma işlevini tanımazken @Mark A olarak yapıştırırken bile önerilir. Bu hizmetin kullanması için iyi bir alternatif hesap var mı?
MGOwen

8
Benim için çalıştı, harika bir çözüm! SQL Server Express 2014 kullanıyorum, bu yüzden 'NT Service \ MSSQL $ SQLEXPRESS' yazma izni vermeniz gerekir.
mikhail-t

11

Başlat menüsündeki SQL sunucu klasörüne gidin ve yapılandırma araçlarını tıklayın SQL Server yapılandırma yöneticisini seçin SQL sunucu hizmetlerinde, istediğiniz örnekte (Farklı oturum aç) yerel sistem olarak değiştirin


7

SQL Server hizmet hesabının klasöre yazma izni yok C:\Users\Kimpoy\Desktop\Backup\


22
bu klasöre erişmek için SQL Server Hizmet Hesabı izinlerini nasıl verebilirim? :)
Smiley

6

Yakın zamanda bu sorunu da yaşadım, ancak A sunucusundan yedekleme işi çalıştırıyordum ancak yedeklenen veritabanı B sunucusunda C sunucusundaki bir dosya paylaşımına yapıldı. A sunucusundaki ajan B sunucusuna bir yedekleme t -sql komutu, aslında sql SERVER B altında çalışmakta olan ve C sunucusuna yedek yazmaya çalışan hizmet hesabıdır.

Unutmayın, onun gerçek BACKUP DATABASE komutunu gerçekleştiren sql sunucusunun hizmet hesabı, aracıda dosya sisteminde ayrıcalıklara ihtiyaç duyulan şeydir.


4

Sadece kendim geçiyordum. MSSQLSERVER oturum açma kullanıcımınfull access ama hala sorunlara neden oldu. Sadece C hedefine taşındıktan sonra çalıştı. Daha da önemlisi bir kullanıcı klasöründen (tam izinlerle bir payım olsa bile - hatta "Herkes" test olarak denendi).

Sorunumun "sabit" olduğunu düşünürsem bilmiyorum, ancak "çalışıyor".

Bu konuya rastlayan diğer kullanıcılar için sadece bir FYI.


1
Bunun ağ sürücülerinde bulunan kullanıcı yolları olan kurumsal etki alanlarından kaynaklandığını düşünüyorum, böylece oturum açtıkları makineden bağımsız olarak kullanıcı tarafından şeffaf bir şekilde erişilebilirler. Böyle bir durum: superuser.com/a/730519
Bon

@ Teşekkürler! Bu benim için sorunu çözdü. Yedekleme dosyasına sahip olduğum yol aslında bir ağ yoluydu.
JonM

4

Windows 10'da SQL Express 2014 SP1 ile aynı sorunla karşılaşıyorum.

Çalışan çözüm

  1. Hizmetler yazarak Hizmeti açın
  2. SQL Server'ı (SQLExpress) bulun ve açın
  3. Oturum Açma Sekmesine gidin
  4. Yerel Sistem Hesabı'nı seçin (Ayrıca Hizmetlerin masaüstü ile etkileşimine izin verilip verilmediğini kontrol edin)
  5. Tamam'ı tıklayın. Hizmeti durdurun. Hizmeti yeniden başlatın.
  6. Sorun çözüldü

3

Geri yükleme işlemini yapmak için hangi kullanıcıya izin vermeniz gerektiğini bulmak için aşağıdaki adımları izleyebilirsiniz:

SQL Server'ın kurulu olduğu sunucunuza gitmeniz gerekir. SQL Server Yapılandırma Yöneticisi'ni bulun

resim açıklamasını buraya girin

Ardından, "SQL Server Hizmetleri" ne gitmeniz gerekir

resim açıklamasını buraya girin

SQL Server (MSSQLSERVER) örneğiniz altında "Oturum Aç" sütununa sahip bir hesap olacak, benim durumumda NT Service \ MSSQLSERVER .

Bu, kaynak .bak konumunuzun Güvenlik sekmesi altına eklemeniz ve bu kullanıcıya yedekleme dosyasının okunabilmesi için "Okuma" izinlerini vermeniz gereken hesaptır.

Diyelim ki yedekleme dosyanız "D: \ Shared" klasöründe mevcut, o zaman bunun gibi izinler vermeniz gerekiyor:

resim açıklamasını buraya girin


2

Benzer bir sorunum vardı. .Bak dosyasının kendisine ve NETWORK SERVICE kullanıcısı için yedeklemeyi yazdığım klasöre yazma izinleri ekledim. İzin eklemek için değiştirmek istediğiniz dosya / dizini sağ tıklayın, güvenlik sekmesini seçin ve uygun kullanıcıları / izinleri buraya ekleyin.


1
uygun olarak ne demek istiyorsun?
Buhar

2

İşte sorunu atlatmak için yaptığım şey.

1) Yedeklemeye git

2) Diske hedef dosya yolunu kaldırın

3) Ekle'ye tıklayın

4) Dosya adı: onay kutusuna aşağıdaki gibi yedekleme adını elle yazın: \ backup Aşağıdaki gibi Yourdb.bak veritabanı yedekleme adıdır

C: \ Program Dosyaları \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ Yourdb.bak

5) Tamam'a tıklayın

Bu yardımcı olur umarım!


2

Bunun olmasının nedenlerinden biri, MSSQLSERVER Hizmetinizi yerel bir sistem kullanmadan çalıştırmanızdır. Bu sorunu gidermek için aşağıdaki adımları kullanın.

  1. Windows + R kullanarak açık çalıştırma
  2. Services.msc yazdığınızda bir hizmetler iletişim kutusu açılır
  3. SQL Server'ı bulun (MSSQLSERVER)
  4. Özellikleri sağ tıklayın ve tıklayın.
  5. Giriş sekmesine git
  6. Yerel Sistem hesabını seçin ve "Uygula" ve "Tamam" ı tıklayın.
  7. "SQL Server (MSSQLSERVER)" seçeneğini seçerek sol paneldeki Durdur bağlantısını tıklayın ve tamamen durduktan sonra tekrar başlatın.
  8. Yedeklemenizin tadını çıkarın.

Umarım bana olduğu gibi, sana da yardımcı olur. Şerefe!


1

Bunun kesin bir çözüm olmadığını biliyorum ama harici sürücü yollarını kullanmak bu sorunu çözüyor.

BACKUP DATABASE AcinsoftDB
TO DISK = 'E:\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

1

SQL Server, belirtilen konuma yedeklemeye erişemez (yazamaz).

Öncelikle, Sql sunucusunun çalıştığı hizmet hesabını doğrulamanız gerekir. Bu, Configuration manager veya Services.msc kullanılarak yapılabilir.

veya

Aşağıdaki sorguyu kullanın:

SELECT  DSS.servicename,
    DSS.startup_type_desc,
    DSS.status_desc,
    DSS.last_startup_time,
    DSS.service_account,
    DSS.is_clustered,
    DSS.cluster_nodename,
    DSS.filename,
    DSS.startup_type,
    DSS.status,
    DSS.process_id FROM    sys.dm_server_services AS DSS;

Şimdi service_account sütununa bakın ve not alın.

Yedeklemeyi almaya çalıştığınız konuma gidin. Sizin durumunuzda: C: \ Users \ Me \ Desktop \ Backup

-> Özellikler -> Güvenlik ->

Hizmet hesabını ekleyin ve okuma / yazma izinleri sağlayın. Bu sorunu çözecektir.



0

Msg 3201, Seviye 16, Durum 1, Satır 1 'C: \ Backup \ Adventure_20120720_1024AM.trn' yedekleme cihazı açılamıyor. İşletim sistemi hatası 5 (Erişim reddedildi.). Msg 3013, Seviye 16, Durum 1, Hat 1 YEDEKLEME GÜNLÜĞÜ anormal olarak sonlanıyor.

C sürücüsündeki yedekleme klasörünü doğruladım, Yeni hizmet hesabının tam denetim erişim izni var mı yoksa yok mu ?, "Test \ Kiran" hizmet hesabının Tam denetim güvenlik izni olmadığını fark ettim.

Hizmet hesabına tam denetim vermek için lütfen aşağıdaki adımları izleyin:

  1. C sürücüsüne gidin, Yedekleme klasörünü sağ tıklayın.
  2. Güvenlik sekmesini seçin.
  3. Düzenle düğmesine tıklayın, yeni pencere açılacaktır.
  4. Ekle düğmesine tıklayın ve Test \ Kiran kullanıcı hesabını girin ve adı kontrol et düğmesine tıklayın, bu girdiğiniz kullanıcının mevcut olup olmadığını doğrular, eğer mevcutsa kullanıcıyı pencerede gösterecektir, Tamam'ı seçin.
  5. Kullanıcı adını girip izin ver altındaki Tam Denetim onay kutusunu seçin.

0

Lütfen sürücülere erişimi kontrol edin.İlk önce bir klasör oluşturun ve klasör özelliklerine gidin,

Güvenlik sekmesini bulabilir, kullanıcı kimliğinizin erişime sahip olup olmadığını kontrol edebilirsiniz.

kimliğinizi bulamadıysanız, lütfen ekle düğmesine tıklayın ve tam erişime sahip kullanıcı adı verin.


0

Bu klasörü paylaşın ve UNC yolunu kullanın, örneğin: \ pc \ backups \ mydb.bak

Sonra paylaşımı durdurabilirsiniz.

Çok zarif değil, ancak tüm izin sorunlarını çözüyor (Yukarıda belirtildiği gibi paylaşım için de izin vermeniz gerekiyor)


0

.BAK dosyası geçici olarak BitLocker ile şifrelenmiş bir klasörde saklandığında bu sorunla karşılaştım. Farklı bir klasöre taşındıktan sonra şifrelemeyi korudu.

AĞ HİZMET hesabı dosyanın şifresini çözemedi ve bu tamamen bilgilendirici hata mesajını verdi.

.BAK dosyasında BitLocker şifrelemesinin kaldırılması (dosya özelliklerindeki "İçeriği güvenli hale getirmek için şifrele" seçeneğinin işaretini kaldırarak) sorunu çözdü.


0

Aynı hata bende de var. Değişiklikleri takip etmek bu durumu düzeltmeme yardımcı oldu.

Sunucu Yöneticisi -> Aracı -> Hizmetler kontrol etmek ve hizmet için kullanıcı ("Farklı Oturum Aç" sütun) bulmak zorunda kaldı: SQL Server (SQLEXPRESS).

Yerel klasöre (C: \ Users \ Me \ Desktop \ Backup) gittim ve kullanıcı olarak Yazma izinleri vermek için "NT Service \ MSSQL $ SQLEXPRESS" ekledim.


0

Merhaba, sorguyu şu şekilde değiştirmeniz gerekiyor:

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'

için

BACKUP DATABASE AcinsoftDB
TO DISK = N'C:\Users\Me\Desktop\Backup\MyDB.Bak'

Benim için çalışıyor yolu önünde bir N eklemek zorunda.


0

Benim durumumda, yedekleme dosyasını adlandırmayı unuttum ve bana aynı izin hatasını vermeye devam ettim: /

TO DISK N'{path}\WRITE_YOUR_BACKUP_FILENAME_HERE.bak'

0

Aşağıdaki 3 adımla aynı sorunu çözdüm:

  1. Yedek dosyamı doğru çalışan başka bir klasör yolunda saklıyorum.
  2. Güvenlik sekmesi iki klasörün farklı görünümleri (aşağıdaki resimdeki gibi).
  3. Güvenlik sekmesi klasöründe düzgün çalışmayan izni düzenleme.

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.