Príznaky
Keď databázu obnovíte zo zálohy pomocou možnosti nahradiť v Microsoft SQL Server 2012, názvy fyzických súborov obnovenej databázy, ktorá pochádza z záložnej databázy, môžu prepísať názvy fyzických súborov existujúcej databázy. Predpokladajme napríklad, že tento scenár:
-
Máte dve inštancie programu SQL Server, inštancie a InstanceB.
-
Máte databázu s rovnakým názvom SQLDB na každej inštancii programu SQL Server.
-
Názov údajového súboru databázy SQLDB je napríklad DB1_InstanceA. mdf a názov súboru denníka je DB1_InstanceA. ldf.
-
Na InstanceB DB1_InstanceB je názov údajového súboru databázy SQLDB. mdf a názov súboru denníka DB1_InstanceB. ldf.
-
Pokúšate sa obnoviť zálohu databázy SQLDB z inštancie SQLDB z databázy InstanceB pomocou možnosti nahradiť v príkaze obnoviť .
V tomto scenári sa zmenia názvy fyzických súborov na SQLDB v InstanceB na DB1_InstanceA. mdf a DB1_InstanceA. ldf.
Príčina
Toto správanie je zámerné v programe SQL Server 2012.
Alternatívne riešenie
Ak chcete tento problém obísť, nepoužívajte možnosť nahradiť v príkaze obnoviť . Namiesto toho použite možnosť s pohybom .Poznámka: Možnosť s PREmiestnením poskytuje možnosť zmeniť názov fyzického súboru.
Ďalšie informácie
Možnosť s pohybom je potrebná len pri prvom použití príkazu obnoviť . Pri pokuse o obnovenie databázy zo zálohy SQL Server porovná hodnoty vidlice obnovenia v databáze. Potom záložná množina vykoná nasledujúce akcie v závislosti od toho, či sa tieto hodnoty zhodujú:
-
Ak existuje zhoda, záložná množina pokračuje v používaní názvov súborov cieľovej databázy.
-
Ak sa hodnoty odlišujú, záložná množina nahradí názvy fyzických súborov cieľovej databázy použitím názvov zo záložnej množiny.
Pri použití možnosti Premiestniť spolu s príkazom obnoviť sa vykonajú tieto akcie:
-
Na cieľovom serveri sa vytvorí nová vidlica na obnovenie.
-
Pri ďalšej operácii obnovenia sa identifikátory vidlice na obnovenie zo záložnej množiny zhodujú s identifikátormi cieľového servera.
-
Príkaz obnoviť , ktorý sa používa spolu s možnosťou nahradiť , zachová fyzické názvy na cieľovom serveri.
Ďalšie informácie o príkaze obnoviť nájdete v téme obnovenie (Transact-SQL)