Скрипт удобного восстановления базы MSSQL при дифференциальном резервировании

Публикация № 80477

Администрирование - Администрирование данных 1С - Архивирование (backup)

23
Если у Вас база на MSSQL и Вы пользуетесь разностными бекапами, то, скорее всего, столкнулись с тем, что поднять базу/копию базы из имеющихся резервных файлов  не столь удобно, как того хотелось бы.
В этой статье приведен скрипт по теме.

Для начала немного истории.

Так сложилось, что в моей компании резервированием баз 1С, которые у нас лежат на MSSQL, занимаюсь лично я. Вначале, пока база еще не так сильно разрослась, все было просто: каждую ночь выгружался dt-файл. Этот путь не понравился по 3-м причинам: долго восстанавливается, при бекапе в базе не должно быть пользователей, на диске временного каталога должно быть место, расное файлу бекапа.

Время шло, база росла, было решено делать бекап базы MSSQL. Но банный файл оказался гораздо больше файла dt. Пришлось засесть за интернет и узнать как реализовать и потом реализовать на практике разностный бекап. Но так как у нас есть команда программистов, то для каждого программиста выделили еще и по паре тестовых баз.

Через некоторое время мне надоело заниматься копипастом постоянно изменяя в скрипте имя базы и добавляя блоки для каждого файла разностного бекапа в итоге было потрачено немного времени и получился следующий скрипт:


--Здесь ничего не трогаем
declare @SQLString nvarchar(4000), @TableName nvarchar(16)
declare @t table (fname NVARCHAR(50))
DECLARE @counter INT, @backupfile NVARCHAR(50)
SET @counter = 0

---------------------------------------------------------------------------
-- Здесь изменяем имя базы

set @TableName = N'Ins_3_3'
-- Здесь вставляем необходимое количество бекапов.

-- Вначале полный, потом все разностные
INSERT INTO @t (fname) VALUES ('2011-01-16_ins.bak')
INSERT INTO @t (fname) VALUES ('2011-01-17_ins_diff.bak')
INSERT INTO @t (fname) VALUES ('2011-01-18_ins_diff.bak')

---------------------------------------------------------------------------
--Далее ничего не трогаем

DECLARE bkf CURSOR LOCAL FAST_FORWARD FOR SELECT * FROM @t;

OPEN bkf;
FETCH bkf INTO @backupfile;
WHILE @@FETCH_STATUS=0
BEGIN
IF @counter = 0
BEGIN
set @SQLString = N'restore Database ' + @TableName + '
FROM DISK = N''N:\Backup1C\' + @backupfile + '''
with NORECOVERY,
move ''Ins81'' to N''F:\SQLBases\Data\' + @TableName + '.mdf'',
move ''Ins81_log'' to N''F:\SQLBases\Data\' + @TableName + '_Log.ldf'',
STATS = 5'
END
ELSE
BEGIN
set @SQLString = N'restore Database ' + @TableName + '
FROM DISK = N''N:\Backup1C\' + @backupfile + '''
with NORECOVERY'
END
exec sp_executesql @SQLString
set @counter = @counter + 1
FETCH bkf INTO @backupfile;
END;
CLOSE bkf;
DEALLOCATE bkf;
set @SQLString = N'restore Database ' + @TableName + '
with RECOVERY'
exec sp_executesql @SQLString


Надеюсь, скрипт будет полезным.

Новая база будет создаваться по пути F:\SQLBases\Data\. Исправьте путь согласно своему серверу.

Бекапы у меня лежать в N:\Backup1C\. Естественно этот путь нужно тоже поменять.

Если что-то не понятно - спрашиваем.

23

Специальные предложения

См. также

Тонкая настройка ежедневного резервного копирования базы данных 1С средствами SQL ver. 2014 (SP3) - 12.0.6024.0 (X64) 28

Статья Системный администратор Программист Нет файла v8 Россия MS SQL Бесплатно (free) Архивирование (backup)

Хочу вам предложить небольшой пример, как можно реализовать резервное копирование 1С-ых баз данных средствами SQL. Данный материал не претендует на пулитцеровскую премию. Но возможно кому-то будет интересно узнать, что-то новенькое. Данный материал для резервного копирования только одной базы данных. А именно, если у вас 20-ть баз, то вам придется создавать 20-ть планов обслуживания для каждой базы индивидуально. (Слава разработчикам SQL, они разрешили копировать блоки из одного плана в другой, вам остается только произвести небольшую настройку для каждого скопированного блока - некоторые настройки блоков сбрасываются и выставляются значением по умолчанию и остаются неактивными)

