Скрипт автоматического бекапа базы данных Microsoft SQL Server 2005 с архивированием и копированием БД на другой сервер

скрипт для автоматического бекапа базы данных Microsoft-SQL-Server-2005

Для того, что бы сделать бекап базы данных SQL Server 2005 нужно выполнять такой скрипт

Сделаем бекап двух БД, которые есть, это doc  и mexp, создадим bat файл под названием back__.bat

set DIR_BACKUP=D:\Mega_backup\backupMSSQL_%date%\
set NAME_PC=server
md %DIR_BACKUP%
osql -S %NAME_PC% -E -Q “BACKUP DATABASE doc TO DISK = ‘%DIR_BACKUP%\doc.bak‘ with init”
md D:\Mega_backup\backupMSSQL_%date%
md \\10.0.0.200\sql\backupMSSQL_%date%
Echo End wait

set DIR_BACKUP=D:\Mega_backup\backupMSSQL_%date%\
set NAME_PC=server
md %DIR_BACKUP%
osql -S %NAME_PC% -E -Q “BACKUP DATABASE mexp TO DISK = ‘%DIR_BACKUP%\mexp.bak’ with init”
md D:\Mega_backup\backupMSSQL_%date%
md \\10.0.0.200\sql\backupMSSQL_%date%
Echo End wait

start winrar a \\10.0.0.200\sql\backupMSSQL_%date%\%date%.rar D:\Mega_backup\backupMSSQL_%date%\*.*

rem //Строчка внизу архивирует базы, которые мы создали скриптом

%NAME_PC% - переменная, которая содержит имя копьютера

osql -S %NAME_PC% -E -Q “BACKUP DATABASE mexp TO DISK = ‘%DIR_BACKUP%\mexp.bak’ with init” собственно скрипт запуска бекапирования БД mexp TO DISK = ‘%DIR_BACKUP%\mexp.bak

TO DISK = ‘%DIR_BACKUP%\mexp.bak сохраним на диск с таким названием в папку %DIR_BACKUP%

\\10.0.0.200\sql\backupMSSQL_%date% расшареная папка на другой машине, с правами доступа для пользователя, который выполняет скрипт бекапа, как правило это админский пароль и если машина находится в домене, то проблем не должно быть.

\\10.0.0.200\sql\backupMSSQL_%date%\%date%.rar – как назовем файл, в данном случае создастся файл с датой запуска и расширением *.rar

Сохраняем скрипт и добавляем его в планировщик заданий. Добавляем на выполнение на пол первого ночи

Планировщик заданий

Сначала мы бекапируем на локальный диск, а потом по сети архивируем в расшареную папку на другом компьютере.

Второй скрип делается для того, что бы зачистить локальные копии, то есть папки D:\Mega_backup\backupMSSQL_%date%\

del /Q D:\Mega_backup\backupMSSQL_%date%\
Ну запускаем его гораздо позже после запуска первого скрипта
/Q – соглашаться с удалением при запуске команды

Готовые скрипты можна взять здесь

Популярное




