Simptome
Atunci când restaurați o bază de date dintr-o copie de rezervă utilizând opțiunea cu înlocuire din Microsoft SQL Server 2012, numele de fișiere fizice ale bazei de date restaurate care provine din baza de date backup pot suprascrie numele de fișiere fizice ale bazei de date existente. De exemplu, luați în considerare următorul scenariu:
-
Aveți două instanțe de SQL Server, instanta și InstanceB.
-
Aveți o bază de date cu același nume, SQLDB, pe fiecare instanță a SQL Server.
-
În instanță, numele de fișier al bazei de date SQLDB este DB1_InstanceA. MDF și numele fișierului jurnal este DB1_InstanceA. ldf.
-
Pe InstanceB, numele fișierului de date al bazei de date SQLDB este DB1_InstanceB. MDF și numele fișierului jurnal este DB1_InstanceB. ldf.
-
Încercați să restaurați o copie de rezervă a bazei de date SQLDB din instanță în baza de date SQLDB din InstanceB, utilizând opțiunea cu înlocuire a comenzii Restaurare .
În acest scenariu, numele de fișiere fizice din SQLDB de pe InstanceB se modifică în DB1_InstanceA. MDF și DB1_InstanceA. ldf.
Cauză
Acest comportament este proiectat în SQL Server 2012.
Soluție de evitare
Pentru a rezolva această problemă, nu utilizați opțiunea cu înlocuire a comenzii Restaurare . În schimb, utilizați opțiunea cu mutare .Notă Opțiunea cu mutare oferă o opțiune pentru a modifica numele de fișier fizic.
Mai multe informații
Opțiunea cu mutare este necesară doar pentru prima dată când utilizați comanda Restaurare . Atunci când încercați să restaurați o bază de date din backup, SQL Server compară valorile din furca de recuperare din baza de date. Apoi, setul de copii de rezervă efectuează următoarele acțiuni, în funcție de modul în care se potrivește acele valori:
-
Dacă există o corespondență, setul de backup continuă să utilizeze numele de fișier ale bazei de date țintă.
-
Dacă valorile sunt diferite, setul backup înlocuiește numele de fișiere fizice ale bazei de date țintă, utilizând numele din setul de backup.
Atunci când utilizați opțiunea cu mutare împreună cu comanda Restaurare , se vor întreprinde următoarele acțiuni:
-
O nouă furcă de recuperare este creată pe serverul țintă.
-
În operațiunea de restaurare următoare, ID-urile de furcă de recuperare din setul de backup sunt corelate cu ID-urile serverului țintă.
-
O comandă de Restaurare care este utilizată împreună cu opțiunea cu înlocuire păstrează numele fizice pe serverul țintă.
Pentru mai multe informații despre comanda Restaurare , consultați restaurarea (Transact-SQL)