07.10.2019    2725    DrZombi    47       

Настройка резервного копирования (резервирования) баз данных 1С: Предприятие на MS SQL Server 17

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup)

Настройка резервного копирования (резервирования) баз данных на "бюджетной" версии 1С Предприятие под MS SQL Server. Используется пример MS SQL Server 2008 R2 под Windows. Для малых и средних предприятий, исключая производственные и торговые, так как тестирование на них не проводилось.

30.10.2018    8233    unclevad    16       

Резервное копирование "онлайн" клиент-серверных баз в dt (не отключая пользователей) 62

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Архивирование (backup)

Как реализовать резервное копирование клиент-серверных баз 1с в формат dt, не отключая пользователей. Рассматривается способ, делающий резервирование наименее заметным для пользователей и серверного оборудования.

03.10.2017    19588    konstanta_online    74       

Настройка зеркалирования базы для MS SQL 55

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Архивирование (backup) Производительность и оптимизация (HighLoad)

Очень удобный способ, когда нам нужна не просто резервная копия, а "горячая" замена серверов.

19.05.2017    23851    MsDjuice    13       

Рекомендации по организации резервного копирования для систем с Windows Server / Windows SQL Server 26

Статья Системный администратор Нет файла v8 Windows Бесплатно (free) Архивирование (backup)

В данной статье мы рассмотрим работу с резервными копиями базы данных 1С, а также некоторые приемы, оптимизирующие работу с резервными копиями.

10.10.2016    15773    Zebar    12       

Как я восстанавливал разрушенную базу 45

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Архивирование (backup) Распределенная БД (УРИБ, УРБД) Тестирование и исправление

УТ10.3 на Платформе 8.2 на базе MSSQL была разрушена после попытки её восстановить после неудачного динамического обновления. Таблица Config целевой базы была заменена на содержимое таблицы Config от другой рабочей базы. Но на самом деле конфигурации у них существенно отличались, поэтому после таких действий целевая база рухнула окончательно. Что же делать?

21.08.2015    23978    METAL    25       

Просто и сердито. Архивирование (backup) типовых конфигураций 1С 8.2, 8.3 29

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Архивирование (backup)

После эксплуатации различных "бесплатных" обработок и скриптов решил написать свой cmd-файл для ежедневного архивирования баз 1С. Работает на конфигурациях, где есть процедуры "ЗавершитьРаботуПользователей" и "РазрешитьРаботуПользователей" (т.е. во всех типовых, в нетиповые данные модули можно скопировать из типовых). Сохраняет файлы как локально так и на удаленном файловом сервере. Автоматически удаляет старые архивы и копирует на удалённый сервер отсутствующие. Расписание задается установкой соответствующего задания (запуска cmd-файла по времени) в планировщике задач Windows. Для борьбы с зависшими сеансами, рекомендуется настроить в режиме конфигуратора параметры информационной базы: "Время засыпания пассивного сеанса" и "Время завершения спящего сеанса".

18.06.2015    15123    Prelude    14       

Как выгрузить базу средствами 1С, не выгоняя пользователей. Делаем невозможное. 70

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Архивирование (backup) Администрирование данных 1С

В 1С:Предприятии 8.2 есть ограничение на выгрузку базы в формате DT. Выгрузить базу можно, только если в ней нет активных пользователей. В этой статье поделюсь способом, как обойти это ограничение и сделать невозможное.

16.09.2013    42799    yurega    54       

Восстановление SQL базы 1С 8.2. после неудачного сохранения конфигурации 105

Статья Системный администратор Программист Нет файла v8 Россия Windows Бесплатно (free) Архивирование (backup) Администрирование данных 1С

При динамическом обновлении, в процессе сохранения конфигурации, вылетела база 1С и отказалась заходить в режим Конфигуратора, выдавая сообщение "Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?", если ответить утвердительно, то появлялось сообщение "Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию.", после чего Конфигуратор закрывался.

18.07.2013    32582    lord_soth    45       

Скрипт - выгонялка пользователей + резервная копия базы. 33

Инструменты и обработки Системный администратор Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Бесплатно (free) Архивирование (backup)

