Проведення відновлення баз даних sql server 2018

Після того, як підготовка завершена, можна приступати до самого відновленню. Запустити відновлення можна за допомогою графічного інтерфейсу Management Studio (контекстне меню RestoreDatabase для контейнера Databases або контекстне меню Tasks | Restore для контейнера бази даних) або за допомогою команди RESTORE. Як завжди, опишемо можливості, які представляє графічний інтерфейс, і наведемо інформацію про тих параметрах команди RESTORE. яким вони відповідають:

q Destination to restore. Todatabase (Призначення відновлення. В базу даних) - це, звичайно, ім'я відновлюваної бази даних. Зверніть увагу, що замість вибору бази даних зі списку ви можете ввести своє ім'я. В цьому випадку з резервної копії на сервері буде створена нова база даних. У деяких випадках може бути зручно відновити копію існуючої бази даних під іншим ім'ям, а потім при необхідності стару базу даних видалити, а відновлену перейменувати, присвоївши їй стару назву.

Команда на відновлення бази даних у найпростішому варіанті може виглядати так:

RESTORE DATABASE db2 FROM DISK = 'D: \ SQLBackups \ BackupFile1.bak';

При цьому резервна копія цілком могла бути створена для бази даних db1. а не db2;

· Відновлення на мітку транзакції. Зазвичай мітка транзакції застосовується перед виконанням ризикованих операцій (застосування виправлень від розробників, очищення або масове завантаження даних і т. П.). Створити мітку транзакції можна дуже просто:

BEGIN TRAN mark1 WITH MARK;

Для відновлення буде потрібно використовувати параметр WITH STOPATMARK = 'mark1'. щоб зупинитися точно на цій мітці або WITH STOPBEFOREMARK = 'mark1' для зупинки точно перед цією міткою;

RESTORE LOG db1 FROM DISK = 'D: \ SQLBackups \ BackupFile1.bak' WITH STOPATMARK = 'lsn: 120';

q Fromdatabase (З бази даних) - для виявлення резервних копій буде використовуватися історія резервного копіювання з таблиць бази даних m sdb. У списку можна вибрати не тільки поточну базу даних, але і інші бази даних, які є на цьому сервері;

q Fromdevice (З пристрою) - вам буде потрібно вказати місцезнаходження резервної копії явно. Ця можливість використовується в тих ситуаціях, коли вам потрібно відновити базу даних на інший сервер або місцезнаходження резервної копії змінилося. У будь-якому випадку вам буде потрібно вибрати логічний пристрій резервного копіювання, картридж Стриммер або файл на диску. Ще одна можливість (доступна тільки в Enterprise Edition і тільки при повному відновленні бази даних) - використовувати в якості джерела знімок бази даних (databasesnapshot);

q Selectthebackupsetstorestore (Вибрати резервну копію для відновлення) - в цьому списку вам буде потрібно встановити прапорці навпроти тих резервних копій, які ви плануєте відновити. Зверніть увагу, що прапорці можна поставити навпроти декількох резервних копій. В цьому випадку для кожної обраної резервної копії буде виконана окрема команда RESTORE.

Додаткові і дуже важливі параметри відновлення представлені на вкладці Options вікна відновлення бази даних Management Studio:

q Overwritetheexistingdatabase (Перезаписувати існуючу базу даних) - встановлений прапорець дозволяє перезаписати існуючу базу даних. Фактично він скасовує перевірки, які покликані не допустити втрати даних в разі помилкового відновлення. Таких перевірок передбачено три:

· Заборонено відновлювати резервну копію чужої бази даних на сервер, якщо під цим ім'ям на сервері є своя база даних;

· Заборонено перезаписувати файли, які відносяться до баз даних, що знаходяться в автономному режимі (offline), і, крім цього, взагалі будь-які файли, які не належать до SQL Server;

Щоб ці перевірки скасувати, потрібно встановити зазначений прапорець або використовувати параметр WITH REPLACE в команді RESTORE;

q Preservethereplicationsettings (Зберегти настройки реплікації) - зберегти настройки реплікації при відновленні. Відповідає параметру KEEP_REPLICATION команди RESTORE. Зазвичай використовується тільки тоді, коли база даних одночасно бере участь і в реплікації, і в автоматичній доставці журналів (logshipping).

q Prompt before restoring each backup (Виводити запрошення перед кожним відновленням) - виводити запрошення перед відновленням кожної наступної резервної копії з обраного вами списку. Зазвичай цей параметр використовується тільки тоді, коли кожна копія лежить на своєму картриджі Стриммер, і вам потрібно їх міняти. Цей параметр можна налаштувати тільки на графічному екрані Management Studio. оскільки в коді Transact - SQL для відновлення кожної резервної копії вам доведеться використовувати свою власну команду RESTORE;

