Pull to refresh

Comments 15

Здравствуйте.
Не увидел в тексте: чем же предложенные простыни кода лучше штатных «Maintenance Plans»?
Там всё это же накликивается в GIU за 5 минут, а ещё можно уведомления прикрутить на почту.
Очень похоже на очередной велосипед на ещё один скрипт бэкапа базы. Без обид: по SQL куча материала, в т.ч. и на русском языке, да и принцип «бритвы Оккама» — это основа IT.

Дискуссии на эту тему были в предыдущей статье... а в целом мне нравится именно такое решение - простое, предсказуемое, легко мониторить и настраивать

Хмм, это уже «записная книжка» получается, на статью никак не тянет. Но если спрятать код под спойлер (что хорошо бы и сделать), и добавить в заголовок в начале «Ещё один ...» — тогда и вопросов не возникнет ))
Ещё совет, раз уж взялись собирать велосипеды: если меняете глобально параметры сервера из скрипта, делая вещи типа таких:
-- включим xp_cmdshell (нужно для удаления старых бэкапов)
EXEC sp_configure 'show advanced options', 1;  EXEC sp_configure 'xp_cmdshell', 1;  RECONFIGURE WITH OVERRIDE;
то хорошим стилем будет в конце «прибраться за собой» — вернуть эти параметры в исходное состояние. Не зря же они были в таком состоянии на момент запуска скрипта, правильно?
Показательно, что при более простой реализации через Планы обслуживания (название намекает, правда?) ничего этого ни пришлось бы делать, как и хардкодить переменные в скрипт. Это и имел в виду: ваше решение ни разу
  1. Не «более простое»: пользователю сначала нужно ручками «причесать скрипт», а для этого — минимум понять, что там накодировано, и зачем. И так — для каждой бэкапируемой базы. «Из коробки» ваш скрипт не работает;
  2. Не «более предсказуемое»: мы никогда не узнаем, что «что-то пошло не так», т.к. в скрипте нет никаких логов / алертов. Недоступно «захардкоженное» расположение бэкапа (не работает сеть)? Мимо. Не получилось удалить старую копию (нет прав)? Мимо. Целевой диск бэкапа полон (нет места)? Мимо. Никакой обработки ошибок в скрипте нет. Ну и непредсказуемое изменение глобальных параметров сервера не добавляет предсказуемости;
  3. Не «легко мониторить»: см. п. 2 выше. В плане мониторинга ваш скрипт сам по себе вообще ничего не может. Ну а внешними средствами его мониторинг ничем не отличается от мониторинга других скриптов и планов бэкапа;
  4. Не «легко настраивать»: см. п. 1 выше.
  5. Ну и от меня: не имеет никаких преимуществ перед штатным более простым решением, оправдывающих 4 пункта недостатов.

Вы по сути воспроизвели штатных функционал SQL Server в урезанном и упрощённом виде. Это может быть полезно для личного развития, но выкладывать на всеобщее обозрение — зачем?
А потом приходят админы и дико матерятся, продираясь через заросли подобных скриптов, в поисках причины — почему ничего не работает…

У меня работает и много где еще с теми или иными модификациями, не вижу проблемы, если вы желаете под себя сделать, делайте как удобно, это не целая статья а всего лишь продолжение предыдущей, совпало с моими потребностями и я продолжил.

Maintenance Plans не очень удобно поддерживать и тиражировать, когда у вас десятка два серверов и штук двести баз.
... а когда серверов - 200, а баз - 2000 - вообще мрак.

Ну это понятно…
Maintenance Plans — это решение для простого и быстрого выполнения типовой задачи, которой является бэкап баз данных.
В моём комментарии речь о том, что предлагаемые автором заметки скрипты не дают ничего сверх того, что может предложить штатный функционал. А ручной работы в итоге — больше: поправить каждый скрипт (т.к. в них всё захардкожено), создать джоб, настроить права и расписание… Через Maintenance Plans это делается быстрей и гибче. Кстати планы можно то же создавать скриптом, если мне не изменяет память…
Для массового обслуживание конечно надо применять соответствующие средства — либо какие-то проприетарные продукты, либо самому выстраивать схему. Я например через Powershell это всё делаю, но можно и другие средства юзать.
В целом суть моих постов — что ничего хоть сколько-нибудь нового в заметке нет: подобными скриптами забиты все форумы SQL-щиков, в том числе на русском: за 5 минут можно найти гораздо более универсальные и продвинутые варианты.

Один раз настроил задание агента и залил скриптом на все серверы. Зачем проприетарные продукты, здесь все прозрачно и вы можете под себя подстроить любой момент. Но еще раз повторю, каждому своё. Мне удобно, делюсь со всеми, знаю много людей, кто любит простые и удобные штатные средства

Ну поищите подобные скрипты по забитым форумам, они все либо не полноценны, либо не универсальны

для создания бэкапов "длительного хранения". Создаются с опцией ONLY_COPY и не участвуют в общей цепочке восстановления

Э-э-з, что простите? С какого перепугу Copy_Only предназначен для длительного хранения? Сами же пишете - "он не участвует в цепочке восстановления", т.е. фактически это "неофициальный бэкап". Обычно используется для развертывания базы где то на тестовом контуре, чтоб как раз не очищал транзакции и не висел в цепочке бэкапов. Хотя по правильному и на тестовый контур берется и накатывается обычный, нормальный Full бэкап с определенной периодичностью.

Кавычки видим же? Что в нем не официального? Просто флаг архивации не сбрасывается со страниц. У меня есть требования хранить 5 лет, я и храню таким способом длительные периоды, основной скрип делает ретеншены

Например я так копии "на момент окончания отчетного периода" храню.

Они должны храниться вечно, но при этом не подразумевается, что их когда-то развернут для восстановления оперативной операционной базы. Ну, в случае атомной войны разве что.

Они должны хранится согласно политике компании и да, они не для восстановления оперативной БД

Про политику я в курсе, в разных компаниях она разная, но присутствует.

Мой вопрос был конкретно, с чего взяли что именно COPY_ONLY предназначено для длительного хранения, и чем для этих целеей не подходит обычный фулл бэкап (сакжем на 31 или 01 число)? Пруф есть или просто Вы так считаете? Если последнее, то надо было так и писать что "для своего (фирмы) удобствая создаю для длительного хранения бэкапы COPY_ONLY", а не категоричное утверждение "для создания бэкапов "длительного хранения создаются с опцией ONLY_COPY"

А где категорично то? Я с самого начал пишу, как нравится так и кроите ) only_copy просто не сбрасывает со страниц бд метку... Такая же копия как и все другие, только в цепочке восстановления не фиксируется )

Sign up to leave a comment.

Articles