В Клиент-серверном режиме работы базы часто возникает необходимость выгонять пользователей чтобы сделать обновление, резервные копии и т.п. Для ленивых, которым неудобно всех выгонять "руками" или ждать окончания рабочего дня, предлагается простой скрипт, который всё сделает за вас.

26.02.2013    22014    tystik    11       

Резервное копирование 1С средствами MS SQL. 439

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Архивирование (backup)

В этой статье описано самое обычное резервное копирование ИБ 1С при помощи инструментов MS SQL Server 2008 R2, объяснено почему следует делать именно так, а не иначе, и развеяно несколько мифов.

17.02.2013    226226    speshuric    79       

Хранение удаленных документов в отдельной базе. Часть 1. 34

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Архивирование (backup) Администрирование данных 1С

Резервное хранение данных. Пример работы с внешними источниками данных. Работа с файлами. Подписка на событие. Работа с XML файлами. Сериализатор XDTO.

12.12.2012    13580    egorovntn    10       

Восстановление файловой версии базы данных *.1CD после ошибки динамического обновления. 200

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Сервисные утилиты Архивирование (backup) Администрирование данных 1С Тестирование и исправление

Восстановление работоспособности файл-серверной базы данных (файл *.1CD) после критической ошибки, возникшей в результате динамического обновления с последующим предупреждением "Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?".

02.10.2012    47110    djserega    74       

Автоматическое регулярное разворачивание оперативных бэкапов (совсем просто) в MS SQL 2008 35

Статья Системный администратор Нет файла v7.7 v8 1cv8.cf 1cv7.md Россия Windows Бесплатно (free) Архивирование (backup)

В работе регулярно возникает необходимость протестировать поведение программы на копии рабочей базы с актуальными данными

10.08.2012    15497    sergiobargio1    6       

Регулярные оперативные копии рабочих баз 1С с помощью MS SQL 2008 17

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup) Администрирование данных 1С

В течение дня необходимо производить отладку "допилов" на свежих копия рабочих баз. Также необходимы актуальные копии и для экспериментов, в том числе и пользователям. На этом замечательном ресурсе есть много полезных публикаций с различными вариантами, как это сделать. В одном из них предлагается использовать инструмент мгновенных снимков баз, которые возможно выполнить только в версии Express Edition. В этом посте очень простой вариант, не требующий дорогостоящей версии MS SQL

01.08.2012    16732    sergiobargio1    8       

Автоматизация создания резервных копий в MS SQL Express Server 14

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup)

В версии Microsoft SQL Server 2005/2008/2008R2 Express Edition серверах нет стандартных средств создания резервных копий баз данных по расписанию. Восполнить этот пробел поможет простое решение

18.06.2012    27396    LexSeIch    4       

Восстановление SQL базы 1С 8.2. рухнувшей во время сохранения конфигурации. 355

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup) Тестирование и исправление

При обновлении конфигурации вылетела 1С. После чего наотрез отказалась входить в базу. При этом в конфигураторе выдавалось сообщение "Внимание!!! При обновлении данных, после последней реструктуризации, произошла критическая ошибка. Повторить обновление?" Потом выходило сообщение "Обнаружена незавершённая операция сохранения конфигурации. Для продолжения необходимо завершить операцию". Горела кнопка Ок - на этом работоспособность конфигуратора и базы заканчивалась.

08.02.2012    121315    VanDiesel1    134       

Бэкап 1С:Предприятие 8.х 13

Статья Системный администратор Нет файла v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Рекомендации по резервному копированию. Бесплатные программы для бэкапа Egida Backup, Effector saver 3, xStarter.

09.11.2011    23063    sinjevla    10       

Резервное копирование чеков во внешние файлы и их восстановление 10

Статья Системный администратор Нет файла v8 Розница Россия Бесплатно (free) Архивирование (backup)

Решение проблемы восстановления потерянных кассовых чеков после восстановления поврежденной базы розницы.

21.10.2011    9165    elizarovs    3       

Архивное копирование 1С8 автоматически и ежедневно 14

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup)

Выложил ввиду "молодости и горячести" ХД и критики со стороны, дабы не спотыкаться в дальнейшем =)

19.04.2011    5672    AActor    15       

Bat файл для архивации баз 1с 7.7 2

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v7.7 1cv7.md Россия Windows Бесплатно (free) Архивирование (backup)

