Ostatnio, kiedy natknąłem się na skrypt służący do przywracania bazy danych, miałem wątpliwości, dlaczego musimy użyć „ FILE = 1 ”? Czy nie możemy przywrócić bazy danych bez tego oświadczenia !? Zasadniczo do czego służy?
Ostatnio, kiedy natknąłem się na skrypt służący do przywracania bazy danych, miałem wątpliwości, dlaczego musimy użyć „ FILE = 1 ”? Czy nie możemy przywrócić bazy danych bez tego oświadczenia !? Zasadniczo do czego służy?
Odpowiedzi:
Możesz zapisać więcej niż jedną kopię zapasową w pliku kopii zapasowej (tj. Urządzeniu). FILE
Klauzula umożliwia dostęp do konkretnej operacji tworzenia kopii zapasowej, gdy istnieje wiele do wyboru w .bak
pliku.
Aby uzyskać więcej informacji na temat różnych opcji polecenia RESTORE , zapoznaj się z następującą dokumentacją MSDN dotyczącą argumentów RESTORE .
Jeśli zajrzysz do sekcji Opcje zestawu kopii zapasowych , znajdziesz:
PLIK = { numer_zestawu_ kopii zapasowych | @ backup_set_file_number }
Określa zestaw kopii zapasowych do przywrócenia. Na przykład, backup_set_file_number od 1 oznacza pierwszy zestaw kopii zapasowej na nośniku i backup_set_file_number od 2 oznacza drugi zestaw zapasowego. Można uzyskać backup_set_file_number zestawu kopii zapasowych za pomocą przywracania HEADERONLY oświadczenie.
Jeśli nie zostanie określony, wartością domyślną jest 1, z wyjątkiem PRZYWRACANIA SŁUCHAWEK, w którym to przypadku przetwarzane są wszystkie zestawy kopii zapasowych w zestawie nośników. Aby uzyskać więcej informacji, zobacz „Określanie zestawu kopii zapasowych” w dalszej części tego tematu.
Ważne
Ta opcja PLIKU nie jest powiązana z opcją PLIK do określania pliku bazy danych, PLIK = { nazwa_pliku_logicznego_w kopii zapasowej | @ nazwa_pliku_logicznego_in_backup_var }.
Tak, powinieneś być w stanie przywrócić bez FILE = 1
jak 1
jest domyślnym tak. A jeśli kiedykolwiek masz tylko jeden zestaw kopii zapasowych w pliku kopii zapasowej, nie powinno to stanowić problemu.
Przykład pomagający zilustrować, kiedy należy skorzystać z tej FILE
opcji, to przykład B ze strony MSEST polecenia PRZYWRÓĆ (link powyżej). Pokazuje wykonanie dwóch przywracań z jednego pliku kopii zapasowej: pierwszy RESTORE
to PEŁNA kopia zapasowa, a drugi RESTORE
to DIFFerential kopia zapasowa.
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
WITH FILE = 6
NORECOVERY;
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
WITH FILE = 9
RECOVERY;