Страница 1 из 1

BACKUP MSSQL Server

Добавлено: 2009-10-20 11:46:51
BI_J
Добрый день уважаемые жители форума :)

Поделитесь опытом, кто как делает BACKUP этой чубо БД??.

Я приготовил простенький скрипт:

Код: Выделить всё

BACKUP DATABASE [test] TO  DISK = N'D:\!backup\MSSQL\test.bak' WITH NOFORMAT, NOINIT,  NAME = N'test-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
И запускаю его из батника

Код: Выделить всё

:: Путь к исполняемым файлам
SET PATH_BACKUP=Z:\backup_SQL
SET PATH_SQL=C:\Program Files\Microsoft SQL Server\90\Tools\Binn

:: Указываем путь для бэкапа
SET BACKUP_DISK=d:
SET BACKUP_DIR="D:\!backup\MSSQL\%date:~-7%"
SET DIRNAME=%date:~-7%

:: Проверим путь назначения архива
%BACKUP_DISK%
if not exist \!backup md \!backup
if not exist \!backup\MSSQL md \!backup\MSSQL
if not exist \!backup\MSSQL\%DIRNAME% md \!backup\MSSQL\%DIRNAME%

:: Выполняем БЭКАП
"%PATH_SQL%\SQLCMD" -S COMP\SQLEXPRESS -i "%PATH_BACKUP%\backup.sql"

cd "%BACKUP_DISK%\!backup\MSSQL"
"c:\Program Files\WINRAR\winrar" a -agYYYY.MM.DD_hhmmss -m1 "%BACKUP_DIR%\test_.rar" "test.bak"
del "*.bak"
Единственное плохо, большие обьемы данных, я не знаю как в батнике написать что бы удалялись все архивы кроме последнего за прошлый месяц.

Если кто-то знает как такое сделать, подскажите пожайлуста.
А может есть более удобное и безплавное решение....

Спасибо!!

Re: BACKUP MSSQL Server

Добавлено: 2009-11-17 13:18:48
dmins
бекапы ежедневный??

Re: BACKUP MSSQL Server

Добавлено: 2009-11-18 0:52:38
BI_J
да :smile:

Re: BACKUP MSSQL Server

Добавлено: 2009-11-18 4:47:27
damir_madaga
А Management Studio отсутствует? Какя редакция MSSQL? Хотя в 2008 и в Экспрес есть она (Management Studio). В ней все делается в два клика мышки, понимаю что не кашерно и т.д.. Но это винда и жить в ней надо по законам Билли!

Re: BACKUP MSSQL Server

Добавлено: 2009-11-19 1:43:35
BI_J
Мне его законы не нравятся !!!
Можно же сделать красиво. И оно уже вполне не плохо, rar сжимает bak файл более чем в 10 раз.
Осталось только научиться удалять лишнее.

Вы бы делом помогли, а философствовать нужно за бокалом пива :Search:

Re: BACKUP MSSQL Server

Добавлено: 2009-11-19 13:46:44
damir_madaga
BI_J писал(а):Мне его законы не нравятся !!!
Можно же сделать красиво. И оно уже вполне не плохо, rar сжимает bak файл более чем в 10 раз.
Осталось только научиться удалять лишнее.

Вы бы делом помогли, а философствовать нужно за бокалом пива :Search:
Да пожалуйста!
Я делал как то вот так! Тут правдо всего одна версия файла сохраняется, но принцип понятен.

Код: Выделить всё

set backupname=c:\temp\delme\pg_%dbname%_%cdate%.backup

echo %hostname%\%dbname% - %backupname%



echo ======================================================================== >> %logname%

echo | date /t >> %logname%

echo | time /t >> %logname%

echo %hostname%\%dbname% - %backupname% >> %logname%



if exist %backupname%_.bak del %backupname%_.bak

if exist %backupname% rename %backupname% *.backup_.bak

Re: BACKUP MSSQL Server

Добавлено: 2009-11-23 19:57:40
Fastman
Самый простейший вариант в Job-ах запускать скрипт бэкапа.
Нприемр для хранения истории 7-и дневного еженошшного бэкапа простейший скрипт выглядит так:

Код: Выделить всё

DECLARE @to varchar(3000)
DECLARE @dbname varchar(50)
DECLARE @path varchar(350)

set @dbname = 'ITMarchive'
set @to = 'S:\BACKUP_DB\'
set @path = @to + @dbname + '_' +
cast (DATEPART(weekday, GETDATE()) as varchar(1)) + '.' +
cast (year(getdate()) as varchar(4)) + + '.back'

backup database @dbname to disk=@path with init
Ессно если заметить - логи ротируются, Т.е в новую неделю затирается более старый бэкап.

Re: BACKUP MSSQL Server

Добавлено: 2009-11-24 15:11:28
Alvares

Код: Выделить всё

@echo off
SET ARCDIR=C:\BKP
SET EXE=C:\BKP\7Z\7Z.EXE
SET SQLEXE="c:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exe"
SET SQLCMD=BACKUP DATABASE BSS TO DISK

for /F "TOKENS=1,2 delims=: " %%A in ('time /t') do set CURT=%%A-%%B
%SQLEXE% -E -Q "%SQLCMD% = 'C:\bkp\bss_base_full_%date%_%curt%.bak'"
%EXE% A -mx=3 %ARCDIR%\base_full_%date%_%curt%.7z %ARCDIR%\bss_base_full*.bak
del c:\bkp\bss_base_full*.bak
copy /y c:\bkp\*.7z \\backup\bk\  && move /y c:\bkp\*.7z \\bk1\bk\
вот так у меня бекапится. MSSQL 2000. Но на 2005-8 тоже самое должно быть.
в кроне ежесуточно.

Re: BACKUP MSSQL Server

Добавлено: 2009-12-07 7:38:36
DmitrySib85
damir_madaga писал(а):А Management Studio отсутствует? Какя редакция MSSQL? Хотя в 2008 и в Экспрес есть она (Management Studio). В ней все делается в два клика мышки, понимаю что не кашерно и т.д.. Но это винда и жить в ней надо по законам Билли!
Подскажите если не сложно каким образом?
Просто бэкап делать я конечно нашел.. а вот так чтобы каждый день делал, да еще чтобы хранил скажем 14 копий.. а потом их перезаписывал.
Заранее спасибо

Re: BACKUP MSSQL Server

Добавлено: 2009-12-07 16:52:21
Alvares
в тырнете тьма тьмущая примеров ротации архивов. Поищите в гугле по "cmd/bat скрипты"

Re: BACKUP MSSQL Server

Добавлено: 2009-12-08 8:03:32
iye
А через настройку плана обслуживания в энтерпрайс менеджере не катит ? Там и глубина архивации и ротация логов есть и все своими стандартными средствами. И можно даже в сетку сливать.

Re: BACKUP MSSQL Server

Добавлено: 2010-04-10 17:08:00
kbakenov
тема ч базами данных - требует стандартизации данных в данной области. а потм все остальное

Re: BACKUP MSSQL Server

Добавлено: 2010-04-10 17:09:32
kbakenov
Женщины и софт - должны быть бесплатными! - бля чуть не упал

Re: BACKUP MSSQL Server

Добавлено: 2010-04-10 18:28:09
damir_madaga
kbakenov писал(а):Женщины и софт - должны быть бесплатными! - бля чуть не упал
А чего так????