Избавляемся от Microsoft SQL Server Log Shipping
У Microsoft непосредственно в GUI управления Sql-сервером встроена возможность передавать бекапы с одного сервера на другой для возможности горячего резервирования данных.
Система эта - тупейшая до предела. Вот предположим сервер завирусился в данных или админ ошибся - удалил важные данные и не заметил. Тупая микрософтовская система этот глюк бекапирует и восстанавливает на target-сервере. Конфигурируется эта система тоже тупее не придумаешь - если заведомо не знаешь, то интуитивно ни за что не угадаешь какие дисковые пути надо вбивать в формы в том или ином месте - по source-сервере или по target-серверу. Плюс надо разбираться под какой учеткой стартует SQL-агент - какие ему права нужны на все директории локального и удаленного сервера.
Кстати и работает микрософтовский глюк неверно. Главная галка "удалять устаревшие бекапы" (старше например семи дней) - ни хрена она у этих дурней не работает. В результате диски переполняются устаревшими бакапами и в один прекрасный день вы поймете что благодаря микрософтовским чудо-сервисам последний бекап у вас сделан год назад.
Словом, гимороя не оберешься при настройке микрософтовского глюка, а как упадет основной сервер - так не оберешся гимороя для вывода резервной базы из монопольного однопользовательского режима. А как выведешь - так поймешь что там просто сдублированы те самые испорченные данные с основного сервера. Ну если конечно сами эти данные из-за неработающей галки "удалять устаревшие бекапы" не окажутся вообще годичной давности.
Поэтому на этой страничке я хотел показать как можно сделать резервирование данных без микрософтовских изысков:
- более экономно по деньгам (не нужен второй SQL),
- более надежно и прозрачно (простыми BAT-файлами),
- функционально более продвинуто - с учетом сохранения версионности данных (например на глубину 10 дней назад).
Все начинается с того, что в конструкторе создается команда Backup database - которая в моем примере бекапирует базы в каталог R:\BAK. Базы у меня бекапируются в три приема - часть в два часа ночи, часть в три и часть четыре часа ночи.
После этого в пять часов ночи у меня запускается копирование бекапов на удаленный сервер. После бекапирования - папка для бекапов очищается:
Теперь осталось на удаленном сервере запустить мою популярную OpenSource Freeware программу - RemoveOldFile - утилита удаления устаревших файлов - и удалить устаревшие бекапы. BAT-фалом можно сохранять копии и в разные каталоги - такой вариант примера ниже справа. Моя утилита RemoveOldFile чистит устаревшие бекапы и из такой гирлянды каталогов.
Если вас интересует выполнение других административных задач на Microsoft SQL Server - почитайте например Настройка производительности SQL-сервера, если вас интересуют другие SQL-сервера - почитайте Используем PostgreSQL вместо MS SQL в проектах на NET и ASP.NET, Используем MySQL вместо MS SQL в проектах на ASP.NET.
|