Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
BuKTaP Member Откуда: Сообщений: 132 |
Доброго времени суток. Суть такова. Если мульти джоб, который делает full-бэкапы всех БД, у которых стоит модель бэкапирования FULL. Step 1: DECLARE @DBName VARCHAR(64) DECLARE @RecoverModel INT DECLARE @cmd NVARCHAR(2048) -- Курсор по БД DECLARE DB_Curs CURSOR FOR SELECT d.name, d.recovery_model FROM sys.databases d WHERE (d.name NOT IN ('master','tempdb','model','msdb')) AND (d.recovery_model = 1) ORDER BY d.name OPEN DB_Curs FETCH NEXT FROM DB_Curs INTO @DBName, @RecoverModel WHILE @@FETCH_STATUS = 0 BEGIN IF @RecoverModel = 1 BEGIN -- SHRINK LOG SET @cmd = 'USE ' + @DBName + ' CHECKPOINT BACKUP LOG ' + @DBName + ' WITH TRUNCATE_ONLY CHECKPOINT DBCC SHRINKFILE(2, TRUNCATEONLY)' EXECUTE sp_executesql @cmd -- BACKUP EXEC Create_Backups @DBName, 'FULL' END -- SHRINK DB SET @cmd = 'DBCC SHRINKDATABASE (' + @DBName + ')' EXECUTE sp_executesql @cmd FETCH NEXT FROM DB_Curs INTO @DBName, @RecoverModel END -- Закрытие курсора CLOSE DB_Curs DEALLOCATE DB_Curs Step 2: Приложил бы картинку, но не работает что-то. В шаге на вкладке General: Type: Operating system (CmdExec) Run as: SQL Agent Service Account Command: FOR %f IN (E:\Data_Prot_Base\*FULL*.*) DO "C:\Program Files\7-Zip\7zG.exe" a -mx1 -m0=LZMA2 -mmt=on "%f.7z" "%f" Так вот на втором шаге job виснет и никаких действий не делает - ни архива, ни ошибки. Соль в том, что эта команда в консоли работает на Ура! Вариант, что архиватор не запускается из-за прав - отпадает, т.к. запуск job-а и команды из консоли выполняет один пользователь. Возможно ли такое, что опция LZMA2 мешает? Она предусматривает многопоточность архивации Или в чём может быть дело? |
22 фев 13, 16:49 [13968065] Ответить | Цитировать Сообщить модератору |
BuKTaP Member Откуда: Сообщений: 132 |
поправка: *** есТЬ мульти джоб, который ....... |
22 фев 13, 16:51 [13968083] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34728 Блог |
BuKTaP, агент под каким пользователем работает? |
22 фев 13, 16:52 [13968088] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Что-то мало шринков в джобе, надо еще. Они же такие классные. |
22 фев 13, 16:53 [13968095] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
И полная модель восстановления я смотрю по делу выбрана. |
22 фев 13, 16:54 [13968099] Ответить | Цитировать Сообщить модератору |
locky Member Откуда: Харьков, Украина Сообщений: 62034 |
BuKTaP, м.б. архиватор ждёт ввода от юзера? Нет там случайно опции типа "отвечать да на все запросы"? |
22 фев 13, 16:57 [13968116] Ответить | Цитировать Сообщить модератору |
BuKTaP Member Откуда: Сообщений: 132 |
Критик: пользователь является доменным администратором. Гавриленко Сергей Алексеевич: Если обратите внимание, то заметите, что там два разных шринка - для лога и для базы. Помимо этого джоба есть ещё и другие, которые делают не full-бэкапы, а дифферинциальные бэкапы и бэкапы лога. Во всех используется одна и таже процедура Create_Backups, в которую передаётся параметр, указывающий на тип бэкапа, который будет создаваться. Да и чего про это заговорили? С этой частю проблем нет и она была приведена для полноты картины. locky: такая опция есть в RAR, здесь нету. For All: Опытный путём установлено, что зависание происходит действительно из-за опции -m0=LZMA2 При указании опции -m0=LZMA, архивирование идёт поочерёдно, как положено. Почему же -m0=LZMA2 не работает? :( |
22 фев 13, 17:13 [13968177] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
|
||||
22 фев 13, 17:25 [13968237] Ответить | Цитировать Сообщить модератору |
Гость333 Member Откуда: Сообщений: 3683 |
Формально проблем нет, а на уровне базы это сплошное "боль и страдание". Фрагментацию индексов проверяете? Какой-нибудь другой джоб потом самоотверженно борется с оной фрагментацией? |
||
22 фев 13, 17:27 [13968247] Ответить | Цитировать Сообщить модератору |
BuKTaP Member Откуда: Сообщений: 132 |
Товарищи, сейчас для меня критичен вопрос архивирования, а не бэкапирования, т.к. оно работает нормально. Помогите сначала с насущным вопросом, а потом уже будем разводить полемику и я с радостью выслушаю всех желающих |
22 фев 13, 17:30 [13968266] Ответить | Цитировать Сообщить модератору |
Гость333 Member Откуда: Сообщений: 3683 |
BuKTaP, Непонятно, почему вы запускаете программу 7zG.exe, которая, случись какая ошибка, выдаёт диалоговое окно Windows. Понятно, что SQL Server Agent не сможет ничего нажать в этом окне. Запускайте программу 7z.exe и перенаправляйте её вывод вместо консоли в какой-нибудь файл. Сможете тогда прочитать текст ошибки. |
22 фев 13, 17:47 [13968350] Ответить | Цитировать Сообщить модератору |
BuKTaP Member Откуда: Сообщений: 132 |
Выбран 7zG, а не 7z потому, что в нём есть опция многопоточности. |
22 фев 13, 18:38 [13968618] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
|
||
22 фев 13, 19:01 [13968747] Ответить | Цитировать Сообщить модератору |
BuKTaP Member Откуда: Сообщений: 132 |
Гавриленко Сергей Алексеевич, Написано, что МУЛЬТИ-джоб. На всех серверах, кроме одного, наблюдается такое поведение, а конфигурации одинаковы. Как может быть? Как может
|
||||
25 фев 13, 14:37 [13976905] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74925 |
Результат SELECT @@versionможно увидеть? |
25 фев 13, 15:02 [13977175] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
|
||||||
25 фев 13, 16:11 [13977801] Ответить | Цитировать Сообщить модератору |
sqlash Member Откуда: Сообщений: 12 |
Здравствуйте, Извините, если не в тему... Есть командный файл запускаемый по расписанию для бекап-а базы: ---------------------------------------------------------------------------------------------------------------------------- sqlcmd -S Имя сервера -E -Q "declare @s varchar(255) set @s='путь к базе\base_' + convert(varchar(1), datepart(dw, getdate())) + '.bak' backup database base to disk = @s with init, noformat, skip, nounload" ---------------------------------------------------------------------------------------------------------------------------- Что и куда тут нужно добавить, чтоб автоматом еще и сразу архивировал полученный бекап "base.bak" Т.е. архивировал в "base.zip", а "base.bak" удалял после. |
26 сен 13, 16:22 [14888491] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74925 |
sqlash, Результат SELECT @@versionпокажите. |
26 сен 13, 16:24 [14888513] Ответить | Цитировать Сообщить модератору |
sqlash Member Откуда: Сообщений: 12 |
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (Intel X86) Jun 28 2012 08:42:37 Copyright (c) Microsoft Corporation Express Edition with Advanced Services on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) |
26 сен 13, 16:33 [14888580] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74925 |
sqlash, В данной редакции не поддерживается сжатие бэкапов. За параметрами командной строки архиватора лучше обращаться на соответствующий форум или к документации по нему. Хотя пример вызова есть и в стартовом посте. |
26 сен 13, 16:37 [14888618] Ответить | Цитировать Сообщить модератору |
sqlash Member Откуда: Сообщений: 12 |
Ок, спасибо. |
26 сен 13, 16:39 [14888643] Ответить | Цитировать Сообщить модератору |
zxc1257 Member Откуда: Сообщений: 71 |
хм, а зачем столько чекпоинтов насовали? при full модели восстановления разве не так: VLF's с активными транзакциями помечатся Active, с неактивными не забэкапленными Recoverable, остальные Reusable,Unused. После каждого бэкапа transaction log'a VLF's в состоянии из состояния Recoverable. Все забэкапленные VLF's при ближайшем checkpoint'e переходят в Reusable. Разве есть смысл в truncate? |
||
26 сен 13, 17:10 [14888865] Ответить | Цитировать Сообщить модератору |
zxc1257 Member Откуда: Сообщений: 71 |
Автор, вам, похоже надо Simple с таким подходом к резервированию. По-моему в такой модели. Поток, который запускается по checkpoint'у не будет смотреть забэкаплены или нет VLF в состоянии Recoverable. Все VLF's, что Recoverable с LSN меньше LSN чекпоинта будет переведено в состояние Reusable. (truncate) Я больше программист. Не админ. Может что-то и подзабыл. |
26 сен 13, 17:19 [14888921] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
zxc1257, тот "автор" в феврале писал. сейчас тему поднял другой товарищ с вопросом по архивации. а по поводу лабудищи в скрипте: в феврале же господин Гавриленко откомментировал:
|
||
26 сен 13, 19:01 [14889392] Ответить | Цитировать Сообщить модератору |
zxc1257 Member Откуда: Сообщений: 71 |
o-o, тю, я с прожогу в тему заскочил, даже дату не глянул. Гавриленко хорошо автора подколол. |
26 сен 13, 19:13 [14889425] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |