+38 (093)  990-30-70

Новости

Королевский бал у Вас дома

SQL сервер для 1С: відновлення бази даних з архіву

У попередньому розділі Ви дізналися, як засобами SQL сервера можна робити резервне копіювання бази даних 1С. У цьому розділі ми розглянемо процедуру відновлення з резервної копії. Яка б не була причина для відновлення, Ви як фахівець повинні вміти оперативно привести базу в робочий стан. У розглянутому прикладі імітується видалення файлу бази даних (файл з розширенням MDF). Причина не важлива. Головне, що файл знищений. В Enterprise Manager така база виділяється словом Suspect:

Suspect:

Вважаємо, що каталог інформаційної бази відновлювати не треба.

Визначимо короткий порядок наших дій:

  1. Підготувати найсвіжішу повну копію бази даних і всі архіви файлу транзакцій, зроблені з моменту цієї повної копії бази даних;
  2. Відновити базу даних з повною архівної копії;
  3. Відновити дані з архівних копій файлу транзакцій, включаючи архів, зроблений в п.1;
  4. Перевірити працездатність програми 1C.

Давайте зупинимося докладніше на кожному кроці.

Створення резервної копії файлу транзакцій з пошкодженої бази

Основне призначення цієї операції - підготуватися до відновлення бази даних в стан, в якому вона була в момент безпосередньо перед збоєм. Якщо слідувати плану резервного копіювання, реалізованому в попередній статті, Ви ризикуєте втратити максимум 20 хвилин роботи підприємства. Але буде набагато краще, якщо Ви взагалі нічого не втратите.

Тому слід спробувати зробити архівну копію файлу транзакцій з пошкодженої бази. Для цього в Enterprise Manager встановіть курсор на назву пошкодженої бази і з контекстного меню викличте послідовно пункти "Усі завдання" - "Backup Database ...":

:

У вікні, виберіть режим архівування "Transaction log".

У вікні, виберіть режим архівування Transaction log

В поле "Destination" вкажіть, куди слід зберегти архівну копію файлу транзакцій. Для цього натисніть кнопку "Add ..". У вікні, введіть шлях до файлу та натисніть кнопку "ОК":

У вікні, введіть шлях до файлу та натисніть кнопку ОК:

Тепер перейдіть на закладку "Options". Якщо галочка "Remove inactive entries from transaction log" встановлена, зніміть її. В іншому випадку створення архівної копії швидше за все не буде виконано.

В іншому випадку створення архівної копії швидше за все не буде виконано

На цьому все приготування завершені. Натискайте кнопку "ОК". В результаті у Вас повинен сформуватися архів файлу транзакцій. Якщо з яких-небудь причин цього не сталося, значить, Ви не зможете відновити базу даних на момент збою. Таке теж може бути.

Тепер, після спроби зробити архівну копію файлу транзакцій з пошкодженої бази (вдалою чи ні), слід підготувати всі архіви, які Ви будете використовувати при відновленні. Помістіть ці файли в одну папку. Вам знадобляться:

  • Найсвіжіша повна копія бази даних. З неї починатиметься процес відновлення;
  • Всі архіви файлу транзакцій, зроблені з моменту цієї повної копії бази даних. Сюди ж помістіть архів файлу транзакцій, які Ви зробили з пошкодженої бази (якщо у Вас вийшло зробити цей архів).

На цьому підготовчий етап завершено.

Відновлення бази даних з резервної копії

В Enterprise Manager встановіть курсор на назву пошкодженої бази і з контекстного меню викличте послідовно пункти "Усі завдання" - "Restore Database ...":

У вікні на закладці "General" в поле "Restore as database:" за замовчуванням буде обрана пошкоджена база даних (на ній стояв курсор під час виклику пункту меню "Restore Database ..."). Ви можете вказати інше ім'я для відновлюваної бази даних. У нашому прикладі ми цього робити не будемо.

У групі перемикачів "Restore:" виберіть "From device". Це, напевно, самий тривалий шлях відновлення, але таким чином Ви краще зрозумієте, що і як відбувається при відновленні.

В поле "Devices:" виберіть файл повної резервної копії бази даних. Це робиться через кнопку "Select Devices ...". Процес вибору файлу для відновлення я описувати не буду - він досить простий і зрозумілий.

Встановіть перемикачі "Restore backup set" і "Database - complete". Цим ми вказуємо SQL сервера, що файл, обраний в поле "Devices:", - це повна копія бази даних.

Перейдіть на закладку "Options". У таблиці "Restore database files as:" поля будуть заповнені інформацією з файлу повної копії бази даних. Залишимо їх без змін. Тим самим ми говоримо, що база даних буде відновлюватися на місце пошкодженої.

