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)


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


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.


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


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.


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.


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.


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.


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

0

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


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)


0

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


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

-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 ...


-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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.