Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak dołączyć MDF bez pliku dziennika?

W początkowej sytuacji wygląda na to, że próbowałeś czegoś takiego (lub czegokolwiek, co GUI dla ciebie przygotuje, gdy przejdziesz przez okna dialogowe):

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;

Jednak ta metoda wymaga zarówno mdf plik i ldf plik. W przeciwnym razie pojawi się komunikat o błędzie podobny do:

Teraz jest sposób na kontynuację, nawet jeśli masz tylko mdf plik. Zakładając, że masz mdf poprawnie odłączony od SQL Server, powinieneś być w stanie dołączyć mdf plik bez pliku dziennika przy użyciu następującej składni:

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;

Wydaje się jednak, że w twoim przypadku plik nie został prawidłowo odłączony od SQL Server:

Istnieje kilka możliwych wyjaśnień, w tym te wymienione w komunikacie o błędzie. Być może został pobrany z jakiegoś nieprawidłowego cienia SAN lub odłączony w trybie tylko do odczytu lub odzyskany po awarii SQL Server lub bazowego systemu, lub uszkodzony podczas kopiowania/pobierania, lub kto wie, co jeszcze.

Aby sprawdzić, czy istnieją właściwe kopie zapasowe, musisz wrócić do wsparcia Yaf lub jego dostawcy usług dostępne lub, jeśli to się nie uda, alternatywne kopie mdf plik. Pamiętaj też, że nikt z nas tak naprawdę nie wie, czym jest Yaf, ani nie ma sposobu, aby zweryfikować, o którym Yaf mówisz.

W przeciwnym razie wygląda na to, że nie masz szczęścia, ponieważ ten konkretny mdf plik jest nieprawidłowy i dlatego nie zaprowadzi Cię zbyt daleko.

Właśnie dlatego metody kopiowania plików na poziomie odłączania/dołączania i/lub systemu operacyjnego nie są zbyt użytecznymi metodami tworzenia kopii zapasowych (lub migracji, jeśli o to chodzi) dla SQL Server. Potrzebujesz odpowiedniego planu tworzenia kopii zapasowych/odzyskiwania, co oznacza wykonywanie odpowiednich kopii zapasowych pełnych/różnic/dzienników odpowiednich do tolerancji na utratę danych. A odłączenie bazy danych jest prawie zawsze gorszym pomysłem - gdy coś dzieje się z mdf plik podczas lub po odłączeniu, masz teraz ZERO kopie Twojej bazy danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wiele warunków w klauzuli WHERE

  2. SQL Server SELECT do istniejącej tabeli

  3. Sposoby naprawy błędu we/wy opartego na spójności logicznej w programie SQL Server

  4. Zapytanie SQL, aby znaleźć ostatni dzień bieżącego miesiąca?

  5. Utrata integralności mojej transakcji z wyjątkiem TransactionInDoubtException