Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Backup SQL  [new]
rentast
Member

Откуда:
Сообщений: 7
Добрый день, сразу оговорюсь что знаний в SQL нет, прошу помочь реализовать следующую схему:
бэкап базы по разделенный на 3 файла, с временем бэкапа в имени. Отдельно эти скрипты работают, а вот объединить их в один не получается:

Бэкап разделенный на 3 файла:
BACKUP DATABASE ut2015 TO DISK = 'e:\BACKUPSQL\ut2015_Split1.bak', DISK = 'e:\BACKUPSQL\ut2015_Split2.bak', DISK = 'e:\BACKUPSQL\ut2015_Split3.bak' WITH COMPRESSION

Бэкап с временем бэкапа в имени:
DECLARE @MyFileName varchar(1000)
SELECT @MyFileName = (SELECT ''e:\BACKUPSQL\ut2015_Split1_' + convert(varchar(500),GetDate(),112) + '.bak', )
BACKUP DATABASE ut2015 TO DISK=@MyFileName WITH COMPRESSION
если дописать сюда другие файлы, происходит ошибка синтаксиса, подозреваю что из-за того что аргумент у @MyFileName может быть только один.
28 июн 15, 11:06    [17824979]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Настройте Maintenence Plan, не мучайтесь.

По сабжу: или один declare на три файла оставьте, или вставьте межу вашими "дописываю сюда другий файлы" ключевое слово "go".
28 июн 15, 11:14    [17824985]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
rentast
Member

Откуда:
Сообщений: 7
Гавриленко Сергей Алексеевич, настроил Maintenence Plan, для других баз он работает, но эту базу надо разделить на файлы не больше 2Гб.

Так?
DECLARE @MyFileName varchar(1000)
SELECT @MyFileName = (SELECT ''e:\BACKUPSQL\ut2015_Split1_' + convert(varchar(500),GetDate(),112) + '.bak'
GO SELECT ''e:\BACKUPSQL\ut2015_Split2_' + convert(varchar(500),GetDate(),112) + '.bak'
GO SELECT ''e:\BACKUPSQL\ut2015_Split3_' + convert(varchar(500),GetDate(),112) + '.bak')
BACKUP DATABASE ut2015 TO DISK=@MyFileName WITH COMPRESSION
28 июн 15, 11:51    [17825033]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
rentast
но эту базу надо разделить на файлы не больше 2Гб.

Весь бэкап делится межлу устройствами пропорционально, а не по размерам

rentast
если дописать сюда другие файлы, происходит ошибка синтаксиса, подозреваю что из-за того что аргумент у @MyFileName может быть только один.

А сообщение об ошибке вы не пробовали прочитать ?
28 июн 15, 20:07    [17825926]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
rentast
Member

Откуда:
Сообщений: 7
Glory
rentast
но эту базу надо разделить на файлы не больше 2Гб.

Весь бэкап делится межлу устройствами пропорционально, а не по размерам

я не писал по 2 Гб, я расчитал для себя количество файлов.



Glory
А сообщение об ошибке вы не пробовали прочитать ?

Пробовал, например по варианту
DECLARE @MyFileName varchar(1000)
SELECT @MyFileName = (SELECT ''e:\BACKUPSQL\ut2015_Split1_' + convert(varchar(500),GetDate(),112) + '.bak' 
GO SELECT ''e:\BACKUPSQL\ut2015_Split2_' + convert(varchar(500),GetDate(),112) + '.bak'
GO SELECT ''e:\BACKUPSQL\ut2015_Split3_' + convert(varchar(500),GetDate(),112) + '.bak') 
BACKUP DATABASE ut2015 TO DISK=@MyFileName WITH COMPRESSION

выходит ошибка:
Message
Executed as user: WORKGROUP\система. Microsoft (R) SQL Server Execute Package Utility  Version 10.50.1600.1 for 64-bit  Copyright (C) Microsoft Corporation 2010. All rights reserved.    Started:  22:36:29  Progress: 2015-06-28 22:36:32.45     Source: {C8F20925-7D9E-401B-B76A-D0F511AFF529}      Executing query "DECLARE @Guid UNIQUEIDENTIFIER      EXECUTE msdb..sp...".: 100% complete  End Progress  Progress: 2015-06-28 22:36:32.73     Source: Maintenance Cleanup Task      Executing query "EXECUTE master.dbo.xp_delete_file 0,N'E:\BACKUPSQL...".: 100% complete  End Progress  Error: 2015-06-28 22:36:33.19     Code: 0xC002F210     Source: Execute T-SQL Statement Task Execute SQL Task     Description: Executing the query "" failed with the following error: "". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.  End Error  DTExec: The package execution returned DTSER_FAILURE (1).  Started:  22:36:29  Finished: 22:36:33  Elapsed:  4.275 seconds.  The package execution failed.  The step failed.

мне ничего не понятно, а вам?
28 июн 15, 22:50    [17826287]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
AnyKey45
Member

Откуда: Ekaterinburg-Moscow-EU
Сообщений: 219
rentast,

для примера, переделать думаю сможешь:

declare @sql_date varchar(max)='_'+convert(varchar(500),GetDate(),112)
declare @sql varchar(max)=
'BACKUP DATABASE [Northwind] TO
DISK = ''C:\Northwind_file1'+@sql_date+'.bak'',
DISK = ''D:\Northwind_file2'+@sql_date+'.bak'',
DISK = ''E:\Northwind_file3'+@sql_date+'.bak'',
DISK = ''F:\Northwind_file4'+@sql_date+'.bak''
WITH INIT , NOUNLOAD , NAME = ''Northwind backup'', NOSKIP , STATS = 10, NOFORMAT'
print @sql
--exec(@sql)
29 июн 15, 09:07    [17826862]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
rentast
мне ничего не понятно, а вам?

Мне интересно, а вы отдельно в окне запросов студии свой скрипт запускали ?
29 июн 15, 09:57    [17827007]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
rentast
Member

Откуда:
Сообщений: 7
AnyKey45, Я может не так что делаю? Поместил скрипт
declare @sql_date varchar(max)='_'+convert(varchar(500),GetDate(),112)
declare @sql varchar(max)=
'BACKUP DATABASE [ut2015] TO 
DISK = ''e:\BACKUPSQL\ut2015_Split1_'+@sql_date+'.bak'', 
DISK = ''e:\BACKUPSQL\ut2015_Split2_'+@sql_date+'.bak'', 
DISK = ''e:\BACKUPSQL\ut2015_Split3_'+@sql_date+'.bak'' 
WITH INIT , NOUNLOAD , NAME = ''Northwind backup'', NOSKIP , STATS = 10, NOFORMAT, COMPRESSION'
print @sql
--exec(@sql)

в секцию Execute T-SQL Statement Task

Картинка с другого сайта.

ошибок не возникает но база не бэкапится, в логах следующее:
Message
Executed as user: WORKGROUP\система. Microsoft (R) SQL Server Execute Package Utility Version 10.50.1600.1 for 64-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Started: 22:39:54 Progress: 2015-06-29 22:39:55.54 Source: {C8F20925-7D9E-401B-B76A-D0F511AFF529} Executing query "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp...".: 100% complete End Progress Progress: 2015-06-29 22:39:55.58 Source: Maintenance Cleanup Task Executing query "EXECUTE master.dbo.xp_delete_file 0,N'E:\BACKUPSQL...".: 100% complete End Progress Progress: 2015-06-29 22:39:55.61 Source: Execute T-SQL Statement Task Executing query "declare @sql_date varchar(max)='_'+convert(varchar...".: 100% complete End Progress Progress: 2015-06-29 22:39:58.61 Source: Back Up Database (Full) Executing query "BACKUP DATABASE [RMK] TO DISK = N'E:\BACKUPSQL\RM...".: 50% complete End Progress Progress: 2015-06-29 22:40:00.36 Source: Back Up Database (Full) Executing query "declare @backupSetId as int select @backupSetId =...".: 100% complete End Progress DTExec: The package execution returned DTSER_SUCCESS (0). Started: 22:39:54 Finished: 22:40:00 Elapsed: 5.445 seconds. The package executed successfully. The step succeeded.
29 июн 15, 22:48    [17830509]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
icprog
Member

Откуда:
Сообщений: 166
rentast,

Видимо нужно раскоментировать последнюю строку
29 июн 15, 23:10    [17830580]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
o-o
Guest
rentast,

а как вы определяете, что база не бэкапится?
вы не Northwind бэкапите, и не ut2015, а RMK, если что..
29 июн 15, 23:13    [17830596]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
o-o
Guest
динамика тут вообще зачем?
declare @sql_date varchar(100)='_'+convert(char(8),GetDate(),112);
declare @name1 varchar(400)= 'e:\BACKUPSQL\ut2015_Split1'+@sql_date+'.bak';
declare @name2 varchar(400)= 'e:\BACKUPSQL\ut2015_Split2'+@sql_date+'.bak';
declare @name3 varchar(400)= 'e:\BACKUPSQL\ut2015_Split3'+@sql_date+'.bak';
BACKUP DATABASE [ut2015] 
TO 
DISK = @name1, 
DISK = @name2,
DISK = @name3;
29 июн 15, 23:27    [17830632]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
rentast
ошибок не возникает но база не бэкапится,

Вот так даешь людям код, а они его бездумно запускают, даже не попробова понять, что это за код
30 июн 15, 09:37    [17831130]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
o-o
Guest
Glory
rentast
ошибок не возникает но база не бэкапится,

Вот так даешь людям код, а они его бездумно запускают, даже не попробова понять, что это за код

ну так он написал, что знаний нет, а ему дали код с комментарием.
(и что еще хуже -- права на сервер)
какие все безжалостные :)
30 июн 15, 09:45    [17831153]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
Glory
пропущено...

Вот так даешь людям код, а они его бездумно запускают, даже не попробова понять, что это за код

ну так он написал, что знаний нет, а ему дали код с комментарием.
(и что еще хуже -- права на сервер)
какие все безжалостные :)

Отсутствие знаний - индульгенция от разбора полученного кода ? Так надо понимать ?

Сообщение было отредактировано: 30 июн 15, 09:46
30 июн 15, 09:45    [17831156]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
o-o
Guest
и я про то же
Glory
o-o
пропущено...

ну так он написал, что знаний нет, а ему дали код с комментарием.
(и что еще хуже -- права на сервер)
какие все безжалостные :)

