![]() |
Бэкап базы данных SQL
Добрый день!
Есть БД, котораяет работает на SQL-express. Точнее - Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64) Aug 19 2014 12:21:34 Copyright (c) Microsoft Corporation Express Edition with Advanced Services (64-bit) on Windows NT 6.3 <X64> (Build 9600: ). Экземпляр по умолчанию, единственный на сервере. Модель восстановления - полная, размер журнала транзакций ограничен. База создана не мной, и сейчас возникла необходимость ее бэкапить + усекать журнал (бэкапы тоже не делались). Если у кого-нибудь есть готовый скриптик по бэкапу и шринку журнала - поделитесь, плиз. Можно самый простой - чтобы делать полный бэкап БД, полный бэкап журнала и обрезать журнал. Планируется выполнять через виндовый планировщик, и sqlcmd, и стандартные команды типа "SQLCMD -S (local) -E -Q "BACKUP DATABASE My_BD TO DISK... BACKUP LOG... DBCC SHRINKFILE" В принципе, менеджмент студио показывает, как будут выглядеть эти команды в виде кода, но как их увязать, чтобы они запускались через sqlcmd? Заранее благодарен. |
Я же использую обычно в таких задачах следующий скрипт:
DECLARE @pathName NVARCHAR(512) SET @pathName = 'D:\Backup\db_backup_' + Convert(varchar(8), GETDATE(), 112) + '.bak' BACKUP DATABASE [MyDataBase] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 Этот скрипт создает бекап с именем файла db_backup_YYYYDDMM.bak где YYYYDDMM – это текущая дата. Дата в имени файла позволит нам создавать каждый день бекап в новом файле. Запустите и проверьте что бекап действительно создается такой какой вам и нужен. Этот скрипт сохраняем в какой-нибудь папке под именем schedule.sql, предположим c:\sheduled tasks\. В этой же папке создадим исполняемый файл backup.bat, следующего содержания: sqlcmd -S SEVERNAME -U UserName -P Password -i schedule.sql 7z a -tzip D:\Backup \db_backup_%date%.zip -i! D:\Backup\db_backup_*.bak del d:\Backup\db_backup_*.bak Где меняем SERVERNAME – имя сервера, UserName – имя пользователя, Password – пароль пользователя, schedule.sql – имя сохраненного скрипта. Вторая и третья строка батника архивирует бекап в zip файл и удаляет сам файл бекапа. Для того чтобы работала архивация необходимо установить архиватор 7z и прописать полные пути до исполняемого файла 7z.exe либо положить 7z.exe и 7z.dll в ту же папку, где располагаются скрипты. Теперь можем запустить исполняемый файл backup.bat и проверить проработает ли он так как нужно. Последний шаг это записать schedule в задачи windows. Запускаем Task Scheduler из меню Пуск, либо набираем в командной строке taskschd.msc. В разных версиях Windows это выглядит по разному, да и информацию о том как сделать задачу можно прочитать в помощи Windows. Основное – это запускать задачу от имени пользователя с достаточными правами на используемые папки. При помощи таких действий можно так же запрограммировать и любые другие задачи. В скрипте schedule.sql можно перед бекапом вызвать какие-либо необходимые процедуры, может переиндексирование или сжатие базы данных. -- admin@uservers.info |
Время: 21:30. |
Время: 21:30.
© OSzone.net 2001-