5 Comments

  1. Comments  bagouser   |  Среда, 06 Июль 2011 at 3:20

    Хотелось бы по лучше разобраться с этим скриптом,т.к. у меня не получается его сделать.

    [Ответить]

    avatar
  2. Comments  admin   |  Среда, 06 Июль 2011 at 6:46

    Все от слов “set DIR_BACKUP=D:\Meg…” и до “start winrar a \\10.0.0.200\sql\backupMSSQL_%date%\%date%.rar D:\Mega_backup\backupMSSQL_%date%\*.*” сохраняете в bat-файл и запускаете на сервере, красным выделены базы данных MSSQL

    Должен получиться архивный файл с базами данных

    [Ответить]

    avatar

    bagouser Reply:

    я переверстал Ваш код под себя и получилось вот что :

    set DIR_BACKUP=D:\SQL_backup\backup\ASP_%date%
    set NAME_PC=test
    md %DIR_BACKUP%
    “C:\Program Files\Microsoft SQL Server\90\Tools\Binn\OSQL.EXE” -S %NAME_PC% -E -Q “BACKUP DATABASE ASPnetKP TO DISK = ‘%DIR_BACKUP%\ASPnetKP.bak’ with init” > D:\\SQL_backup\backuplog.txt
    md D:\SQL_backup\backup\ASP_%date%
    md D:\SQL_backup\arhiv\ASP_arhiv_%date%

    “C:\Program Files\7-Zip\7z.exe” a D:\SQL_backup\arhiv\ASP_arhiv_%date%\ASP_arhiv_%date%.7z “D:\SQL_backup\backup\ASP_%date%\*.*” > D:\\SQL_backup\arhivlog.txt

    т.е. скрипт делает бэкап,архивирует с помощью 7zip и кидает куда нужно,причём ведет лог бэкапа и архивации. Теперь у меня стоит такая задача, нужно сделать имена файлов не просто ASP_%date% (date – дд.мм.гггг), а ASP_гггг.мм.дд_время. Не могу это реализовать,так как не хватает знаний. Ищу помощи. Жду ответа.

    [Ответить]

    avatar

    admin Reply:

    %TIME: =0%
    set now=%DATE: =0% %TIME: =0%

    for /f “tokens=1-7 delims=/-:., ” %%a in ( “%now%” ) do (
    set now=%%c%%b%%a_%%d%%e
    )

    start winrar a “D:\12\ASP_%now%.rar” “D:\12\*.*”

    В этом случае все записи в папке “D:\12\” будут помещены в архив “D:\12\ASP_20110707_1619.rar”
    Ну папки под себя настраивайте как угодно

    – %%a – день
    – %%b – месяц
    – %%c – год
    – %%d – часы
    – %%e – минуты
    – %%f – секунды
    – %%g – сотые

    Если помогло, то вопрос закрыт, как я считаю
    Обращайтесь. И не спрашивайте как это)

    [Ответить]

    avatar

    bagouser Reply:

    оперативненько, но я кстати тоже не скучао и всё таки довёл до ума этот батник и выглядит он теперь так:

    SET ASDF=”%date:~-4,4%.%date:~-7,2%.%date:~-10,2%_%time:~-11,2%.%time:~-8,2%.txt”
    set DATE=”%date:~-4,4%.%date:~-7,2%.%date:~-10,2%_%time:~-11,2%.%time:~-8,2%”

    md %dir_backup%

    set DIR_BACKUP=D:\SQL_BackUp\BackUp\
    set NAME_PC=test
    md %DIR_BACKUP%
    “C:\Program Files\Microsoft SQL Server\90\Tools\Binn\OSQL.EXE” -S %NAME_PC% -E -Q “BACKUP DATABASE ASPnetKP TO DISK = ‘%DIR_BACKUP%\ASPnetKP.bak’ with init” > D:\\SQL_BackUp\log_BackUp_%ASDF%
    md D:\SQL_BackUp\BackUp\
    md D:\SQL_BackUp\Arhiv\

    “C:\Program Files\7-Zip\7z.exe” a D:\SQL_BackUp\Arhiv\ASP_Arhiv_%DATE%.7z “D:\SQL_BackUp\BackUp\*.*” > D:\\SQL_BackUp\log_Arhiv_%ASDF%

    md C:\Arhiv_copy

    xcopy D:\SQL_BackUp\Arhiv\ASP_Arhiv_%DATE%.7z C:\Arhiv_copy

    del /f/q D:\SQL_BackUp\BackUp\*.bak

    Как я всё таки смог? очень просто, посещал кучу форумов и читал огромное количество соответствующей литературы. На многих сайтах и форумах есть готовые решения,но они не соответствуют моей полной задаче :) поэтому решил разобраться с этим и написать под себя универсальный,а главное понятный и простой bat – файл. Всё готово,всё работает! Тока еще в планах тут же добавить удаление бэкапов по условию (т.е. старых и не нужных),но сейчас пока не могу это сделать,да и времени не хватает. Если кто может помочь отпишитесь.

    avatar

Оставить комментарий




Добро пожаловать на сайт для системных администраторов и пользователей ПК. На сайте представлено множество статей по настройке компьютерного чуда и всего, что с этим связано. надеюсь, Вы останетесь с нами. Сайт создан с душой, для людей и единомышленников, сисадминов, компьютерщиков. Не проходите мимо, подписывайтесь на новости, оставляйте комментарии. Я верю в силу КОТЭ и ПИВА.
PR-CY.ru Траст. Анализ сайта admin-vestnik.ru