q Restrictaccesstotherestoreddatabase (Обмежити доступ до відновлюваної базі даних) - після відновлення доступ буде відкритий тільки членам ролі бази даних db_owner і членам серверних ролей dbcreator і sysadmin. Цей параметр зазвичай застосовується в тих випадках, коли після відновлення бази даних вам необхідно провести додаткові перевірки або внести виправлення. Йому відповідає параметр команди RESTORE WITH RESTRICTED_USER;

q Restorethedatabasefilesas (Відновити файли бази даних як) - дуже важливий параметр, який дозволяє визначити новий шлях для відновлюваних файлів баз даних. Без нього не обійтися, наприклад, в тих ситуаціях, коли ви відновлюєте базу даних на інший сервер, на якому конфігурація дисків виглядає по-іншому. Цьому прапорця в команді RESTORE відповідає параметр MOVE. наприклад:

RESTORE DATABASE db1 FROM DISK = 'D: \ SQLbackups \ BackupFile1.bak' WITH MOVE 'db1' TO 'D: \ db1.mdf', MOVE 'db1_log' TO 'D: \ db1_log.mdf';

Тут db1 і db1_log - це логічні назви файлів бази даних і журналу транзакцій відповідно, а 'D: \ db1.mdf' і 'D: \ db1_log.mdf' - це нові місця для файлів, які будуть відновлені з резервної копії;

q Recoverystate (Стан відновлення) - ще один найважливіший параметр, який визначає, чи буде база даних відкрита для користувачів після закінчення відновлення з носія. У вашому розпорядженні три варіанти:

· WITH RECOVERY - відновлення в звичайному режимі. Після закінчення відновлення почнеться процедура RECOVERY. всі незавершені транзакції будуть скасовані, і в підсумку база даних буде відкрита для користувачів. Цей параметр використовується за умовчанням;

· WITH NORECOVERY - після закінчення процесу відновлення з носія процедура RECOVERY не почнеться. Бази даних залишиться в неробочому стані відновлення. Цей параметр використовується тоді, коли після відновлення резервної копії ви хочете відновити додаткові копії, наприклад, після відновлення повної резервної копії відновити резервну копію журналу транзакцій;

· WITH STANDBY - процедура RECOVERY почнеться, але вся інформація про всіх скасованих незавершених транзакцій буде записана в файл скасування (його потрібно буде вказати). В результаті користувачі зможуть звертатися до відновленої базі даних для читання (наприклад, для створення звітів), але в той же час зберігається можливість застосування наступних резервних копій журналів транзакцій. Таке рішення використовується зазвичай тільки при застосуванні автоматичної доставки журналів на резервний сервер (logshipping).

Як і у випадку з командою BACKUP. деякі можливості команди RESTORE доступні тільки з коду Transact - SQL. Про деякі з них (наприклад, про можливість відновлення до мітки транзакції або LSN) вже розказано. Далі представлено ще кілька параметрів, які не можна вибрати за допомогою графічного інтерфейсу:

q CHECKSUM | NOCHECKSUM - дозволяє включити або відключити перевірку контрольних сум при відновленні. За замовчуванням така перевірка проводиться, а в разі виявлення розбіжностей відновлення припиняється і видається повідомлення про помилку;

q CONTINUE_AFTER_ERROR | STOP_ON_ERROR - чи буде зупинено відновлення в разі виявлення помилок в контрольній сумі. За замовчуванням встановлено параметр STOP_ON_ERROR;

q MEDIANAME - дозволяє вказати ім'я носія, з якого проводиться відновлення. Використовується тільки для додаткових перевірок;

q RESTART - дозволяє продовжити операцію відновлення з того моменту, коли вона була перервана (наприклад, необхідно вставити наступний картридж в стриммер);

q REWIND | NOREWIND - виробляти чи після закінчення відновлення перемотування стрічки в картриджі чи ні. За замовчуванням використовується значення REWIND. т. е. виробляти;

q STATS - так само, як і для команди BACKUP. цей параметр визначає частоту появи інформаційних повідомлень. За замовчуванням інформація про хід відновлення виводиться після відновлення приблизно кожних 10% резервної копії;

q UNLOAD | NOUNLOAD - вивантажувати картридж з Стриммер після закінчення відновлення чи ні. За замовчуванням використовується значення UNLOAD. т. е. вивантажувати. UNLOAD включає в себе також і перемотування стрічки на початок, тому разом з параметром REWIND використовуватися не може.

Схожі статті