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

Откуда: Київ
Сообщений: 10428
есть задание, которое делает по расписанию бэкапы базы.

Как можно из этого или другого задания копировать этот бэкап на фтп сервер?
7 ноя 06, 10:51    [3361749]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Воспользуйтесь любым ftp клиентом. Например, виндосовским ftp.exe
7 ноя 06, 10:53    [3361761]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Воспользуйтесь любым ftp клиентом. Например, виндосовским ftp.exe


т.е. использовать его в джобе?
7 ноя 06, 10:55    [3361781]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
А почему бы нет? xp_cmdshell...
7 ноя 06, 10:57    [3361800]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
maverik
Member

Откуда:
Сообщений: 7
я в джоб запихнул архивацию бакапов rar-ом
и мувинг на удалённый сервер
7 ноя 06, 11:28    [3362067]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
maverik
Member

Откуда:
Сообщений: 7
я в джоб запихнул архивацию бакапов rar-ом
и мувинг на удалённый сервер
7 ноя 06, 11:31    [3362080]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
maverik
я в джоб запихнул архивацию бакапов rar-ом
и мувинг на удалённый сервер


то, что надо!

а текстом не поделитесь?...
7 ноя 06, 11:34    [3362100]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Glory
Member

Откуда:
Сообщений: 104751
maverik
я в джоб запихнул архивацию бакапов rar-ом
и мувинг на удалённый сервер

а rar уже и через ftp работает ??
7 ноя 06, 11:58    [3362317]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Ден
Member

Откуда: Москва
Сообщений: 2079
Glory
maverik
я в джоб запихнул архивацию бакапов rar-ом
и мувинг на удалённый сервер

а rar уже и через ftp работает ??

чтото я не догнал -)) Простой батничек запускается в job и все. в этом батничке сначала бэкап, потом архивация, а потом отсылка через фтп -))
7 ноя 06, 12:10    [3362413]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Gerros
Member

Откуда: Харьков
Сообщений: 516
def1983
А почему бы нет? xp_cmdshell...
Зачем такие сложности ?
Сделать степ "Operating System Command (CmdExec)" - религия не позволяет ?
7 ноя 06, 12:40    [3362597]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Gerros
def1983
А почему бы нет? xp_cmdshell...
Зачем такие сложности ?
Сделать степ "Operating System Command (CmdExec)" - религия не позволяет ?

Спасибо за Ваше замечание. Действительно, проще так, если строка не формируется динамически...
7 ноя 06, 12:44    [3362617]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
maverik
Member

Откуда:
Сообщений: 7
Step 2
CmdExec
E:\SQL-BackUp\rar m -ilog1log.txt E:\SQL-BackUp\SQL_Data E:\SQL-BackUp\*.BAK -agYYYYMMDD -t

ну и сторочку для фтп добавь.
8 ноя 06, 15:14    [3369342]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: как db backup скопировать на ФТП?  [new]
Артур Олегович
Member

Откуда:
Сообщений: 2
Была у меня проблема на работе, надо было бэкап базы данных на Microsoft SQL Server 2005 делать по рассписанию, сжимать как можно сильнее, ставить пароль на архив для защиты и закачивать на удаленный FTP-сервер используя логин и пароль. Ну думаю тут всё понятно для чего и зачем. Долго ходил по просторам интернета, ничего дельного не нашел. Через неделю родилась мысль сделать всё это при помощи Transact-SQL, т.к. в *.bat - файле отчетливо видно пароли, и сохранить это всё в СУБД, например в базе данных "master". Далее узнал о процедуре xp_cmdshell и как её включить:

-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO


Ну а остальное уже додумывал на ходу.

