Nie można wykonać kopii zapasowej dziennika, ponieważ nie ma bieżącej kopii zapasowej bazy danych

104

Próbowałem przywrócić bazę danych, ale pojawił się ten komunikat. Jak przywrócić tę bazę danych?

Przywracanie bazy danych „farhangi_db” nie powiodło się.
(Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------ DODATKOWE INFORMACJE:

System.Data.SqlClient.SqlError: BACKUP LOG nie można wykonać, ponieważ
nie ma bieżącej kopii zapasowej bazy danych. (Microsoft.SqlServer.SmoExtended)

Saman
źródło
2
Czy to jest kopia różnicowa?
Amir Keshavarz
@AmirrezaKeshavarz: co? (motavajeh nemisham manzuretuno)
Saman
1
Chodzi mi o to, jaki rodzaj kopii zapasowej zamierzasz przywrócić? (kopia dziennika transakcji / pełna kopia / kopia różnicowa?)
Amir Keshavarz
Wygląda na to, że dziennik transakcji jest uszkodzony
bksi
Czy Twoja baza danych istnieje? L
Amir Keshavarz

Odpowiedzi:

207

Pierwotnie utworzyłem bazę danych, a następnie przywróciłem plik kopii zapasowej do mojej nowej, pustej bazy danych:

Kliknij prawym przyciskiem myszy Bazy danych> Przywróć bazę danych> Ogólne: Urządzenie: [ścieżka do pliku kopii zapasowej] → OK

To było złe . Nie powinienem był najpierw tworzyć bazy danych.

Teraz zamiast tego robię to:

Kliknij prawym przyciskiem myszy Bazy danych> Przywróć bazę danych> Ogólne: Urządzenie: [ścieżka do pliku kopii zapasowej] → OK

Saman
źródło
Przechodzę przez ten sam błąd i to zadziałało.
javiniar.leonard
U mnie też
działało
130

Inną przyczyną tego problemu jest włączenie Take tail-log backup before restoreustawienia „Opcje”.

Na karcie „Opcje” wyłącz / usuń zaznaczenie Take tail-log backup before restoreprzed przywróceniem do bazy danych, która jeszcze nie istnieje.

Brzoskwinia
źródło
Dziękuję @Peach, oszczędzasz mój czas.
Frank Myat czw.
@Peach Thanks zaoszczędziło mi czasu.
LKC
@Peach Bardzo dziękuję!
Mohit Dharmadhikari,
I zaznacz opcję "Z WYMIENIONĄ"
Andrii Horda
33

Zobacz poniższy obraz i zastosuj zmiany w SqlServer:

najpierw kliknij prawym przyciskiem myszy Baza danych -> Zadanie -> Przywróć -> Wybierz plik kopii zapasowej -> Na koniec zastosuj zmianę na karcie Opcje .

proszę zastosować zmiany w SqlServer

AminGolmahalle
źródło
W moim przypadku robię to i zaznaczam pierwsze pole wyboru "Nadpisz istniejącą bazę danych (Z WYMIENIĄ)" i działa.
Amaurys Sánchez
6
  1. Upewnij się, że istnieje nowa baza danych.
  2. Upewnij się, że masz dostęp do swojej bazy danych (użytkownik, hasło itp.).
  3. Upewnij się, że istnieje plik kopii zapasowej bez błędów.

Mam nadzieję, że to może ci pomóc.

Oskar
źródło
2

Inną przyczyną jest sytuacja, w której ta sama baza danych została przywrócona pod inną nazwą. Usuń istniejący, a następnie przywrócenie rozwiązało go za mnie.

LothorienDanAdua
źródło
Dziękuję za odpowiedź. Lol, dlaczego Microsoft SQL Server nie mógł właśnie powiedzieć „Stary, najpierw usuń istniejącą bazę danych przed przywróceniem!”
sivabudh
1

W naszym przypadku było to spowodowane tym, że model odzyskiwania w podstawowej bazie danych został zmieniony po wykonaniu kopii zapasowej w ramach przygotowań do skonfigurowania wysyłki dziennika.

Zapewnienie, że model odzyskiwania był ustawiony na pełne odzyskiwanie przed wykonaniem kopii zapasowej i skonfigurowaniem przesyłania dziennika, rozwiązało problem.

Daniel Bowen
źródło
1

Naprawiłem błąd podczas przywracania do nieistniejącej bazy danych z SQL 2008 do SQL 2014, zaznaczając znacznik wyboru na Relokacja do nowej lokalizacji folderu SQL2014.

Oscar Gonzalez
źródło
1

Możesz użyć następującego kodu SQL, aby przywrócić, jeśli masz już utworzoną bazę danych

RESTORE DATABASE [YourDB]
FROM DISK = 'C:\YourDB.bak'
WITH MOVE 'YourDB' TO 'C:\YourDB.mdf',
MOVE 'YourDB_Log' TO 'C:\YourDB.ldf', REPLACE
HasanG
źródło
0

Właśnie usunąłem istniejącą bazę danych, którą chciałem zastąpić kopią zapasową, i przywróciłem ją z kopii zapasowej i działała bez błędu.

Dongolo Jeno
źródło
0

Nie jestem pewien, czy plik kopii zapasowej bazy danych, który próbujesz przywrócić, pochodzi z tego samego środowiska, w którym próbujesz go przywrócić.

Pamiętaj, że ścieżka docelowa plików .mdf i .ldf żyje z samym plikiem kopii zapasowej.

Jeśli tak nie jest, oznacza to, że plik kopii zapasowej pochodzi z innego środowiska niż bieżące środowisko hostingu, upewnij się, że ścieżki do plików .mdf i .ldf są takie same (istnieją) jak na komputerze, w przeciwnym razie przenieś je. (Głównie przypadek przywracania bazy danych w obrazie Dockera)

Sposób, jak to zrobić: W Bazach danych -> Przywróć bazę danych -> opcja [Pliki] -> (Zaznacz „Przenieś wszystkie pliki do folderu” - w środowisku hostingowym jest już wypełniona głównie domyślna ścieżka)

stenly
źródło
0

Jeśli problem nadal występuje, przejdź do strony Przywracanie bazy danych i zaznacz "Przywróć wszystkie pliki do folderu" w zakładce "Pliki" To może pomóc

Sarath
źródło
0

W moim przypadku przywracam bazę danych SQL Server 2008 R2 do SQL Server 2016 Po wybraniu pliku w zakładce Ogólne należy przejść do zakładki Opcje i zrobić 2 rzeczy:

  1. Musisz aktywować opcję Zastąp istniejącą bazę danych
  2. Musisz dezaktywować koniec kopii rekordu
Anibal Roman Crespo
źródło
-1

Po prostu możesz użyć tej metody:

  1. Jeśli masz bazę danych o tej samej nazwie: WIN+R-> services.msc-> SQL SERVER(MSSQLSERVER)->Stop
  2. Przejdź do ścieżki folderu danych MySQL i usuń pliki bazy danych podglądów
  3. Uruchom usługę sql
  4. Kliknij prawym przyciskiem myszy bazę danych i wybierz Przywróć bazę danych
  5. na karcie Pliki zmień folder plików danych i folder plików dziennika
  6. Kliknij OK, aby przywrócić bazę danych

mój problem został rozwiązany tą metodą BY ...

Mojtaba Rezaei
źródło
-1

Kliknij prawym przyciskiem myszy swoją bazę danych Zadania prasowe> Utwórz kopię zapasową i wykonaj kopię zapasową bazy danych przed przywróceniem bazy danych Używam tego sposobu do rozwiązania tego problemu

Abkreno Pronce
źródło