Резервное копирование SQL-базы 1С в два клика

Опубликовал Ivan - (skilster) в раздел Администрирование - Архивирование (backup)

Простой и надежный способ бэкапа без углубления в тонкости настройки SQL Server Management Studio

Чтобы получить полную копию базы с возможностью беспроблемного подключения на любом другом сервере, совсем не обязательно углубляться в настройки. Для запуска бэкапа достаточно выполнить элементарный sql-скрипт:

DECLARE @pathName NVARCHAR(512) 

SET @pathName = 'D:\BACKUPS\NAME-OF-THE-BASE_' + Convert(varchar(8), GETDATE(), 112) + '.bak' 

BACKUP DATABASE [NAME-OF-THE-BASE] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

 

Где D:\BACKUPS\  это папка для сохранения резервных копий, а NAME-OF-THE-BASE  имя целевой базы данных. Далее необходимо поместить bat-ник для запуска скрипта в Планировщик задач Windows — и все. Каждый день в обозначенное время будет создаваться полный бэкап нужной базы. Разумеется, сама папка для бэкапов должна находиться не на самом сервере, а на внешнем диске, файловом хранилище или другом компьютере сети.


sqlcmd -S SERVERNAME -U sa -P YOUR-PASSWORD -i "c:\backups.sql"


В данном случае SERVERNAME  это имя сервера (например, SERVER\SQLEXPRESS), YOUR-PASSWORD  пароль учетной записи sa, а c:\backups.sql — путь к скрипту, созданному на первом шаге. При наличии WinRAR, полученные файлы можно упаковывать для экономии места:


"c:\Program Files\WinRAR\Rar.exe" a -m2 D:\BACKUPS\1C_backup_%date%.rar D:\BACKUPS\NAME-OF-THE-BASE_*.bak

del D:\BACKUPS\NAME-OF-THE-BASE_*.bak

Скачать файлы

Наименование Файл Версия Размер
Скрипт для запуска резервного копирования
.sql 0,26Kb
26.09.12
71
.sql 0,26Kb 71 Скачать
bat-ник для планировщика задач Windows
.bat 0,21Kb
26.09.12
51
.bat 0,21Kb 51 Скачать

См. также

Комментарии
1. qwe qwerty (quebracho) 21 03.10.12 21:20 Сейчас в теме
Простой и надежный способ бэкапа без углубления в тонкости настройки SQL Server Management Studio.
ИМХО, лучше углубиться, там много полезного.
2. ptr (ptr) 3 03.10.12 21:54 Сейчас в теме
Во-первых, настоятельно рекомендую явно указывать параметр COMPRESSION или NO_COMPRESSION. Если резервные копии в последствии будут сжиматься архиватором, то лучше встроенную компрессию SQL отключить. Экономия места составит около 30%. Если же резервные копии архивировать не планируется, то встроенная компрессия на нормальном железе существенно сокращает время резервного копирования по сети, даже на гигабитке. То есть, скорость встроенной компресси на SQL существенно быстрее скрости локальной сети.
Во-вторых, использовать Планировщик для этой цели неудобно. Слабоваты его возможности, да и журнал нормально вести не умеет. Я рекомендовал бы все же использовать SQL Server Agent. Он ведь именно для этого предназначен. А задача может быть существенно сложнее, чем просто резервное копирование.

Для примера, я настоятельно рекомендую иметь клиентам базу минус день. То есть ночью автоматически переписывать конфигурацию и БД на некую тестовую базу. Когда пользователь не уверен, как что-то правильно проводить или обрабатывать - он без страха может сам поэкспериментировать на такой БД.
jan27; acanta; PAPIruss; bio.ejiki; sovital; Nykyanen; skilster; +7 Ответить 1
3. Ivan - (skilster) 36 04.10.12 08:06 Сейчас в теме
(2), спасибо за толковый комментарий! Возможности SQL Server Agent, действительно, позволяют очень тонко настроить бэкапы. Но практика показывает, что неопытные администраторы часто ошибаются при выборе способа копирования — и полученные bak-и становятся бесполезными в случае полного краха сервера.
4. Андрей Ярошенко (Garstag) 80 27.02.13 11:08 Сейчас в теме
А как будет выглядеть SQL-скрипт для автоматического разворачивания этого бэкапа в базу-копию?
5. Елена Ситникова (lesenoklenok) 18 06.03.14 11:28 Сейчас в теме
Спасибо за bat-ник. Это упростило жизнь.
6. Андрей Краснокутский (Andry.Boris) 53 11.05.14 13:25 Сейчас в теме
Спасибо, взял на заметку.
7. Артем Герасимов (PAPIruss) 18.02.15 14:45 Сейчас в теме
Было бы интересно узнать. Есть ли скрипт для восстановления наиболее свежего бекапа?
8. Марина Чирина (chmv) 29.06.16 11:36 Сейчас в теме