Ничего нового, но достаточно удобный и проверенный годами сценарий, который позволяет создавать ежедневные архивы баз данных 1 с предприятия 7.7 (для файлового режима работы) при помощи программы WinRar. Архивируются только жизненно важные файлы: MD, DD, Dbf для уменьшения размера архива. Процедура срабатывает даже когда в базе на момент запуска процедуры есть пользователи. В результате получаем архивные файлы с датой в наименовании + подробный лог о результатах архивации.

21.01.2011    16502    501    DDos76    4       

1С и Postgres: Бэкап 27

Статья Системный администратор Нет файла v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Для начала пару слов о том, зачем и когда он нужен. Ни для кого не секрет, что сервер это не просто компьютер, а надежный компьютер! Поэтому, если он не сломался в первую неделю после запуска, то не сломается еще очень долго. И поэтому у вас всегда есть возможность какое-то время оставаться вовсе без резервной копии

17.12.2010    20471    alexcid    5       

Выгрузка ИБ 1С8 на сервере 1С:Предприятие 18

Статья Системный администратор Нет файла v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Выгрузка ИБ 1С8 на сервере 1С:Предприятие стандартными средствами ОС и 1С. Без всяких хитростей.

25.10.2010    17319    daulberg    7       

Авто-бэкапер 7.7 и 8.1 39

Инструменты и обработки Системный администратор Программист Архив с данными v7.7 v8 Россия Бесплатно (free) Архивирование (backup)

Программа позволяет выполнить последовательную выгрузку из всех баз 1С, указанных в ini-файле. Кроме того, позволяет принудительно убить все процессы 1С перед выполнением выгрузки. Для версии 7.7 производится подчистка файлов lck. Формирует файлы выгрузки с уникальными именами. Бэкап каждой последующей базы выполняется только после бэкапа предыдущей. По завершении программа выключается Примечание: выгрузка стандартная, формируется архив с файлами 1Cv77.dat, 1Cv7.MD, users.usr (7.7) и файл *.dt (8.0, 8.1) Подробное описание в readme.

22.02.2010    19772    729    Abadonna    19       

Как выгрузить не всю конфигурацию в файл, а только изменения? 112

Статья Системный администратор Нет файла v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Хочу поделиться одним способом сохранения не всей конфигурации в файл, а только изменений. Способ довольно заморочный, но он позволяет сохранить любые изменения конфигурации в файл, размер которой уменьшится, скажем, к 300 KB, по сравнению с размером конфигурации в 60 MB. Этот способ эффективен, когда у клиента очень слабое соединение с интернетом или оплачивается помегабайтно.

19.02.2010    29380    modul    78       

Архивирование баз данных 1С и не только... (настройка бесплатной программы Cobian Backup 9) 31

Статья Системный администратор Архив с данными v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free) Архивирование (backup)

В данной статье описывается создание системы архивирования на основе бесплатной программы Cobian Backup 9 (http://www.cobiansoft.com/cobianbackup.htm)

14.01.2010    56841    356    Mx00    146       

К вопросу об архивации баз 1С (и снова, и снова...) 48

Статья Системный администратор Нет файла v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Из своего опыта хочу напомнить о самом простом способе архивации баз типовыми средствами 1С и планировщика Windows.

08.01.2010    23275    grum01    14       

Архивация базы 1С-Предприятие 11

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup) Разработка внешних компонент

Используем стандартный планировщик Windows и файл Visual Basic Script с файлом настроек, для плановой выгрузки базы данных.

29.12.2009    8481    276    alves    4       

Простое решение для резерного архивирования (backup) баз 1С 7.7 (ver. DBF & SQL) 12

Инструменты и обработки Системный администратор Конфигурация (md, cf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Архивирование (backup)

Данная методика легко внедряется в любую конфигурацию платформы 1С 7.7 и не требует серьезных навыков в конфигурировании и программирования.

05.12.2009    17125    377    avd2003    19       

Автоархивирование... очередное 19

Инструменты и обработки Системный администратор Компонента, плагин (dll, vbs,..) v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup)

Набор .bat файлов для автоматизации процессов: тестирование базы, выгрузка в DT, генерация из из DT в 1CD? архивирование. для файловой и SQL версии по выбору

11.09.2009    9207    271    dvv01    6       

Архивирование. Используется 1С 7.7 + WinRar. 6

