Настройка резервного копирования MSSQL 2008 Express

автоматическое резервное копирование баз данных MSSQL Server 2008 Express.Итак Вы внедрили электронный документооборот, в качестве СУБД используется бесплатная версия SQL сервера от Microsoft, благо данная бесплатная редакция позволяет использовать размер базы данных до 10 гигабайт. Первая проблема, которая выходит на повестку дня это резервное копирование баз данных. Рассмотрим данную операцию на примере резервирования системной базы данных Master.
Вообще копирование базы происходит по образу и подобию Oracle, нам также придется писать SQL запрос и использовать командную строку. Итак, для резервного копирования мы будем использовать утилиту osql.exe, вызывая ее из командной строки cmd.exe.
При подключении к серверу нам придется указать его имя, экземпляр СУБД, имя пользователя и его пароль. Вот как это будет выглядеть:
c:\> osql.exe –S Workstation\sqlexpress –U sa –P password_of_sa
В данном случае
Workstation это имя сервера баз данных,

sqlexpress имя экземпляра MSSQL, данное значение задается при установке СУБД,

sa – учетная запись системного администратора баз данных, для ее использования необходимо, чтобы СУБД была установлена со смешанным режимом авторизации, то есть должны присутствовать авторизация Windows и авторизация Microsoft SQL Server.
password_of_sa пароль администратора sa
Если все указано правильно, то курсор изменит свой вид на:
1 > _
Резервное копирование баз данных MSSQL 2008 Server через командную строку.
Все, теперь можно вводить команды, написанные на языке Transact-SQL. Хотя в целях автоматизации процесса эти директивы можно записать в текстовой файл с расширением *.sql и подать на ввод утилиты osql. К примеру резервное копирование нашего серера будет выглядеть так:
c:\> osql.exe –S Workstation\sqlexpress –U sa –P password_of_sa –I c:\scripts\backup.sql
Теперь задание можно добавить в планировщик Windows и оно будет ежесуточно выполняться, создавая нам резервные копии базы данных. Остается только написать этот самый скрипт для копирования, в этом нам поможет , данное приложение предназначено для управления базами данных.
окно Microsoft SQL Server Management Studio
В левом окне со списком баз данных выберем необходимую, щелкнем правой кнопкой мыши, выбираем пункт меню «резервная копия», задаем необходимые параметры копирования, а затем в верхнем меню выбираем пункт «сценарий > записать действие в сценарий в новом окне запроса»
Запуск сценария резервного копирования баз данных MSSQL 2008
К примеру у меня получился такой скрипт:
BACKUP DATABASE [master] TO  DISK = N'c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup\master.bak' WITH NOFORMAT, INIT,  NAME = N'master-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'master' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'master' )
if @backupSetId is null begin raiserror(N'Ошибка верификации. Сведения о резервном копировании для базы данных "master" не найдены.', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N'c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup\master.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO

после этого данный сценарий следует поместить в файл c:\scripts\backup.sql, и система автоматически каждую ночь будет создавать копию базы данных в каталоге c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup, в дальнейшем данную папку можно для надежности копировать по сети на сервер с FreeBSD. То есть мы ежедневно будем иметь полную резервную копию базы данных за предыдущее число.
По образу и подобию настраиваются бекапы всех имеющихся у Вас баз данных. В заключение скажу, что базу данных Master нужно копировать, если вы создавали новых пользователей, меняли их пароли или вносили изменения в права доступа к базам данных. Если у Вас этого не происходило, то в ежедневном копировании БД Master не необходимости. А вот пользовательские базы данных нужно резервировать регулярно.  Вообще это зависит от плана резервного копирования, но об этом в следующий раз ;) Да, и напоследок напомню, что восстанавливать базу данных Master из резервной копии необходимо, запустив сервер MSSQL в однопользовательском режиме.

 

Комментарии  

 
0 #5 pavel_85 16.04.2013 10:45
Спасибо большое за помощь!!!
)))
Цитировать
 
 
0 #4 Сергей 29.05.2012 14:29
Речь идет об Express-версии.

Автору - спасибо!
Цитировать
 
 
+4 #3 PRiM 26.04.2012 14:14
Немного усовершенствова л. Позволяет задать число хранящися файлов (в примере 14)

sql.bat:
@echo off
setlocal ENABLEDELAYEDEX PANSION
rem Path to backup place.
set BackPath=D:\BackUp\SQL1C
rem Number of rotations days
set BDays=14
sqlcmd -S НАЗВАНИЕ_СЕРВЕР А -U ПОЛЬЗОВАТЕЛЬ -P ПАРОЛЬ -i backup.sql
del %BackPath%\Autosun-%BDays%.bak
for /L %%i in ( %BDays% ,-1,1 ) do (
Set /A Prev=%%i-1
ren "%BackPath%\Autosun-!Prev!.bak" Autosun-%%i.bak
)
ren "%BackPath%\Autosun.bak" Autosun-0.bak

backup.sql:
DECLARE @pathName NVARCHAR(512)
SET @pathName = 'D:\BackUp\SQL1C\Autosun.bak'
BACKUP DATABASE [Autosun] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'Autosun-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Цитировать
 
 
+5 #2 OAO 02.04.2012 10:54
Серебан, тут речь идет о бесплатной версии сервера SQLexpress. В ней нет такого планировщика.
Цитировать
 
 
-16 #1 серебан 21.03.2012 17:59
Автор, ты что курил? А в management studio открыть закладку управление не пробовал? Там даже мастер есть для настройки резервного копирования.
Цитировать
 

Добавить комментарий


Защитный код
Обновить