АвтоПредприятие АвтоКаталог АвтоЭкспертиза АвтоСалон НормыВремени АвтоПеревозки
Главная      |       Цены на программы      |      Купить Сейчас      |      Контакты
Программы для Автобизнеса
АвтоКаталог 44 (2017)
Нормы Времени SP5
Программа для автосервиса - АвтоПредприятие 10
Программа для Магазина запчастей
АвтоЭкспертиза
Прайс-лист
Заказать сейчас
Контакты
Демо версии

 Полезные ссылки

  Карта сайта

 

Бэкап баз MS SQL с помощью APBackup

Главная / Резервное копирование данных / Бэкап баз MS SQL с помощью APBackup

Сегодня мы рассмотрим примеры автоматизации бэкапа базы MS SQL с помощью APBackup.

При выполнении задания в APBackup есть возможность запускать внешние приложения до архивации и после. Кроме того, можно настроить задание, что бы вообще не выполнять архивацию а запускать только внешние программы (т.е. получим обычный старт приложения по расписанию). Это можно сделать, если установить опцию “Только запуск внешних приложений, без архивации”.

Рассмотрим для примера задание с архивацией.

Нам необходимо настроить задание что бы перед архивацией создался стандартный бэкап одной базы MS SQL в некоторой темповой директории и затем этот файл необходимо заархивировать и поместить в наше хранилище резервных копий.

Для этого создадим директорию для временных файлов, например C:SQLTMPBackup, она будет служить ИСТОЧНИКОМ для нашего задания. Кроме того, после архивации будем удалять временные бэкапы. Для этого установим опцию “Удалять файлы источника после архивации”:

Сохранение архива настраивается стандартным образом с применением формата даты и глубины, например. Можно для надежного хранения резервных копий настроить так же и дополнительные директории, например на другом сервере по сети или/и на закладке “Сохранение на FTP” настроить копирование так же на удаленный FTP сервер.

Возможно так же применять внешний архиватор или просто копировать файл источника без архивации, а так же копирование сразу на FTP без архивации. Это стандартные возможности APBackup и мы здесь не будем останавливаться на них подробно.
Теперь подробно разберемся, как же все таки осуществить бекап базы MS SQL с помощью внешнего приложения. Здесь нам поможет утилита, входящая в стандартную установку MS SQL – OSQL.EXE

Например, создание бэкапа базы msdb будет выглядеть так:
osql.exe -S<Имя сервера> -U<Имя пользователя> -P<Пароль> -Q "BACKUP DATABASE msdb TO DISK = 'c:msdb_data.bak' with skip,init"

Т.е. здесь за переключателем -Q идет команда Transact-SQL, которую надо выполнить. В данном случае это BACKUP DATABASE так же полезно выполнить команду BACKUP LOG например для усечения лог файла.

ВНИМАНИЕ: Если сервер расположен не на вашей машине то c:msdb_data.bak вы не обнаружите у себя. Т.к. это путь куда сервер будет сохранять данные, т.е. этот файл будет располагаться на сервере на диске C:. В принципе APBackup может забрать файл и с сервера, если сделать общую папку на сервере, или же MS SQL сервер может сохранить файл бэкапа на другой сервер, но для этого сервис MS SQL должен быть загружен с доменной учетной записью, а не localSystem (как по умолчанию).

Если физически вы запускаете OSQL там же, где установлен сервер, то -S можно не включать в командную строку, по умолчанию OSQL соединяется с локальным сервером.
Если на сервер используется Windows Trusted Authentication и у вашего доменного имени есть права на MSSQL на бэкап базы, то можно использовать следующий вызов:

osql.exe -S<Имя сервера> -E -Q "BACKUP DATABASE msdb TO DISK = 'c:msdb_data.bak' with skip,init"

Или без указания сервера если это локальный сервер:

osql.exe -E -Q "BACKUP DATABASE msdb TO DISK = 'c:msdb_data.bak' with skip,init"

Переключатель -E означает использование Trusted connection т.е. под вашим доменным именем вместо явного указания: -U<Имя пользователя> -P<Пароль>

Если вам необходимо сделать бэкап сразу нескольких баз, просто создаем файл скрипт (у себя на машине), например, C:mybackup.sql:

BACKUP DATABASE msdb TO DISK = 'c:msdb_data.bak' with skip,init;
BACKUP DATABASE master TO DISK = 'c:master_data.bak' with skip,init;
go

и выполняем команду:
osql.exe -S<Имя сервера> -E -i "C:mybackup.sql"
Или
osql.exe -S<Имя сервера> -U<Имя пользователя> -P<Пароль> -i "C:mybackup.sql"

Например
osql.exe -SSQLSERVER -Usa -P1111 -i "C:mybackup.sql"
(Не делайте таких паролей для sa :) )

Таким образом, мы сможем одним заданием в APBackup сделать бэкап сразу всех баз на MS SQL сервере. Получим в темповой директории, например 2 файла с бэкапами один файл – одна база.

Вот как выглядит пример настройки запуска создания архива базы MS SQL в APBackup

Здесь так же возможно отрегулировать параметры:

“Запустить в окне” если это HIDE то консольное окно в котором запуститься osql.exe будет не видимо. При SHOWNORMAL вы увидите консольное окно при запуске.

“Ждать завершения не более” – Если 0 то APBackup будет ждать бесконечно пока приложение не выполниться. Можно, например, поставить 60 минут. Если в течении 60 минут приложение не закроется APBackup перестанет ждать и продолжит выполнение задания. И если в директории источнике не обнаружиться файлов произойдет ошибка выполнения задания.

P.S. В документации к MS SQL 2008 рекомендуется использовать вместо osql новую утилиту sqlcmd т.к. osql будет исключена из будущих версий MS SQL. Новая утили имеет похожие ключи и позволяет таким же образом сделать резервную копию базы данных.

 

Возникли вопросы по программам для Автобизнеса ?

Свяжитесь с нами по телефону или отправьте Ваш вопрос.


на уровень выше  
 

 © 2006-2024 сделано в нинсис