Створення резервних копій за розкладом в ms sql express, publishercrm

MS SQL Express позбавлений агента, за допомогою якого можна виконувати завдання за розкладом, але можна скористатися і стандартними засобами Windows.

Дуже часто для невеликих проектів вистачає і Express версії SQL сервера. Одна з проблем-це те, що у Express версії немає SQL Agent служби, за допомогою якої можна робити деякі завдання за розкладом. Натомість можна використовувати SQLCMD і стандартний Scheduled Tasks від Windows. Перше, що потрібно зробити, це написати скрипт, який створював би для нас необхідні бекапи. Для його створення можна скористатися MS Management Studio (її теж можна скачати для Express версії) і на вікні створення бекапа натиснути не OK, а "Script Actions to ...".

Створення резервних копій за розкладом в ms sql express, publishercrm

Я ж використовую зазвичай в таких завданнях наступний скрипт:

Цей скрипт створює бекап з ім'ям файлу db_backup_YYYYDDMM.bak де YYYYDDMM - це поточна дата. Дата в імені файлу дозволить нам створювати кожен день бекап в новому файлі. Запустіть і перевірте що бекап дійсно створюється такий який вам і потрібен. Цей скрипт зберігаємо в який-небудь папці під ім'ям schedule.sql. припустимо c: \ sheduled tasks \. У цій же папці створимо виконуваний файл backup.bat. наступного змісту:

Де міняємо SERVERNAME - ім'я сервера, UserName - ім'я користувача, Password - пароль користувача, schedule.sql - ім'я збереженого скрипта. Друга і третя рядок батника архівує бекап в zip файл і видаляє сам файл бекапа. Для того щоб працювала архівація необхідно встановити архіватор 7z і прописати повні шляху до виконуваного файлу 7z.exe або покласти 7z.exe і 7z.dll в ту ж папку, де розташовуються скрипти. Тепер можемо запустити виконуваний файл backup.bat і перевірити чи пропрацює він так як потрібно. Останній крок це записати schedule в завдання windows. Запускаємо Task Scheduler з меню Пуск, або набираємо в командному рядку taskschd.msc. У різних версіях Windows це виглядає по різному, та й інформацію про те як зробити завдання можна прочитати в допомоги Windows. Основне - це запускати завдання від імені користувача з достатніми правами на використовувані папки. За допомогою таких дій можна так само запрограмувати і будь-які інші завдання. В скрипті schedule.sql можна перед бекап викликати будь-які необхідні процедури, може переіндексування або стиснення бази даних.

Приклад готового набору файлів для автоматичного бекапа: Готовий номер файлів з програмою 7z