Отже в продовженні теми обслуговування баз 1С придивимося до системи керування базами даних Microsoft SQL Server. Цей продукт надає нам великі можливості обробки, зберігання, резервування та відновлення баз. Я почну невеликий цикл статей, присвячених цій темі. Все, що буде написано нижче, є особистою думкою з даного питання і підлягає критиці.
У даній статті розглянуто процес створення планів обслуговування баз. Оповіщення оператора, а так же приклад відновлення бази розглянемо в наступних статтях.
У тестовій лабораторії у нас наступне:
- Сервер Windows Server 2008 Enterprise: SRV-1C-TEST.
- Microsoft SQL Server 2008: Додати SRV-1C-TEST.
- Тестова база BuhFirma.
Як завжди, поставимо перед собою завдання:
Проводити обслуговування бази в період 00:30 - 1:00, при цьому обслуговування не повинно бути помітним (або слабозаметний) для користувачів бази.
Почнемо з важливих моментів. MS SQL база даних може мати один з трьох типів моделі відновлення:
- Проста.
- Повна.
- З неповним протоколированием.
Так само при резервному копіюванні нам надається на вибір три варіанти копіювання:
- Полное.
- Різницеве.
- Копіювання журналу транзакцій (логів).
При повному варіанті копіювання відбувається збереження бази mdf і журналу транзакцій. Різницеве копіювання (по-іншому диференціальне) проводить копіювання даних, що змінилися з моменту створення останньої повної резервної копії. Копіювання журналу транзакцій відповідно виробляє збереження тільки самого журналу транзакцій.
При виборі простої моделі відновити базу даних можна з моменту створення останньої разностной або повна резервна копія. При виборі повної моделі відновлення ми можемо відновлювати базу до хвилини, створивши повну резервну копію, наприклад, вночі, і протягом дня створювати копії журналу транзакції. Нижче ми побачимо, де спливає цей момент. Хотілося так само привести деякі витяги з MSDN : "Модель відновлення з неповним протоколированием призначена виключно як доповнення до моделі повного відновлення. У загальному випадку модель відновлення з неповним протоколированием схожа на модель повного відновлення, за винятком того, що протоколювання більшості масових операцій в ній виробляється в мінімальному ступені".
Модель відновлення своєї бази ви можете подивитися, зайшовши в властивості бази даних, наприклад BuhFirma і перейшовши на рядок - Параметри.
У MSSQL 2008 по замовчуванням в створених базах даних модель відновлення Повна.
Як вибрати модель відновлення? Треба лише відповісти на питання: смертельна чи втрата інформації за час, що минув після повного резервного копіювання? Якщо відповідь так, тоді вибираємо повну модель відновлення, якщо немає, просту. Модель з неповним протоколированием варто застосовувати тільки на час масових операцій в БД.
Таким чином, якщо ви вибрали просту модель, то відновити дані ви зможете тільки на момент нічного повного або різницевого копіювання, а всю інформацію після цього користувачі будуть відновлювати вручну. Вибираючи Повну модель, ви обов'язково повинні робити резервне копіювання журналу транзакцій, інакше логи будуть сильно зростати. При будь-якої моделі відновлення ви завжди повинні мати повну резервну копію.
На початку створимо нічний план обслуговування бази, який буде включати в себе послідовність наступних дій:
- Перевірка цілісності бази
- перестроювання індексу
- оновлення статистики
- Очищення процедурного кешу СУБД
- Створення резервних копій бази даних
- Очищення після обслуговування
- очищення журналу
Для цього підключимося до MSSQL сервера за допомогою середовища Microsoft SQLServer Management Studio. Запустити середовище можна перейшовши в Пуск - Всі програми - Microsoft SQL Server 2008.
Підключимося з сервера SQL і перейдемо до Управління - Плани Обслуговування. Кликнемо правою кнопкою по Плани обслуговування і виберемо Створити план обслуговування. Дамо йому ім'я: SRV1CTEST.
Перед нами вікно SRV1CTEST, в якому ми і будемо створювати послідовність дій, позначених раніше. Відразу бачимо з'явилася Вложенний_План1. Праворуч від назви вкладеного плану ви побачите іконку у вигляді таблички. Натискаємо на неї і потрапляємо в властивості розкладу завдання. Тут можна змінювати назву вкладеного плану, виставити частоту повторення в Щодня і встановити час. І так тепер залишилося наповнити наш план завданнями. Для цього з Панелі інструментів, яка знаходиться праворуч, перетягуємо завдання.
Почнемо з Перевірки цілісності бази даних.
Після того, як ви перетягнули завдання, клацніть по ньому два рази. Відкриється вікно, в якому в рядку Бази даних ми вибираємо створену нашу базу BuhFirma. Далі таким же чином додаємо завдання Перешикування індексу і Оновлення статистики, не забувши вибрати в них потрібну базу даних.
Процедура Перешикування індексу перестворює індекс з новим коефіцієнтом заповнення. За рахунок цього ми збільшуємо продуктивність роботи в БД.
Завдання Оновлення статистики оновлює відомості про даних таблиць для MS SQL. Що теж підвищує продуктивність. Але після цієї операції треба обов'язково проводити очистку кешу.
Поки зупинимося і поговоримо про налаштування зв'язків між завданнями. Зв'язки відображають послідовність виконання. Що б провести зв'язок між завданнями треба натиснути один раз на завдання і побачите, що з'явилася стрілку. Її треба перетягнути на наступне завдання. У зв'язку з цим може бути 3 кольори: синій, зелений і червоний, кожен з яких означає три типи спрацьовування переходу: при простому завершенні попереднього завдання - Завершення, в разі успішного завершення - Успіх, а в разі виникнення помилки при виконання попереднього завдання - Помилка. Всі ці параметри ви можете побачити, натиснувши правою кнопкою миші на проведену між завданнями стрілку. Таким чином, якщо нам треба, щоб Перешикування індексу спрацьовувало тільки після успішного завершення завдання Перевірка цілісності бази даних, ми повинні пов'язати їх стрілкою. Натиснувши правою кнопкою миші на стрілку, змінимо її режим на Успішно, як бачимо, її колір змінився на зелений.
На даний момент ми маємо 3 створених завдання в нашому вкладеному плані. Як ви могли помітити, завдання Очищення процедурного кешу СУБД в панелі елементів немає. Ми скористаємося завданням Виконання інструкції T-SQL. Перетягнемо її в план, і клацнемо на ній два рази. Ми бачимо вікно, в яке впишемо наступне:
DBCC FREEPROCCACHE
Натиснемо ОК. Далі варто додати завдання завдання Резервне копіювання бази даних. Так само клацнувши на доданому завданні, побачимо опції настройки завдання.
Тут, виходячи з поставленого завдання, вибираємо повне резервне копіювання, місце, куди будемо розміщувати архіви, а так само не забудемо встановити параметр Стискати резервні копії.
Завдання Очищення після обслуговування дозволяє видаляти застарілі архіви. У ньому ми можемо встановити місце розташування архівів, а так же час, по закінченню якого вони будуть віддалятися.
Завдання Очищення журналу робить видалення даних журналу, пов'язаних з процесами резервного копіювання, відновлення, планами обслуговування баз, а також з діяльністю агента SQLServer.
Таким образів в кінці ми отримаємо список послідовно виконуваних завдань.
Зберігши план обслуговування, треба впевнитися в тому, що на нашому сервер запущений Агент SQL Server. Для цього перейдемо в Пуск - Всі програми - Microsoft SQL Server випуску 2008 - Засоби налаштування - Диспетчер конфігурації SQL Server. Перейшовши на сходинку Служби SQLServer, перевіримо, що служба Агент SQLServer знаходиться в стані Працює і режим запуску виставлений в Авто.
В кінці хотілося б сказати про те, що використання завдання Перешикування індексу можна замінити або поєднати з завданням Реорганізація індексу. Реорганізація індексу являє собою інструмент для дефрагментації індексів. Для того що б переглянути які операції потрібні індексу, необхідно переглянути фізичну статистику індексу. Для цього правою кнопкою миші натисніть на базу даних, перейдіть в Звіти - Стандартні звіти - Фізична статистика індексу.
Стежити за станом виконуваних операцій ви можете з Управління - Плани обслуговування. Для цього у властивостях плану SRV1CTEST виберіть Перегляд журналу. Так само можна переглянути журнал, який веде Агент MS SQL цьому завданням. Для цього перейдіть на рядок Агент MS SQL і у властивостях завдання SRV1CTEST виберіть Перегляд журналу.
Додаткові матеріали:
Як вибрати модель відновлення?Треба лише відповісти на питання: смертельна чи втрата інформації за час, що минув після повного резервного копіювання?