LOG BACKUP tidak dapat dilakukan karena tidak ada cadangan database saat ini

103

Saya mencoba memulihkan database tetapi pesan ini muncul. Bagaimana cara memulihkan database ini?

Gagal memulihkan database 'farhangi_db'.
(Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------ INFORMASI TAMBAHAN:

System.Data.SqlClient.SqlError: LOG BACKUP tidak dapat dilakukan karena
tidak ada cadangan database saat ini. (Microsoft.SqlServer.SmoExtended)

Saman
sumber
2
Apakah ini cadangan diferensial?
Amir Keshavarz
@AmirrezaKeshavarz: apa? (motavajeh nemisham manzuretuno)
Saman
1
Maksud saya, jenis cadangan apa yang akan Anda pulihkan? (Cadangan log transaksi / cadangan penuh / cadangan diferensial?)
Amir Keshavarz
Tampaknya log transaksi rusak
bksi
Apakah database Anda ada? L
Amir Keshavarz

Jawaban:

204

Awalnya, saya membuat database dan kemudian memulihkan file cadangan ke database baru saya yang kosong:

Klik kanan pada Databases> Restore Database> General: Device: [jalur file cadangan] → OK

Ini salah . Saya seharusnya tidak membuat database terlebih dahulu.

Sekarang, sebagai gantinya, saya melakukan ini:

Klik kanan pada Databases> Restore Database> General: Device: [jalur file cadangan] → OK

Saman
sumber
Saya mengalami kesalahan yang sama dan itu berhasil untuk saya.
javiniar.leonard
Bekerja untuk saya juga
nbhatti2001
127

Penyebab lain dari masalah ini adalah ketika pengaturan Take tail-log backup before restore"Opsi" diaktifkan.

Pada tab "Opsi", Nonaktifkan / hapus centang Take tail-log backup before restoresebelum memulihkan ke database yang belum ada.

Persik
sumber
Terima kasih @Peach, Anda menghemat waktu saya.
Frank Myat Kam
@Peach Terima kasih menghemat waktu saya.
LKC
@Peach Terima kasih banyak!
Mohit Dharmadhikari
DAN centang opsi "WITH REPLACE"
Andrii Horda
33

Silakan lihat gambar di bawah ini dan terapkan perubahan di SqlServer:

pertama klik kanan pada Database -> Tugas -> Kembalikan -> Pilih File Cadangan -> Terakhir Terapkan Perubahan di Tab Pilihan .

mohon terapkan perubahan di SqlServer

AminGolmahalle
sumber
Dalam kasus saya, saya melakukan ini dan memeriksa kotak centang pertama "Timpa database yang ada (DENGAN REPLACE)" dan berfungsi.
Amaurys Sánchez
6
  1. Pastikan ada database baru.
  2. Pastikan Anda memiliki akses ke database Anda (pengguna, kata sandi, dll).
  3. Pastikan ada file backup tanpa error di dalamnya.

Semoga ini bisa membantu Anda.

Oskar
sumber
2

Penyebab lain untuk ini adalah jika Anda memiliki database yang sama yang dipulihkan dengan nama berbeda. Hapus yang sudah ada dan kemudian kembalikan memecahkannya untuk saya.

LothorienDanAdua
sumber
Terima kasih atas jawabannya. Lol, mengapa Microsoft SQL Server tidak bisa baru saja mengatakan "Bung, hapus database yang ada terlebih dahulu sebelum memulihkan!"
sivabudh
1

Dalam kasus kami, ini karena Model Pemulihan pada database utama telah diubah setelah kami melakukan pencadangan dalam persiapan untuk menyiapkan pengiriman log.

Memastikan Model Pemulihan diatur ke Pemulihan Penuh sebelum melakukan pencadangan dan mengatur pengiriman log menyelesaikannya untuk kami.

Daniel Bowen
sumber
1

Saya memperbaiki kesalahan saya saat memulihkan ke DB yang tidak ada dari SQL 2008 ke SQL 2014 dengan memberi tanda centang pada Relokasi ke lokasi folder SQL2014 yang baru.

Oscar Gonzalez
sumber
1

Anda dapat menggunakan SQL berikut untuk memulihkan jika Anda sudah membuat database

RESTORE DATABASE [YourDB]
FROM DISK = 'C:\YourDB.bak'
WITH MOVE 'YourDB' TO 'C:\YourDB.mdf',
MOVE 'YourDB_Log' TO 'C:\YourDB.ldf', REPLACE
HasanG
sumber
0

Saya baru saja menghapus DB yang ada yang ingin saya timpa dengan cadangan dan memulihkannya dari cadangan dan berfungsi tanpa kesalahan.

Dongolo Jeno
sumber
0

Saya tidak yakin apakah file cadangan basis data, yang Anda coba pulihkan, berasal dari lingkungan yang sama saat Anda mencoba memulihkannya.

Ingat bahwa jalur tujuan file .mdf dan .ldf menggunakan file cadangan itu sendiri.

Jika ini bukan masalahnya, itu berarti file cadangan berasal dari lingkungan yang berbeda dari lingkungan hosting Anda saat ini, pastikan bahwa jalur file .mdf dan .ldf sama (ada) seperti di mesin Anda, pindahkan jika tidak. (Sebagian besar kasus memulihkan db di image Docker)

Cara melakukannya: Di Databases -> Restore database -> [Files] option -> (Centang "Relocate all files to folder" - kebanyakan path default sudah diisi di lingkungan hosting Anda)

tegas
sumber
0

Jika masalah masih ada, buka halaman Restorasi Database dan Periksa "Pulihkan semua file ke folder" di tab "File" Ini mungkin membantu

Sarath
sumber
0

Dalam kasus saya, saya memulihkan Database SQL Server 2008 R2 ke SQL Server 2016 Setelah memilih file di tab Umum, Anda harus pergi ke tab Opsi dan melakukan 2 hal:

  1. Anda harus mengaktifkan Timpa database yang ada
  2. Anda harus menonaktifkan akhir salinan catatan
Anibal Roman Crespo
sumber
-1

Cukup Anda dapat menggunakan metode ini:

  1. Jika Anda memiliki database dengan nama yang sama: WIN+R-> services.msc-> SQL SERVER(MSSQLSERVER)->Stop
  2. Buka jalur folder Data MySQL Anda dan hapus file database pratinjau
  3. Mulai layanan sql
  4. Klik kanan pada database dan pilih Restore database
  5. di tab File ubah folder file Data dan folder file Log
  6. Klik OK untuk memulihkan database Anda

masalah saya diselesaikan dengan metode ini DENGAN ...

Mojtaba Rezaei
sumber
-1

Klik Klik Kanan Pada Database Anda Tugas Tekan> Cadangkan dan ambil cadangan dari database Anda sebelum memulihkan database Anda Saya menggunakan cara ini untuk mengatasi masalah ini

Abkreno Pronce
sumber