Я про пример с комментированным exec
30 июн 15, 09:46    [17831160]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
rentast
Member

Откуда:
Сообщений: 7
o-o
rentast,
а как вы определяете, что база не бэкапится?
вы не Northwind бэкапите, и не ut2015, а RMK, если что..

Не создавался файл, RMK это другая база из секции "Back Up Database (FULL)", скрипт поместил в "Execute T-SQL Statement Task" им бэкапится база которую нужно делить. Ваш скрипт сработал, подскажите ещё пожалуйста как сделать чтобы было дата и время, попробовал "CONVERT(VARCHAR(19), GETDATE(), 120)" из этой статьи, выходит ошибка
"Cannot open backup device 'e:\BACKUPSQL\ut2015_Split1_2015-06-30 21:04:27.bak'. Operating system error 123(Синтаксическая ошибка в имени файла, имени папки или метке тома.)
двоеточия чтоли в имени файла не нравятся?
30 июн 15, 21:39    [17835053]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
rentast
Member

Откуда:
Сообщений: 7
Glory
rentast
ошибок не возникает но база не бэкапится,

Вот так даешь людям код, а они его бездумно запускают, даже не попробова понять, что это за код

А от команды BACKUP можно что-то плохое ждать? Посмотрел ключи криминала не обнаружил...
30 июн 15, 21:46    [17835074]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
o-o
Guest
конечно не нравятся.
вы в след. раз не на форуме спрашивайте,
а в блокноте пробуйте файл с таким именем сохранить
или переименовать имеющийся.
не позволит -- значит, есть недопустимые символы.
исключайте подозрительное, пока винда не согласится с выбранным именем.

