Резервное копирование SQL базы в несколько мест #501852


#0 by mzelensky
Доброго времени суток! Собственно задача сейчас стоит такая: Имеется база 1С на SQL 2005, настроена ежедневное резервное копирование, а затем архивирование бэкапа. Архивация происходит в опеределенный каталог с дозаписью (т.е. выгрузки накапливаются, а не перезаписываются). Сейчас руководство хочет еще + к этому сделать так, чтобы последняя выгрузка сохрангялась паралельно куда-нибудь на флешку и обновлялась каждый день (т.е. на флешке всегда хранился 1 бекап самой последней выгрузки). ВНИМАНИЕ ВОПРОС: как это лучше организивать?!? Делать повторно еще один план резервирования в SQL не хочется - лишняя трата времени, есть идея либо написать свою маленькую программу (скажем на Делфяке) и запускать ее по расписанию, чтобы та определяла последнюю копию и опировала файлик куда нужно, либо производить тежде самые манипуляции, но из "cmd"...вот только как в этом случае определить последнюю копию (сравнить даты) я не знаю :( У кого какие еще варианты есть?
#1 by Maxus43
на флэшку? жесть. А если достанут? если воткнут 2 флэшки? если... А вобще, напиши програмку и не парься, имхо
#2 by mzelensky
Флешка для этого и будет предназначена...т.е. подразумевается,что она будет воткнута всегда!!! Имя у нее значит будет определено и изменяться не будет и я смогу нормально к нему обращаться!
#3 by mzelensky
короче говоря...если в кратце...делается на всякий случай...если НАЛОГОВАЯ НАГРЯНЕТ...
#4 by mzelensky
Подводный камень еще заключается в том, что иногда архивирование бэкапа происходит КРИВО...т.е. архив типа создается ,но он пустой :( возможно потом что архивация начинается раньше, чем заканчивается выгрузка...пока постарался просто сделать больший интервал времени между этими операциями...но в идеале это нужно проверять программно, перед копированием на флешку!
#5 by Шляпентох
Добавьте в job резервного копирования еще один шаг, который будет запускаться после окончания предыдущего (создания резервной копии) и будет запускать ваш скрипт..
#6 by Maxus43
Надо после архивирования сторонней программой как я понял. Так не прокатит...
#7 by mzelensky
архивирование происходит прогой WinRAR...она запускается из "bat" файла с указанием нужных параметров. А можно запустить этот "bat" файл прям из плана обслуживания в SQL ???
#8 by Maxus43
естественно можно
#9 by mzelensky
а как? я просто не вижу там такой задачи!
#10 by Шляпентох
смотрите в BOL exec xp_cmdshell, обратите внимание на "Учетная запись-посредник для процедуры xp_cmdshell"
#11 by mzelensky
вот нашел описание: Так все это нужно прописывать в задаче "Выполнение инструкции T-SQL" ?
#12 by Maxus43
Так точно
#13 by mzelensky
вот нашел пример команды: exec xp_cmdshell 'start /min D:at1.bat' Прокатит?
#14 by Maxus43
проверяй, зачем спрашивать то? на мисте нет твоего SQL с job-ами и батниками
#15 by mzelensky
да я по поводу синтаксиса...уже начал проверку!
#16 by mzelensky
Прописываю вот так: чет батник не пускается :(
#17 by Maxus43
Ты в читал вобще? Пример даже есть же... Т.е. Содержимое батника вместо 'dir *.exe' пихай
#18 by Шляпентох
А так: exec xp_cmdshell N'F:Зеленский est.bat'? С помощью sp_configure вы разрешили выполнение xp_cmdshell? По умолчанию оно выключено
#19 by mzelensky
вот только что разрешил :) уже нашел упоминание о том ,что он выключен по умолчанию!
#20 by mzelensky
ща ,если как в не прокатит ,то попробую просто тело bat-ника вставить!
#21 by Maxus43
да прокатит, просто по логике - зачем тебе внешние файлы, если можно встроить это в Джоб и не париться
#22 by mzelensky
...тоже верно!!! а что означает параметр "N" ? в ?
#23 by mzelensky
И еще вопрос...если мне нужно сделать ряд операций, то как параметр в exec xp_cmdshell N будет выглядеть??? НУ т.е. если я буду писать: exec xp_cmdshell N ' бла-бла                     бла-бла2
#24 by Шляпентох
Ну проверьте вы.. Делов-то.. N перед кавычкой означает, что в кавычках юникод, без нее в некоторых случаях могут неправильно обрабатываться символы, отличные от латинских
#25 by mzelensky
чет не прокатывает.. в батнике прописано: Если просто его запускаю, то папочка нормально создается. Создаю новый план обслуживаия, там создаю задачу "Выполнение инструкций Т-СКЛ" в инструкции пишу: выполняю план...пишит ,что все нормально выполнено, но ПАПКИ НЕТ :(
#26 by Шляпентох
Если просто выполнить exec xp_cmdshell 'F:Зеленский est.bat' - папка создастся? Если прописать в батнике mkdir "D:TEST" - создастся?
#27 by mzelensky
нашел ошибку!!!
#28 by Maxus43
Молодец! Возьми пряник с полки
#29 by mzelensky
я прописывал " mkdir "TEST" " расчитывая, что папка будет создаваться в том же каталоге, где лежит испоняемый файл...а папка создавалась в "Windowssystem32" :) спасибо за пряник!
#30 by mzelensky
А еще вопрос! Если я запускаю таким образом задачу, которая выполняется продолжительное время...а после этой задачи идет следующая, то как поведет себя SQL планировщие, он дождется завершения перволй задачи перед выполнением второй или нет?
#31 by Шляпентох
Разные job'ы выполняются независимо друг от друга, шаги job'ов последовательно
#32 by mzelensky
замечательно!!! СПАСИБО!!!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С