Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Изменить суффикс имени резервной копии .bak (http://forum.oszone.net/showthread.php?t=246008)

rudimko 02-11-2012 08:08 2017036

Изменить суффикс имени резервной копии .bak
 
Доброго времени суток, коллеги. Подскажите пожалуйста, каким образом в MS SQL Server 2008 можно сменить название (имя) делающихся резервных копий. А т.е.: сейчас по-умолчанию резервные копии получают имена вида base_backup_2012_09_30_220002_0554269.bak, а как сменить суффикс даты? Например на base_backup_20120930_220002_0554269.bak (т.е. необходимо убрать лишние символы)??? Заранее премного благодарен.

Gex55 20-11-2012 16:54 2029028

Надо менять скрипт бэкапа
Например вот так

Код:

DECLARE @dateString CHAR(12), @daySTR CHAR(2), @monthSTR CHAR(2), @hourSTR CHAR(2), @minSTR CHAR(2)
--month variable
IF (SELECT LEN(CAST(MONTH(GETDATE()) AS CHAR(2))))=2
  SET @monthSTR=CAST(MONTH(GETDATE()) AS CHAR(2))
ELSE
  SET @monthSTR= '0' + CAST(MONTH(GETDATE()) AS CHAR(2))
--day variable
IF (SELECT LEN(CAST(DAY(GETDATE()) AS CHAR(2))))=2
  SET @daySTR=CAST(DAY(GETDATE()) AS CHAR(2))
ELSE
  SET @daySTR='0' + CAST(DAY(GETDATE()) AS CHAR(2))
--hour variable
IF (SELECT LEN(DATEPART(hh, GETDATE())))=2
  SET @hourSTR=CAST(DATEPART(hh, GETDATE()) AS CHAR(2))
ELSE
  SET @hourSTR= '0' + CAST(DATEPART(hh, GETDATE()) AS CHAR(2))
--minute variable
IF (SELECT LEN(DATEPART(mi, GETDATE())))=2
  SET @minSTR=CAST(DATEPART(mi, GETDATE()) AS CHAR(2))
ELSE
  SET @minSTR= '0' + CAST(DATEPART(mi, GETDATE()) AS CHAR(2))
--name variable based on time stamp
SET @dateString=CAST(YEAR(GETDATE()) AS CHAR(4)) + @monthSTR + @daySTR + @hourSTR + @minSTR
--=================================================================
DECLARE @SQL VARCHAR(1000), @DBNAME VARCHAR(200), @CheckResult VARCHAR(200), @PDASERVER as varchar(20)
  SELECT @DBNAME = NAME FROM sys.databases WHERE name like '%Название базы%'
  SELECT @SQL = 'BACKUP DATABASE '+@DBNAME+' TO DISK = ''E:\Backup\'+@DBNAME+'_db_' + @dateString +'.bak'' WITH INIT'
  EXEC (@SQL)

Ессно вместо названия базы пишете свою базу и путь напишите свой, а с датой думаю поиграете как надо будет :)


Время: 19:16.

Время: 19:16.
© OSzone.net 2001-