Тим самим ми говоримо, що база даних буде відновлюватися на місце пошкодженої

Зверніть увагу на групу перемикачів "Recovery completion state". Нас будуть цікавити перші два значення:

1. Leave database operational. No additional transaction logs can be restored. (Залишити базу даних працює. Архіви файлу транзакцій не можуть бути відновлені).

Цей режим вибирається в 2х випадках:

  • Ми відновлюємо базу даних з повною архівної копії, але архіви файлу транзакцій відновлювати Не будемо;
  • Ми відновлюємо останній архів файлу транзакцій.

Після відновлення в цьому режимі база даних стає готової до роботи.

2. Leave database nonoperational but able to restore additional transaction logs . (Залишити базу даних в неробочому стані, але з можливістю відновлювати архіви файлу транзакцій).

Цей режим треба використовувати, коли ми хочемо відновити базу даних з повною архівної копії і набору архівів файлу транзакцій (за винятком останнього).

За умовами нашого завдання у нас є файл повної копії бази даних та архіви файлу транзакцій. Тому при відновленні бази даних з повною копії вибираємо режим 2 - після відновлення залишити базу в неробочому стані для можливості відновлення даних з архівів файлу транзакцій.

Тепер можна натиснути кнопку "ОК". Після закінчення процедури відновлення статус бази даних зміниться на "Loading":

Наступний етап - відновлення даних з усіх архівів файлу транзакцій. За винятком останнього файлу, архіви файлу транзакцій повинні відновлюватися в режимі 2. Останній архів файлу транзакцій повинен бути відновлений в режимі 1 - залишити базу даних працює, архіви файлу транзакцій не можуть бути відновлені. Після виконання цих дій база даних буде відновлена ​​і готова до роботи.

Відновлення архіву файлу транзакцій виконується аналогічно відновленню з повною копії бази даних. Виберіть з контекстного меню пункти "Усі завдання" - "Restore Database ...".

На цей раз у вікні "Devices:" виберіть архів файлу транзакцій, створений першим після повної копії бази даних. Далі, при наступних операціях відновлення, вибирайте архіви файлу транзакцій в хронологічному порядку.

Вкажіть SQL сервера, що буде відновлюватися файл транзакцій. Для цього виберіть пункт "Transaction log". На закладці "Options" виберіть відновлення в режимі 2.

Натисніть кнопку "ОК". Подібним чином відновите дані з усіх архівів файлу транзакцій, за винятком останнього. Для нього виберіть відновлення в режимі 1.

Усе! Відновлення бази даних з резервної копії завершено. Запускайте програму 1С та перевіряйте її працездатність.

Як можна прискорити процес відновлення

Погодьтеся, запропонований спосіб не з найшвидших. Проте, Ви на наочному прикладі побачили, що ж відбувається в процесі відновлення.

Давайте спробуємо прискорити цей процес. Якщо системні бази даних не пошкоджені, ми можемо скористатися режимом відновлення "Database":

Якщо системні бази даних не пошкоджені, ми можемо скористатися режимом відновлення Database:

У цьому режимі в групі "Parameters" слід вказати:

  • для якої бази показувати архівні копії,
  • починаючи з якою архівної копії починати відновлення. У випадаючому списку Ви можете вибрати повну резервну копію, починаючи з якої піде процес відновлення;
  • в таблиці виділити прапорцями ті резервні копії, які буде використовуватися для відновлення.

Нам залишається зовсім небагато. Розташувати необхідні для відновлення файли відповідно до шляхами, зазначеними в стовпці "Restore From". Це будуть ті самі файли, яке Ви підготували для відновлення.

На закладці "Options" виберіть відновлення в режимі 1, адже ми хочемо отримати повністю працюючу базу.

Зверніть увагу на прапорець "Point in time restore:". Якщо Ви хочете відновити базу даних за станом на якийсь конкретний момент часу, встановіть цей прапорець і виберіть потрібні дату і час. На цьому все приготування завершені. Натискайте "ОК" і відновлюйте базу даних. SQL сервер в автоматичному режимі обробить всі зазначені файли.

PS На закінчення хочеться сказати, щоб Ви не тільки прочитали цю статтю, а й на практиці спробували все зробити своїми руками. Тільки в цьому випадку Ви будете впевнені, що зумієте безпомилково діяти в критичній ситуації.

Примітка: в статті висвітлено моя думка по відновленню бази даних з архіву. Воно може не збігатися з Вашою думкою і / або думкою інших фахівців.

За матеріалами книги " Трохи теорії для роботи з 1С "