Инструменты и обработки Системный администратор Конфигурация (md, cf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Архивирование (backup)

Конфигурация при запуске сохраняет папки с 1С (и не только) с помощью WinRar (должен быть установлен).

04.09.2009    10255    214    S_y_S    11       

Работа с zip-архивами 12

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Архивирование (backup)

Работа с zip-архивами с помощью UtilZip.dll. Лично мной использовалось для работы с файлами обмена МОД.

30.06.2009    12250    290    Лев    6       

Скрипт VBS для автоархивации баз 8.1 на SQL. (Нагло отключает все сеансы.) 34

Инструменты и обработки Системный администратор Компонента, плагин (dll, vbs,..) v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Скрипт для автоархивации в файлы в формате "ZUP2009_16_04_2009_09_25_55.dt" (Дата и время архивации.) + его Лог файл в формате "ZUP2009_Log_16_04_2009_09_25_55.log" (Дата и время архивации.)

22.04.2009    13803    780    rebuzx    28       

Обработка создания файла запуска архива 12

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Создание командного файла запуска для последующего использования при автосохранении информационных баз 1С

22.02.2009    9184    395    Kyrales    9       

УРБД Мастер 1.6.0 12

Инструменты и обработки Системный администратор Программист Приложение (exe) v7.7 1cv7.md Россия Windows Бесплатно (free) Архивирование (backup) Распределенная БД (УРИБ, УРБД)

Программа УРБД Мастер предназначена для автообмена информацией по расписанию между центральной и периферийными ИБ для программы 1С Предприятие 7.7 (бухгалтерия, торговля, SQL) . В качестве транспорта используется электронная почта, FTP-протокол или локальная сеть.

25.01.2008    11906    74    codeLocker    10       

Архиватор для баз 1С 5

Инструменты и обработки Системный администратор Приложение (exe) v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free) Архивирование (backup)

Архивирует базы 1С или любые другие в указанный каталог. Запуск возможен раз в день, раз в неделю или .... Быстрая архивация 100 мег за 3 мин. И еще всяко

15.08.2007    9055    118    ahmet    15       

Конфигурация для автоматического ежедневного архивирования баз .dbf v7 41

Инструменты и обработки Системный администратор Конфигурация (md, cf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Архивирование (backup)

Хранитель баз для v7.7 (файловый вариант). Конфигурация использует пакетный режим Конфигуратора. Переиндексирует базы и сохраняет архив с префиксом базы, датой и временем архивирования в указанное место. Например, Hranitel_2007-07-28_17-11.ZIP Преимущества в том, что использует средства пакетного режима Конфигуратора и DOS и все операции делает в автоматическом режиме. Программа бесплатна и не использует внешних компонент. Возможна работа по расписанию из Планировщика Windows.

21.07.2007    15974    970    v.l.    28       

"1СДБ.::Сохранение" v1.0.0.11 18

Инструменты и обработки Системный администратор Приложение (exe) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Windows Бесплатно (free) Архивирование (backup)

Выпущена новая программа \"1СДБ.::Сохранение\" v1.0.0.11. Программа предназначена для выполнения резервного копирования баз данных \"1С:Предприятие\". Применяется как полное резервирование базы данных, включая все содержимое папки с базой, так и регламентированные фирмой «1С» стандартные методы выгрузки и сохранения.

24.03.2006    7231    112    advanter    6       

Внешняя компонента по записи на компакт-диск «1CD-Банк» («oncdbnk.dll») 14

Инструменты и обработки Системный администратор Компонента, плагин (dll, vbs,..) v8 Россия Windows Бесплатно (free) Архивирование (backup)

Внешняя компонента «1CD-Банк:1С» («oncdbnk.dll») для «1С:Предприятие» v7.7, «1С:Предприятие» v8.0 предназначена для выполнения записи, стирания и любых других регламентированных операций с компакт-диском.

24.03.2006    7828    51    advanter    12       

Автосохранение реквизитов документов 54

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v77::БУ 1С7:Бух Россия Бесплатно (free) Архивирование (backup)

Данная разработка предназначена для автоматического сохранения всех (!) реквизитов документа (шапки и табличной части) в процессе редактирования (ввода нового) документа. Внешне это выглядит так: вы упорно создаете какой-нибудь документ (ПНК, ЗаказПокупателя и т.д.), целый час забиваете данные в многострочную часть, и в самом разгаре 1С-ка "падает", не оставляю юзеру никакой возможности сохраниться.. При последующем запуске 1С при вводе нового документа (того же вида) система предлагает восстановить данные документа (по принципу Word'а)!!

22.03.2006    15226    155    imsoftware    12