Symptomer
Når du gjenoppretter en database fra en sikkerhetskopi ved hjelp av alternativet Med Erstatt i Microsoft SQL Server 2012, kan fysisk filnavn på den gjenopprettede databasen som kommer fra sikkerhetskopien av databasen overskrive fysisk filnavn på den eksisterende databasen.
Vurder for eksempel følgende scenario:-
Du har to forekomster av SQL Server, InstanceA og InstanceB.
-
Du har en database med samme navn, SQLDB, for hver forekomst av SQL Server.
-
SQLDB navnet på databasefilen data er DB1_InstanceA.mdf på InstanceA, og navnet på loggfilen er DB1_InstanceA.ldf.
-
SQLDB navnet på databasefilen data er DB1_InstanceB.mdf på InstanceB, og navnet på loggfilen er DB1_InstanceB.ldf.
-
Du prøver å gjenopprette en sikkerhetskopi av databasen SQLDB fra InstanceA over SQLDB-databasen fra InstanceB ved å bruke alternativet Med Erstatt kommandoen GJENOPPRETT .
I dette scenariet endret fysiske filnavnene på SQLDB på InstanceB til DB1_InstanceA.mdf og DB1_InstanceA.ldf.
Årsak
Denne virkemåten er standard i SQL Server 2012.
Løsningen
Du kan omgå dette problemet ved å ikke bruke alternativet Med Erstatt kommandoen GJENOPPRETT . I stedet kan du bruke alternativet Med å flytte .
Merk alternativet Med Flytt inneholder et alternativ for å endre navnet på fysisk.Hvis du vil ha mer informasjon
Med Flytt -alternativet er bare den første gangen du bruker kommandoen GJENOPPRETT nødvendig. Når du prøver å gjenopprette en database fra sikkerhetskopien, sammenligner verdiene gaffel for gjenoppretting av databasen i SQL Server. Deretter tar sikkerhetskopisettet følgende, avhengig av om disse verdiene samsvarer med:
-
Hvis det finnes en match, fortsetter sikkerhetskopisettet å bruke filnavnene til måldatabasen.
-
Hvis verdiene er forskjellige, erstatter sikkerhetskopisettet fysiske filnavnene til måldatabasen ved hjelp av navn fra sikkerhetskopisettet.
Når du bruker alternativet Med å flytte sammen med kommandoen GJENOPPRETT , tas følgende handlinger:
-
Det opprettes en ny gjenoppretting forgrening på målserveren.
-
På den neste gjenopprettingsoperasjonen er gjenoppretting gaffel IDer fra sikkerhetskopisettet samsvare med IDene til målserveren.
-
GJENOPPRETTE kommandoen som brukes sammen med alternativet Med Erstatt holder fysiske navn på målserveren.
Hvis du vil ha mer informasjon om kommandoen GJENOPPRETT , se GJENOPPRETTE (Transact-SQL)