declare @BackupQuery nVarchar(600);
declare @DateStr nVarchar(100);
declare @FileName nVarchar(500);
declare @FilePath nVarchar(500);
declare @CmdStr nVarchar(500);
--Устанавливаем полный тип бекапирования
Код ALTER DATABASE inetshop_ezone SET RECOVERY FULL; --проверяем базу данных и по возможности восстанавливаем
Код DBCC CHECKDB ('inetshop_ezone') WITH NO_INFOMSGS, TABLERESULTS; --формируем имя файла бекапа по текущей дате и времени а также путь его сохранения
Код set @DateStr = REPLACE(REPLACE(REPLACE(CONVERT(varchar(100) , GetDate(), 20), '-', ''), ' ', '_'), ':', '');
set @FileName = 'iNETsHOP_ezone_' + @DateStr;
set @FilePath = 'D:\SQL\DATA\MSSQL\BACKUP\';
--полный бекап базы
Код set @BackupQuery = 'BACKUP DATABASE [iNETsHOP_ezone] TO DISK = N'''+ @FilePath + @FileName + '.bak''' + ' WITH INIT, NOUNLOAD, NAME = N''iNETsHOP backup'', NOFORMAT';
execute sp_executesql @BackupQuery;
--очистка журнала транзакций
Код set @BackupQuery = 'BACKUP LOG [iNETsHOP_ezone] WITH TRUNCATE_ONLY';
execute sp_executesql @BackupQuery;
--архивирование бекапа
Код set @CmdStr = 'C:\Progra~1\WinRAR\Rar mf -m5 -ep -dh -rr -ri5 "' + @FilePath + @FileName+'.rar" "'+ @FilePath + @FileName+'.bak"'
EXEC master..xp_cmdshell @CmdStr;
--копирование бекапа на диск D:\, при необходимости путь можно указать любой
Код set @CmdStr = 'COPY /B "' + @FilePath + @FileName+'.rar" "D:\BACKUPS\'+ @FileName+'.rar"'
EXEC master..xp_cmdshell @CmdStr;
set @CmdStr = 'DEL "' + @FilePath + @FileName+'.rar"'
EXEC master..xp_cmdshell @CmdStr;
Отредактировано SilVerStoRm: 07.05.2009, 08:58:17
|