Czy mogę porzucić i ponownie utworzyć bazę danych w wystąpieniu zarządzanym przy użyciu tej samej nazwy bazy danych?
Przywracanie każdej bazy danych jest gwarantowane przez cały zdefiniowany okres przechowywania — nawet utworzone bazy danych, a następnie usuwane po zaledwie kilku sekundach. Gdy baza danych zostanie utworzona, usunięta lub przywrócona, kopie zapasowe są wykonywane w różnych odstępach czasu w celu zachowania danych, dzięki czemu można je przywrócić w danym okresie przechowywania. Jeśli baza danych zostanie porzucona przed zakończeniem operacji tworzenia kopii zapasowej, operacja porzucenia może zostać zablokowana z powodu następującego błędu:
Message database 'backup_restore_db_lkg_native_restore' already exists. Choose a different database name.
Aby uniknąć tego błędu, sprawdź stan operacji porzucenia przed ponownym utworzeniem bazy danych o tej samej nazwie. Aby uzyskać więcej informacji, zobacz sys.dm_operation_status. Kiedy stan operacji będzie miał wartośćUkończone, będzie można przywrócić lub utworzyć bazę danych o tej samej nazwie.
Następujące typowe przypadki użycia mogą napotkać ten błąd:
Jeśli wiele baz danych zostanie porzuconych i utworzonych ponownie o tej samej nazwie w krótkim odstępie czasu.
Gdy baza danych zostanie porzucona, kopia zapasowa pozostałego końca dziennika transakcji jest wykonywana synchronicznie przed zakończeniem operacji upuszczania, jak pokazano na obrazie:
Nie można utworzyć bazy danych o tej samej nazwie, dopóki istnieje kopia zapasowa dziennika i operacja porzucania nie zostanie ukończona. Sekwencyjny charakter operacji porzucania umieszcza bazy danych porzucone w krótkim odstępie czasu w kolejce, co może przedłużyć proces porzucania baz danych i opóźnia możliwość tworzenia nowych baz danych przy użyciu tej samej nazwy.
Jeśli baza danych zostanie przywrócona i porzucona przed utworzeniem pełnej kopii zapasowej.
Po przywróceniu bazy danych pierwszym krokiem procesu przywracania jest utworzenie nowej pełnej kopii zapasowej bazy danych. Jeśli spróbujesz przywrócić bazę danych, a następnie upuść ją bezpośrednio przed ukończeniem pełnej kopii zapasowej, nie będzie można usunąć bazy danych i utworzyć inną bazę danych o tej samej nazwie, dopóki pełna kopia zapasowa nie zostanie wykonana, a operacja upuszczania bazy danych zakończy się. W zależności od rozmiaru bazy danych wykonanie pełnej kopii zapasowej może potrwać kilka godzin.