Резервное копирование баз MSSQL

Любые вопросы связанные с реляционными СУБД от администрирования до разработки текстов запросов
Ответить
Аватара пользователя
admin
Администратор
Сообщения: 71
Зарегистрирован: 06 июл 2017 09:26

Резервное копирование баз MSSQL

Сообщение admin » 20 май 2019 20:55

Один раз в день полная резервная копия и чистка от старых резервных копий:

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

set day=%DATE:~0,2%
set month=%DATE:~3,2%
set year=%DATE:~6,4%
set dat=%day%-%month%-%year%
sqlcmd -S srv -U sa -P ПарольSA -i full_ut.sql >>F:\Backups\sql\logs\log_full_%dat%.txt
sqlcmd -S srv -U sa -P ПарольSA -i full_bh.sql >>F:\Backups\sql\logs\log_full_%dat%.txt
sqlcmd -S srv -U sa -P ПарольSA -i full_steam.sql >>F:\Backups\sql\logs\log_full_%dat%.txt
del_old_backup.bat >>F:\Backups\sql\logs\log_full_%dat%.txt
Текст full_ut.sql

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

DECLARE @pathName NVARCHAR(512)
SET @pathName = 'F:\Backups\sql\ut_full_' + Convert(varchar(8), GETDATE(), 112) + '.bak'
BACKUP DATABASE [ut] TO  DISK = @pathName
WITH NOFORMAT, NOINIT,  
NAME = N'ut-Полная База данных Резервное копирование', 
SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO
Текст del_old_backup.bat для очистки от старых резервных копий:

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

set day=%DATE:~0,2%
set month=%DATE:~3,2%
set year=%DATE:~6,4%
set dat=%day%-%month%-%year%
SetLocal enabledelayedexpansion
Set dir_backup=F:\Backups\sql
rem значение -7, идущее после параметра -d указывает на то, что файлы старше 7 дней от текущего будут удалены
Forfiles -p %dir_backup% -s -d -7 -c "cmd /c del /q @path >>F:\Backups\sql\logs\log_full_%dat%.txt"
Выгрузка резервных копий только изменений, к примеру раз в час:

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

set day=%DATE:~0,2%
set month=%DATE:~3,2%
set year=%DATE:~6,4%
set dat=%day%-%month%-%year%
sqlcmd -S srv -U sa -P ПарольSA -i different_ut.sql >>F:\Backups\sql\logs\log_different_%dat%.txt
sqlcmd -S srv -U sa -P ПарольSA -i different_bh.sql >>F:\Backups\sql\logs\log_different_%dat%.txt
sqlcmd -S srv -U sa -P ПарольSA -i different_steam.sql >>F:\Backups\sql\logs\log_different_%dat%.txt
Текст different_ut.sql для примера:

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

DECLARE @pathName NVARCHAR(512)
SET @pathName = 'F:\Backups\sql\ut_different_' + replace(convert(char(19),getdate(),120),':','-')+ '.bak'
BACKUP DATABASE [ut] TO  DISK =@pathName 
WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  
NAME = N'ut-разностный бэкап', SKIP, 
NOREWIND, NOUNLOAD,  STATS = 10
GO

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей