Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Бэкап SQL2005 дата+время, оповещение по почте (http://forum.oszone.net/showthread.php?t=201778)

bibo.bara 12-03-2011 07:49 1632994

Бэкап SQL2005 дата+время, оповещение по почте
 
Добрый день,

При создание резервной копии как добавить к имени файлу дату+ время например DB_120311_1600.bak.. Мучает вопрос о оповещение по почте о результатах выполнения того или иного джоба, об успешном, так и об ошибке. Подскажите плз. как настроить правильно оповещение на почту.

BlackEric 13-03-2011 01:23 1633561

Читайте доку по Database Mail.

Для начала SQL SERVER – 2008 – Configure Database Mail – Send Email From SQL Database

bibo.bara 13-03-2011 08:38 1633606

Не подскажите как добавить при резервном копирование дату+время к файлу

Busla 13-03-2011 13:42 1633800

bibo.bara, если настраивать резервное копирование типовым образом (через планы обслуживания), то резервные копии и так создаются с датой-временем в названии.

Скорее всего, в вашем случае достаточно открыть задания агента - там будет скрипт вашего бекапа - обычный sql-скрипт - добавьте время-дату (и прочее) к имени.

p.s. От греха подальше меняю расширение на что-то другое типа .dbk, .full, .diff, потому как .bak традиционно используется как некий специализированный аналог .tmp - какой-нибудь дурак запустит чистильщик и угрохает все резервные копии БД. Да и самому как-то проще одно от другого отделять.

bibo.bara 15-03-2011 05:33 1635098

Не подскажите как правильно настроить оповещение о выполнении джобов SQL2005 на почту . Заранее спасибо.

rybinpv 16-03-2011 14:54 1636236

1. Создайте оператора SQL Server Agent - Operators
2. Настройте почтовую систему Management - Database Mail
3. В свойcтвах SQL Server Agent - Alert System - Mail session укажите почтовую систему
4. В свойствах джоба - Notifications - укажите способы уведомлений

s.wegner 17-03-2011 17:12 1637158

Все запланированные операции, желательно выполнять через "SQL Server Agent". По умолчанию данный сервис в системе отключен, вам следует убедиться что он стартует вместе с системой, а не только при запуске "MS SQL Server Management Studio".

Создайте задание с указанием выполнения скрипта.

Например у меня выполняется два задания:
1. выполняет регулярное резервное копирование в установленное шедулером время.
Код:

DECLARE @DISKSTR varchar (255)

SET @DISKSTR = 'E:\DBSD\Backup\regular\DBSD-FB '
+ replace(convert(char(19),getdate(),120),':','-') + '.bak'

BACKUP DATABASE [DBSD] TO DISK = @DISKSTR WITH NOFORMAT, INIT,
NAME = N'DBSD-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10,
CHECKSUM, CONTINUE_AFTER_ERROR
GO

на выходе у меня получатся файлы

Код:

File name                                                Size             
------------------------------------------------------    --------------- 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-14 08-00-00.bak        610,625,024 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-14 11-00-00.bak        611,673,600 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-14 14-00-01.bak        611,673,600 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-14 17-00-00.bak        615,867,904 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-14 20-00-00.bak        615,867,904 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-15 08-00-00.bak        615,867,904 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-15 11-00-01.bak        619,013,632 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-15 14-00-01.bak        621,110,784 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-15 17-00-01.bak        623,207,936 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-15 20-00-00.bak        631,596,544 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-16 08-00-00.bak        631,596,544 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-16 11-00-01.bak        634,742,272 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-16 14-00-00.bak        636,839,424 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-16 17-00-01.bak        638,936,576 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-16 20-00-00.bak        642,082,304 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-17 08-00-01.bak        646,276,608 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-17 11-00-00.bak        646,276,608 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-17 14-00-00.bak        647,325,184 
E:\DBSD\Backup\regular\DBSD-FB 2011-03-17 17-00-00.bak        647,333,376 

total files 19    total size  11,947,913,728


2. Это плановое резервное копирование. Делаю так:

Код:

DECLARE @DISKSTR varchar (255)

SET @DISKSTR = 'E:\DBSD\Backup\planning\DBSD-FB '
+ replace(convert(char(8),getdate(),112),':','-') + '.bak'

BACKUP DATABASE [DBSD] TO DISK = @DISKSTR WITH NOFORMAT, INIT,
NAME = N'DBSD-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10,
CHECKSUM, CONTINUE_AFTER_ERROR
GO

На выходе получаю

Код:

File name                                      Size             
--------------------------------------------    --------------- 
E:\DBSD\Backup\planning\DBSD-FB 20110301.bak        493,168,128 
E:\DBSD\Backup\planning\DBSD-FB 20110302.bak        498,411,008 
E:\DBSD\Backup\planning\DBSD-FB 20110303.bak        518,333,952 
E:\DBSD\Backup\planning\DBSD-FB 20110304.bak        535,119,360 
E:\DBSD\Backup\planning\DBSD-FB 20110305.bak        558,188,032 
E:\DBSD\Backup\planning\DBSD-FB 20110306.bak        563,430,912 
E:\DBSD\Backup\planning\DBSD-FB 20110307.bak        564,479,488 
E:\DBSD\Backup\planning\DBSD-FB 20110308.bak        568,673,792 
E:\DBSD\Backup\planning\DBSD-FB 20110309.bak        570,770,944 
E:\DBSD\Backup\planning\DBSD-FB 20110310.bak        579,159,552 
E:\DBSD\Backup\planning\DBSD-FB 20110311.bak        592,799,232 
E:\DBSD\Backup\planning\DBSD-FB 20110312.bak        595,944,960 
E:\DBSD\Backup\planning\DBSD-FB 20110313.bak        602,236,416 
E:\DBSD\Backup\planning\DBSD-FB 20110314.bak        607,479,296 
E:\DBSD\Backup\planning\DBSD-FB 20110315.bak        615,867,904 
E:\DBSD\Backup\planning\DBSD-FB 20110316.bak        631,596,544 
E:\DBSD\Backup\planning\DBSD-FB 20110317.bak        643,130,880 

total files 17    total size  9,738,790,400

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

clear-bk.cmd
Код:

@echo off
forfiles -p "e:\DBSD\Backup\planning" /M *.bak /C "cmd /c del /q/f @path" /d -30
forfiles -p "e:\DBSD\Backup\regular" /M *.bak /C "cmd /c del /q/f @path" /d -4

Удаляются файлы старше 30 дней и 4 соответственно.


Для того чтобы вам отправлялось уведомление по почте:
1. В MS SQL Server Management Studio перейдите в Object Explorer'e во вкладку Jobs.
2. Правой кнопкой мыши по созданному вами заданию, выберите Properties
3. Выберите Notifications и поставьте галочку напротив E-mail, в текстовом поле напишите свой почтовый адрес и в раскрывающемся списке выберите в каких случаях вас уведомлять.

rybinpv 17-03-2011 19:37 1637279

Цитата:

Цитата s.wegner
в текстовом поле напишите свой почтовый адрес »

В какое текстовое поле? Там нет текстового поля, там выбор оператора.


Время: 05:01.

Время: 05:01.
© OSzone.net 2001-