1. avalakh 171 29.12.16 13:13 Сейчас в теме +5 $m

Ежедневное восстановление бэкапа sql в копию базы

Всем привет!

Ситуация: в sql 2012 есть план резервного копирования базы 1с - в понедельник создается полный бэкап, ежедневно в течении недели разностные и в течении дня бэкапы журнала транзакций.

Задача: Ежедневно перезаписывать копию базы, желательно средствами sql.

Посмотрел в интернете и по форумам, предлагается делать "restore database [base] from file [filename]", но у меня много файлов. Полный каждую неделю с новым именем (в имени указывается дата), то же самое и с остальными файлами.

Подскажите, пожалуйста, кто знает: как это можно реализовать?
Вознаграждение за ответ
Показать полностью
Найденные решения
Остальные ответы
Сортировка: Древо
2. Caspersky 29.12.16 16:16 Сейчас в теме
3. Caspersky 29.12.16 16:48 Сейчас в теме
(2) В Sql можно реализовать любую логику,
формат имени файлов я так понимаю неизменен,
пишите скрипт и в планировщик...
4. sssss_aaaaa_2011 29.12.16 17:03 Сейчас в теме
(1)
Подскажите, пожалуйста, кто знает: как это можно реализовать?
Так же как и создание бэкапов, только не с командой Backup database, а с командой Restore database. Как уже написали, рисованием скрипта с генерацией нужных имен для команды Restore database. Или вы думаете, что это сервер сам придумывает имена бэкапам?
5. herfis 261 29.12.16 17:09 Сейчас в теме
(1) А в чем проблема? filename ведь и строковой переменной может быть, которую легко собрать по требуемому шаблону. Функций по работе с датами/строками в TransactSQL поболе, чем в 1С.
9. Caspersky 21.01.17 14:09 Сейчас в теме
(1)Эммм...

А почему бы не реализовать через планы обмена ...
создали узел и каждый день выгружайте накопленные изменения из рабочей ИБ + убивайте регистрацию дня нее же в копии, чтобы не копилась ...
Результат будет тот же, и колхозить с восстановлением не надо, и инструмент реализации знаком ))) ...
12. zoomzd1234 21.01.17 15:04 Сейчас в теме
(1) Лучше На пример MS SQL Server 2012 Настройки все сделать с помощью SQL Management Studio. Для начала сделаешь устройство резервного копирования можно и без него, но для удобства и правильнее с ним.


13. ture 233 23.01.17 09:27 Сейчас в теме
(1) Делаешь полный каждый день и хранишь последние 5-6.
Делаешь бекап различий каждый час и хранишь последние 2-3.

Ночью восстанавливаешь на копии с замещением последний полный и не заканчивая восстановления заливаешь последний бекап различий. Вуаля, с бекапами все в ажуре! Не понимаю, в чем здесь можно было запутаться?!
14. avalakh 171 02.03.17 20:51 Сейчас в теме
(13) каждый день делать полный бэкап вариант хороший, но не учитывает размеры базы
16. alex_sh2008 5 02.03.17 21:09 Сейчас в теме
(1)А чем репликация базы на уровне sql сервера не устраивает?
6. herfis 261 29.12.16 17:16 Сейчас в теме
Даже если имена файлов нужно определять по времени создания, а не по шаблону имени, то и тут решаемо.
Во-первых, если бэкапы через планы обслуживания делаются, в системных таблицах хранится некоторая история, откуда их можно достать.
Во-вторых, из Transact-SQL можно работать и с командной строкой и с COM-объектами.
В-третьих, с самим MSSQL можно работать из командной строки.
7. avalakh 171 29.12.16 19:53 Сейчас в теме
Знаю что есть некие переменные, если возможно то какую нибудь конкретику в виде скрипта, как достать имена файлов из базы и как ими воспользоваться.

Например нашел, что можно получить имена файлов с помощью скрипта:

SEL ECT @@SERVERNAME AS ServerName ,
d.Name AS DBName ,
b.Backup_finish_date ,
bmf.Physical_Device_name
FR OM sys.databases d
INNER JOIN msdb..backupset b ON b.database_name = d.name AND b.[type] = 'D'
INNER JOIN msdb.dbo.backupmediafamily bmf ON b.media_set_id = bmf.media_set_id
WH ERE b.database_name = '[ИмяБазыДанных]'

ORDER BY b.Backup_finish_date DESC;

GO

Тут получится список файлов полных бэкапов, что как бы тоже недостаточно, т.к. еще нужны разностные. Даже если восстановить последний полный, то непонятно как эту конструкцию засунуть в "restore database fr om file ...". Просто воткнуть вместо трех точек наверняка не сработает.
11. sssss_aaaaa_2011 21.01.17 14:42 Сейчас в теме
(7)
непонятно как эту конструкцию засунуть в "restore database fr om file ...". Просто воткнуть вместо трех точек наверняка не сработает.
Каую ЭТУ? Вы не умеете работать со строками? Вы не знаете как создать строку с текстом команды? Откуда уверенность про "наверняка"? Или вы просто без GUI никакой работы с сервером не представляете?
15. avalakh 171 02.03.17 20:54 Сейчас в теме
(11) не понял суть вашего вопроса. Вероятно вы о том, что я не ориентируюсь в sql. Так и есть, синтаксис языка запроса sql для меня темный лес, поэтому и спрашиваю.
8. Fox-trot 67 29.12.16 19:59 Сейчас в теме
уникальнейшая задача! если удастся решить ее, отпишитесь плиз. оч.прошу
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии



Ведущий программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Руководитель проектов 1С
Москва
Полный день

Консультант-аналитик 1С: ЗУП
Санкт-Петербург
Полный день