USE [master]
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[backup_compress_db]
@database_name varchar(32),
@backup_path varchar(255),
@archive_path varchar(255),
@archive_password varchar(16),
@ftp_host varchar(16),
@ftp_user varchar(16),
@ftp_password varchar(16)
AS
BEGIN
DECLARE
@filename varchar(255),
@zipfile varchar(255),
@date varchar(10),
@cmd varchar(255),
@bak_name varchar(128)
SET @date = replace(convert(varchar,getdate(),105),'-','_')
SET @filename=@backup_path+@database_name+'_'+@date+'.bak'
SET @zipfile=@archive_path+@database_name+'_'+@date+'.7z'
SET @bak_name=@database_name+'-Full Database Backup'
BACKUP DATABASE @database_name TO DISK = @filename WITH NOFORMAT, NOINIT, NAME = @bak_name, SKIP, NOREWIND, NOUNLOAD, STATS = 10
-- http://downloads.sourceforge.net/sevenzip/7z920.msi
SET @cmd='"C:\Program Files\7-Zip\7z.exe" a -p'+@archive_password+' -t7z '+@zipfile+' '+@filename
exec xp_cmdshell @cmd
-- 'ftp://ftp.ncftp.com/ncftp/binaries/Setup NcFTP 3.2.5.msi'
SET @cmd='ncFTPPut.exe -u '+@ftp_user+' -p '+@ftp_password+' '+@ftp_host+' / '+@zipfile
exec xp_cmdshell @cmd
-- forfiles you can get from Microsoft Windows Server 2003 in %systemroot%\system32
SET @cmd='FORFILES /p '+@archive_path+' /s /m *.7z /d -3 /c "CMD /c del /Q @FILE" '
exec xp_cmdshell @cmd
END
29 ноя 11, 14:06    [11677774]     Ответить | Цитировать Сообщить модератору
 Re: как db backup скопировать на ФТП?  [new]
Артур Олегович
Member

Откуда:
Сообщений: 2
Артур Олегович
Была у меня проблема на работе, надо было бэкап базы данных на Microsoft SQL Server 2005 делать по рассписанию, сжимать как можно сильнее, ставить пароль на архив для защиты и закачивать на удаленный FTP-сервер используя логин и пароль. Ну думаю тут всё понятно для чего и зачем. Долго ходил по просторам интернета, ничего дельного не нашел. Через неделю родилась мысль сделать всё это при помощи Transact-SQL, т.к. в *.bat - файле отчетливо видно пароли, и сохранить это всё в СУБД, например в базе данных "master". Далее узнал о процедуре xp_cmdshell и как её включить:

-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO


Ну а остальное уже додумывал на ходу.

USE [master]
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[backup_compress_db]
@database_name varchar(32),
@backup_path varchar(255),
@archive_path varchar(255),
@archive_password varchar(16),
@ftp_host varchar(16),
@ftp_user varchar(16),
@ftp_password varchar(16)
AS
BEGIN
DECLARE
@filename varchar(255),
@zipfile varchar(255),
@date varchar(10),
@cmd varchar(255),
@bak_name varchar(128)
SET @date = replace(convert(varchar,getdate(),105),'-','_')
SET @filename=@backup_path+@database_name+'_'+@date+'.bak'
SET @zipfile=@archive_path+@database_name+'_'+@date+'.7z'
SET @bak_name=@database_name+'-Full Database Backup'
BACKUP DATABASE @database_name TO DISK = @filename WITH NOFORMAT, NOINIT, NAME = @bak_name, SKIP, NOREWIND, NOUNLOAD, STATS = 10
-- http://downloads.sourceforge.net/sevenzip/7z920.msi
SET @cmd='"C:\Program Files\7-Zip\7z.exe" a -p'+@archive_password+' -t7z '+@zipfile+' '+@filename
exec xp_cmdshell @cmd
-- 'ftp://ftp.ncftp.com/ncftp/binaries/Setup NcFTP 3.2.5.msi'
SET @cmd='ncFTPPut.exe -u '+@ftp_user+' -p '+@ftp_password+' '+@ftp_host+' / '+@zipfile
exec xp_cmdshell @cmd
-- forfiles you can get from Microsoft Windows Server 2003 in %systemroot%\system32
SET @cmd='FORFILES /p '+@archive_path+' /s /m *.7z /d -3 /c "CMD /c del /Q @FILE" '
exec xp_cmdshell @cmd
END


Далее в задание по рассписанию вставляем сценарий на T-SQL, пример:
USE master
EXEC [dbo].[backup_compress_db]
@database_name = N'ИмяБазыДанных',
@backup_path = N'C:\backup\bak\',
@archive_path = N'C:\backup\7z\',
@archive_password = N'0123456789',
@ftp_host = N'192.168.0.1',
@ftp_user = N'backup',
@ftp_password = N'0123456789'
29 ноя 11, 14:44    [11678132]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить