none
Автобэкапы в SQLEXPRESS 2008 с помощью SQLCMD и планировщика без перезаписи предыдущего бэкапа RRS feed

  • Вопрос

  • Делаю батник SQLCMD -S local\SQLEXPRESS -E -Q "BACKUP DATABASE BASE TO DISK = 'D:\BACKUP\TEST.bak' WITH INIT, NOFORMAT, SKIP, NOUNLOAD", добавляю его в планировщик. Бэкапы работают без проблем. Нужно модифицировать батник, чтобы создаваемые раз в сутки (например) бэкапы не перетирали друг друга, а в идеале в их название в конце добавлялась дата и время бэкапа (имитировать SQL AGENT). На крайний случай просто нужно в конце каждого бэкапа добавлять порядковый номер (TEST1, TEST2, ...)

    Спасибо за помощь !

    4 ноября 2014 г. 17:37

Ответы

  • добавь переменную в батник, примеров масса, удалить только лишнее.. и D:\BACKUP\TEST.bak изменить на D:\BACKUP\TEST_%datetimef%.bak

    set hour=%time:~0,2%
    if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
    echo hour=%hour%
    set min=%time:~3,2%
    if "%min:~0,1%" == " " set min=0%min:~1,1%
    echo min=%min%
    set secs=%time:~6,2%
    if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
    echo secs=%secs%
    
    set year=%date:~-4%
    echo year=%year%
    set month=%date:~3,2%
    if "%month:~0,1%" == " " set month=0%month:~1,1%
    echo month=%month%
    set day=%date:~0,2%
    if "%day:~0,1%" == " " set day=0%day:~1,1%
    echo day=%day%
    
    set datetimef=%year%%month%%day%_%hour%%min%%secs%
    
    echo datetimef=%datetimef%


    • Изменено KeyBi 4 ноября 2014 г. 18:06
    • Помечено в качестве ответа Shevelur 4 ноября 2014 г. 20:03
    4 ноября 2014 г. 17:57