можно вот так позаменять двоеточия:
replace(CONVERT(VARCHAR(19), GETDATE(), 120), ':', '-')
30 июн 15, 21:53    [17835097]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
o-o
Guest
rentast
Glory
пропущено...

Вот так даешь людям код, а они его бездумно запускают, даже не попробова понять, что это за код

А от команды BACKUP можно что-то плохое ждать? Посмотрел ключи криминала не обнаружил...

вы там в коде слегка не заметили,
что "запускательная" часть закомментирована.
когда на объективе крышка, криминала тоже нет, но и фоток не будет, хоть занажимайся
30 июн 15, 21:56    [17835103]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
rentast
Member

Откуда:
Сообщений: 7
Всем спасибо за помощь!
1 июл 15, 07:13    [17835679]     Ответить | Цитировать Сообщить модератору
 Re: Backup SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
rentast
Glory
пропущено...

Вот так даешь людям код, а они его бездумно запускают, даже не попробова понять, что это за код

А от команды BACKUP можно что-то плохое ждать? Посмотрел ключи криминала не обнаружил...

Откуда вы знаете, что вообще делает предложенный вам скрипт ?
Если вы с удивлением вопрошаете, что "ошибок не возникает но база не бэкапится"
1 июл 15, 09:34    [17835929]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить