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?
źródło
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?
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;