Ознаки
Під час відновлення бази даних із резервної копії за допомогою параметра " замінити на" в Microsoft SQL Server 2012 фізичні імена файлів відновленої бази даних, що надходять із бази даних резервної копії, можуть перезаписати фізичні імена файлів наявної бази даних. Наприклад, розглянемо такий сценарій:
-
У вас є два екземпляри SQL Server, InstanceA і Instancев.
-
У вас є база даних, яка має таке саме ім'я, SQSQL, на кожному екземплярі SQL Server.
-
У полі Ім'я файлу даних бази даних SQLDB DB1_InstanceA. МДФ і ім'я файлу журналу – DB1_InstanceA. ldf.
-
У Instancев ім'я файлу даних бази даних SQLDB має DB1_InstanceB. МДФ і ім'я файлу журналу – DB1_InstanceB. ldf.
-
Ви намагаєтеся відновити резервну копію бази даних sqtdb у базі даних у службі SQL, використовуючи параметр " замінити " на основі команди " відновити ".
У цьому сценарії фізичні імена файлів на SQLDB для InstanceB змінюються на DB1_InstanceA. МДФ і DB1_InstanceA. ldf.
Причина
Ця поведінка виконується за допомогою конструктора в SQL Server 2012.
Інші способи вирішення
Щоб вирішити цю проблему, не використовуйте команду " замінити " на кнопці " відновити ". Натомість використовуйте параметр " з переміщенням ".Примітка. Параметр " за допомогою переміщення " дає змогу змінити ім'я фізичного файлу.
Додаткові відомості
Параметр " з переміщенням " потрібен лише перший раз, коли ви використовуєте команду " відновити ". Під час спроби відновити базу даних із резервної копії SQL Server порівнює значення вилки відновлення в базі даних. Після цього набір параметрів резервного копіювання має наведені нижче дії, залежно від того, чи збігаються ці значення:
-
Якщо є відповідність, набір резервних копій продовжує використовувати імена файлів цільової бази даних.
-
Якщо значення різні, набір резервних копій замінює фізичні імена файлів цільової бази даних за допомогою імен із набору резервних копій.
Під час використання параметра " з переміщенням " разом із командою " відновити " слід виконати наведені нижче дії.
-
Нова вилка відновлення створюється на цільовому сервері.
-
Під час наступної операції відновлення ідентифікатори вилку відновлення з набору резервних копій відповідають ідентифікаторами цільового сервера.
-
Команда " відновити ", яка використовується разом із ПАРАМЕТРОМ " замінити на", зберігає фізичні імена на цільовому сервері.
Докладні відомості про команду відновлення наведено в статті відновлення (TRANSACT-SQL)