File .bak tidak terlihat di direktori mana pun di SSMS

46

Saya memiliki file .bak yang dibuat hari ini oleh orang lain, dibuat secara manual melalui SSMS 2008 R2. Saya mencoba mengembalikan database secara manual, sayangnya file tidak muncul ketika saya menjelajahnya.

Saya dapat membuat skrip proses pemulihan, tetapi saya telah melihat masalah ini sebelumnya dan saya tidak yakin apa yang dapat menyebabkan .bak tidak muncul.

Sean Long
sumber
Saya akan menulis skrip untuk pemulihan, saya hanya ingin tahu apa yang menyebabkannya. Ini pasti .bak, bukan .bak.txt atau apa pun.
Sean Long
Jadi, apakah Anda dapat menelusuri folder di mana Anda tahu file itu, dan itu tidak muncul? Atau apakah Anda tidak dapat menelusuri ke folder?
Aaron Bertrand
Saya dapat menelusuri ke folder, hanya saja tidak melihat file .bak. Saya telah memeriksa izin dari pengguna yang saya gunakan SSMS, mereka adalah admin lokal dan file tidak ditandai sebagai "tersembunyi" atau apa pun.
Sean Long
Bisakah Anda memposting tangkapan layar di suatu tempat, menunjukkan tampilan folder Windows Explorer, dan SSMS? Juga jelaskan dalam pertanyaan proses yang Anda gunakan untuk sampai ke langkah ini.
Aaron Bertrand
1
(Perhatikan juga akun layanan SQL Server harus memiliki izin juga, bukan hanya pengguna SSMS. Meskipun itu seharusnya tidak mencegah file .bak dari ditampilkan dalam daftar sebelum Anda melakukan sesuatu dengan mereka.)
Aaron Bertrand

Jawaban:

39

Kami memiliki masalah yang sama hari ini. Itu ternyata menjadi masalah izin, seperti yang diilustrasikan dalam beberapa jawaban lainnya. Perbedaannya adalah bahwa akun yang perlu kami tambahkan adalah NT SERVICE\MSSQLSERVER.

Tangkapan layar

Saya mengidentifikasi akun dengan membandingkan izin izin folder Cadangan SQL default ke folder yang berisi file cadangan.

Menambahkan akun layanan tidak sesederhana kedengarannya. Inilah yang bekerja untuk saya. (Server 2012 R2)

  1. Masuk ke server. (Perubahan harus dilakukan pada server yang sebenarnya, bukan melalui berbagi jaringan.)
  2. Ubah Lokasi ke nama server lokal.
  3. Ketikkan dalam NT SERVICE\MSSQLSERVERkotak nama. (Jangan klik Periksa Nama)
  4. Klik OK. Anda kemudian akan melihat daftar akun layanan yang cocok. Pilih MSSQLSERVER, dan klik OK untuk menerima pilihan.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Anda harus melihat akun layanan yang tercantum dalam pengaturan keamanan, dan dapat menyesuaikan izin sesuai.

Setelah menambahkan izin (saya menambahkan Kontrol Penuh, untuk mencocokkan folder SQL Backup default.) Dan memulai kembali SQL Server Management Console, saya dapat memilih dan memulihkan file cadangan saya.

AdamsTips
sumber
superuser.com/questions/248315/… memberi tahu kami cara membuat daftar akun pengguna di komputer. Untuk layanan apa pun yang bernama s, ada akun virtual bernama NT Service\s, bahkan jika layanan tidak berjalan di bawah akun itu.
Tahir Hassan
2
Akun yang harus saya tambahkan adalah NT Service\MSSQL$SQLSERVER2014, mungkin karena saya memberi nama instance sayaSQLSERVER2014
thinkOfaNumber
16

Saya mendapatkan ini hari ini.

Saya mematikan berbagi file, mengindeks dan menghapus semua sesi terbuka (orang-orang masuk untuk menyalin cadangan), tetapi masalah tidak hilang.

Pergi ke Windows Explorer, menyalin cadangan ke folder lain dan menjelajahinya melalui Management Studio, dan saya bisa melihatnya di sana.

Menghapus folder asli dan membuatnya kembali, menyalin kembali konten dan melihat-lihat .bakfile dan kembali normal.

Semoga ini bisa membantu seseorang.

pengguna27816
sumber
1
itu memang membantu! :)
Peter PitLock
5

Saya mengalami masalah ini beberapa kali. Masalahnya bukan dengan SQL Server tetapi dengan Izin Windows folder. Anda harus menambahkan izin yang sesuai ke folder tempat Anda menyalin file .bak (saya pikir System Networkperan).

Solusi yang lebih mudah adalah dengan memindahkan file ke folder cadangan default di Program Files. Ia memiliki semua izin yang diperlukan. Untuk SQL Server 2012 itu

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup
Jackofall
sumber
Ini adalah solusi yang bagus karena seseorang tidak membuka lubang keamanan potensial di komputer mereka hanya untuk mengembalikan satu file.
Michael Potter
berfungsi sangat baik tidak perlu untuk kebijakan dan hal
Marin
3

Saya juga menemukan masalah yang sama hari ini. Saya diberi file cadangan untuk dipulihkan tetapi tidak terlihat oleh saya saat menjelajah. Namun saya bisa mengakses sistem file in tetapi di dalam restore wizard menggunakan SQL Server management Studio.

Setelah menghabiskan beberapa, saya menemukan bahwa itu adalah masalah izin. Layanan SQL Server berjalan menggunakan Network Servicetetapi Network Serviceakun tidak memiliki izin untuk mengakses folder. Setelah memberikan izin untuk Network Service. File cadangan terlihat dapat dipulihkan.

Untuk detailnya silakan periksa oleh Blog .

Kalajengking
sumber
2

Jika Anda dapat menemukannya di Windows Explorer, maka Anda harus menulis RESTORE DATABASEperintah alih-alih mengandalkan GUI yang kikuk untuk menemukannya untuk Anda. Siapa yang tahu kode apa yang terjadi di sana dan mengapa itu mungkin tidak dapat menemukan file - maaf saya hanya punya solusi dan bukan solusi.

Juga pastikan bahwa file tersebut sebenarnya something.bak dan bukan something.bak.txt (Windows mungkin "membantu" menyembunyikan ekstensi dari Anda. Saya benci perilaku default itu.)

Aaron Bertrand
sumber
1

Ini terjadi pada saya hari ini di kotak dev saya. Dalam kasus saya, akun layanan memiliki izin ke folder, tetapi akun pengguna saya tidak. Setelah saya memberikan izin akun saya ke folder, saya dapat melihat file .BAK.

Kepala Bagian Katering
sumber