(Возврат на основную страницу)

 

Содержание номера за Июнь 2013 год

SQL Server

Июнь 2013 06 (36)

 

  1. Отправка уведомления SQL в приложение C# с помощью службы Service Broker

  2. Предотвращение переполнения диска от прироста БД

  3. Отображение БД, для которых не выполнялось резервное копирование за последние Х дней

  4. Восстановление группы БД на новый сервер с новыми путями к файлам

  5. Генерация скриптов для всех индексов сервера


Отправка уведомления SQL в приложение C# с помощью службы Service Broker
Соурабх Агарвал (Sourabh Agarwal)

В отклике на одно из моих прежних сообщений, посвященных системе CDC, меня спросили: не можем ли мы отправлять CDC-уведомления в приложение, написанное на языке C#. Нижеследующее сообщение – попытка ответить на заданный вопрос. В настоящем сообщении речь идет не только об отправке CDC-уведомлений, но дается общее руководство, как можно задействовать службу Service Broker, чтобы посылать уведомления во внешнее приложение.
 


Предотвращение переполнения диска от прироста БД
Госало Молез (Gonzalo Moles)
 

Моя процедура поможет вам определить, когда заполнение БД составляет свыше указанного параметра @percent И дискового пространства осталось менее чем @M_free_high ИЛИ свободного места на диске осталось менее чем @M_free_low
Например: EXEC msdb.dbo.[get_space_free] 2000, 15000, 80
Это означает 'Получить информацию о всех БД, заполненных на 80% у которых осталось менее 15000 Mb (15 Gb) свободного пространства ИЛИ о логических томах, на которых осталось менее чем 2000 Mb (2 Gb) свободного места'

Это помогает в раннем предупреждении переполнения диска при росте базы данных.
 


Отображение БД, для которых не выполнялось резервное копирование за последние Х дней
Гонсало Молез (Gonzalo Moles)
 

Предлагаемый скрипт позволяет найти БД, которые не имеют резервной копии за последние Х дней. Кроме того, отображаются БД, которые вообще ни разу не копировались.
Процедура вызывается так:
EXEC msdb.dbo.get_backup_info -X
где X - число дней, на котореы нужно взглянуть назад. Если передать 0, будет выведена вся информация.
 


Восстановление группы БД на новый сервер с новыми путями к файлам
Стивен Уэбстер (Steven Webster)
 

Мы планируем перейти на новое оборудование и у нового сервера будет иная чем сейчас конфигурация дисков. На сервер размещено около 80 баз данных, поэтому мы решили подготовить скрипт, который проанализирует текущее состояние файлов резервных копий и построит команду перемещения файлов для всех БД сразу. Не могу сказать, что получился идеальный вариант, но нашу проблему он решает.
 


Генерация скриптов для всех индексов сервера
MyDoggieJessie
 

В нашей компании мы активно используем транзакционную репликацию. Часто, при наложении нового моментального снимка мы теряем (на подписчике) все некластерные индексы, которые создавались для облегчения отчетности. Я использовал доступную в интернете информацию и написал приведенный ниже код, помогающий заново создать индексы, которые были либо затерты при подъеме моментального снимка репликации, либо случайно изменены или удалены. К тому же хорошо знать, что где-то хранятся определения объектов БД, которыми можно воспользоваться!
Последний блок выполняет создание индексов либо на всем сервере, либо для указанной БД. Если что-то не получилось, выполняется уведомление посредством почты.
Первый блок создает таблицу для хранения определений индексов.
Второй блок создает задание SQL Agent. Вы можете либо вставить основной блок кода в текст шага задания, там где отмечено "INSERT CODE FROM ABOVE INTO THIS JOB STEP", или создайте хранимую процедуру и используйте ее.
Установите задание\процедуру на сервер и назначьте график исполнения.
Последний блок кода проходит по таблице, созданной в самом начале и автоматически создает индексы.


(Возврат на основную страницу)