Simptomi
Ja atjaunojat datu bāzi no dublējuma, izmantojot opciju aizstāšana ar Microsoft SQL Server 2012, atjaunotās datu bāzes, kas nāk no dublējuma datu bāzes, fizisko failu nosaukumi var pārrakstīt esošās datu bāzes fizisko failu nosaukumus. Piemēram, apsveriet šādus scenārijus:
-
Jums ir divas SQL Server, instances un InstanceB instances.
-
Jums ir datu bāze, kurai ir tāds pats nosaukums kā SQLDB katrā SQL Server instancē.
-
Piemēram, SQLDB datu bāzes datu faila nosaukums ir DB1_InstanceA. MDF un žurnālfaila faila nosaukums ir DB1_InstanceA. ldf.
-
Vietnē InstanceB SQLDB datu bāzes datu faila nosaukums ir DB1_InstanceB. MDF un žurnālfaila nosaukums ir DB1_InstanceB. ldf.
-
Jūs mēģināt atjaunot SQLDB datu bāzes dublējumu no instances SQLDB datu bāzes no InstanceB, izmantojot komandu atjaunotar opciju aizstāt .
Šajā scenārijā fiziskie failu nosaukumi pakalpojumā SQLDB, izmantojot InstanceB, tiek mainīti uz DB1_InstanceA. MDF un DB1_InstanceA. ldf.
Cēlonis
Šī darbība ir izstrādāta programmā SQL Server 2012.
Risinājums
Lai apietu šo problēmu, Nelietojiet komandu atjaunot ar aizstāšanas opciju. RESTORE Tā vietā izmantojiet opciju ar pārvietošanu .Piezīme. Opcija ar pārvietošanu nodrošina opciju mainīt fizisko faila nosaukumu.
Papildinformācija
Opcija ar pārvietošanu ir nepieciešama tikai pirmajā reizē, kad izmantojat komandu atjaunot . Kad mēģināt atjaunot datu bāzi no dublējuma, SQL Server saskaita datu bāzes atkopšanas dakšas vērtības. Pēc tam dublējuma kopā ir jāveic tālāk norādītās darbības atkarībā no tā, vai šīs vērtības ir vienādas:
-
Ja ir atbilstība, dublējuma kopa turpina izmantot datu bāzes failu nosaukumus.
-
Ja vērtības ir atšķirīgas, dublējuma kopa aizstāj adresātu datu bāzes fizisko failu nosaukumus, izmantojot dublējuma kopā iekļautos nosaukumus.
Izmantojot opciju ar pārvietošanu kopā ar komandu atjaunot , tiek veiktas tālāk norādītās darbības.
-
Mērķu serverī tiek izveidots jauns atkopšanas dakša.
-
Nākamajā atjaunošanas darbībā atkopšanas dakšas ID no dublējuma kopas tiek saskaņots ar mērķserveri ID.
-
Komanda atjaunot , kas tiek izmantota kopā ar aizstāšanas opciju, saglabā fiziskos vārdus mērķu serverī.
Papildinformāciju par komandu atjaunošanu skatiet rakstā atjaunošana (Transact-SQL)