KB2839722 — nazwy plików bazy danych zmieniają się po przywróceniu bazy danych przy użyciu opcji WITH REPLACE w programie SQL Server 2012

Symptomy

W przypadku przywracania bazy danych z kopii zapasowej przy użyciu opcji with Replace w programie Microsoft SQL Server 2012 nazwy plików fizycznych przywróconej bazy danych, które pochodzą z kopii zapasowej bazy danych, mogą zastąpić nazwy plików fizycznych istniejącej bazy danych. Załóżmy na przykład następujące rozwiązanie:

  • Istnieją dwa wystąpienia programu SQL Server, wystąpienia i InstanceB.

  • Masz bazę danych o takiej samej nazwie, SQLDB, w każdym wystąpieniu programu SQL Server.

  • W wystąpieniu a nazwa pliku danych bazy danych SQLDB to DB1_InstanceA. mdf, a nazwa pliku dziennika to DB1_InstanceA. ldf.

  • W programie InstanceB nazwa pliku danych SQLDB to plik DB1_InstanceB. mdf, a nazwa pliku dziennika to DB1_InstanceB. ldf.

  • Użytkownik próbuje przywrócić kopię zapasową bazy danych SQLDB z wystąpienia w bazie danych SQLDB z InstanceB, korzystając z opcji with Replace polecenia Restore .

W tym scenariuszu nazwy plików fizycznych na SQLDB na InstanceB zostaną zmienione na DB1_InstanceA. mdf i DB1_InstanceA. ldf. 

Przyczyna

Zachowanie to jest zgodne z projektem programu SQL Server 2012.

Obejście

Aby obejść ten problem, nie należy używać opcji with Replace w poleceniu Restore . Zamiast tego użyj opcji with Move .Uwaga Opcja with Move oferuje opcję zmiany nazwy pliku fizycznego.

Więcej informacji

Opcja with Move jest potrzebna tylko po raz pierwszy przy użyciu polecenia Restore . Podczas próby przywrócenia bazy danych z kopii zapasowej program SQL Server porównuje wartości rozwidlenia odzyskiwania bazy danych. Następnie zestaw kopii zapasowych wykonuje następujące czynności, w zależności od tego, czy te wartości pasują do siebie:

  • W przypadku dopasowania zestaw kopii zapasowych nadal będzie używać nazw plików docelowej bazy danych.

  • Jeśli wartości są różne, zestaw kopii zapasowych zastępuje fizyczne nazwy plików docelowej bazy danych przy użyciu nazw z zestawu kopii zapasowych.

W przypadku używania opcji with Move razem z poleceniem Restore są podejmowane następujące działania:

  1. Na serwerze docelowym jest tworzone nowe rozwidlenie odzyskiwania.

  2. W przypadku następnej operacji przywracania identyfikatory rozwidlenia odzyskiwania z zestawu kopii zapasowych są dopasowywane do identyfikatorów serwera docelowego.

  3. Polecenie Restore użyte razem z opcją with Replace zachowuje nazwy fizyczne na serwerze docelowym.

Aby uzyskać więcej informacji na temat polecenia Restore , zobacz przywracanie (Transact-SQL)

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jak zadowalająca jest jakość tłumaczenia?

Co wpłynęło na Twoje wrażenia?

Czy chcesz przekazać jakieś inne uwagi? (Opcjonalnie)

Dziękujemy za opinię!

×